#ifndef _NEC7210_REGISTERS_H
#define _NEC7210_REGISTERS_H
enum nec7210_chipset {
NEC7210,
TNT4882,
NAT4882,
CB7210,
IOT7210,
IGPIB7210,
TNT5004,
};
enum nec7210_write_regs {
CDOR,
IMR1,
IMR2,
SPMR,
ADMR,
AUXMR,
ADR,
EOSR,
nec7210_num_registers = 8,
};
enum nec7210_read_regs {
DIR,
ISR1,
ISR2,
SPSR,
ADSR,
CPTR,
ADR0,
ADR1,
};
enum isr1_bits {
HR_DI = (1 << 0),
HR_DO = (1 << 1),
HR_ERR = (1 << 2),
HR_DEC = (1 << 3),
HR_END = (1 << 4),
HR_DET = (1 << 5),
HR_APT = (1 << 6),
HR_CPT = (1 << 7),
};
enum imr1_bits {
HR_DIIE = (1 << 0),
HR_DOIE = (1 << 1),
HR_ERRIE = (1 << 2),
HR_DECIE = (1 << 3),
HR_ENDIE = (1 << 4),
HR_DETIE = (1 << 5),
HR_APTIE = (1 << 6),
HR_CPTIE = (1 << 7),
};
enum isr2_bits {
HR_ADSC = (1 << 0),
HR_REMC = (1 << 1),
HR_LOKC = (1 << 2),
HR_CO = (1 << 3),
HR_REM = (1 << 4),
HR_LOK = (1 << 5),
HR_SRQI = (1 << 6),
HR_INT = (1 << 7),
};
enum imr2_bits {
IMR2_ENABLE_INTR_MASK = 0x4f,
HR_ACIE = (1 << 0),
HR_REMIE = (1 << 1),
HR_LOKIE = (1 << 2),
HR_COIE = (1 << 3),
HR_DMAI = (1 << 4),
HR_DMAO = (1 << 5),
HR_SRQIE = (1 << 6),
};
enum spsr_bits {
HR_PEND = (1 << 6),
};
enum spmr_bits {
HR_RSV = (1 << 6),
};
enum adsr_bits {
HR_MJMN = (1 << 0),
HR_TA = (1 << 1),
HR_LA = (1 << 2),
HR_TPAS = (1 << 3),
HR_LPAS = (1 << 4),
HR_SPMS = (1 << 5),
HR_NATN = (1 << 6),
HR_CIC = (1 << 7),
};
enum admr_bits {
HR_ADM0 = (1 << 0),
HR_ADM1 = (1 << 1),
HR_TRM0 = (1 << 4),
HR_TRM1 = (1 << 5),
HR_TRM_EOIOE_TRIG = 0,
HR_TRM_CIC_TRIG = HR_TRM0,
HR_TRM_CIC_EOIOE = HR_TRM1,
HR_TRM_CIC_PE = HR_TRM0 | HR_TRM1,
HR_LON = (1 << 6),
HR_TON = (1 << 7),
};
enum adr_bits {
ADDRESS_MASK = 0x1f,
HR_DL = (1 << 5),
HR_DT = (1 << 6),
HR_ARS = (1 << 7),
};
enum adr1_bits {
HR_EOI = (1 << 7),
};
enum auxmr_bits {
ICR = 0x20,
PPR = 0x60,
AUXRA = 0x80,
AUXRB = 0xa0,
AUXRE = 0xc0,
};
enum auxra_bits {
HR_HANDSHAKE_MASK = 0x3,
HR_HLDA = 0x1,
HR_HLDE = 0x2,
HR_LCM = 0x3,
HR_REOS = 0x4,
HR_XEOS = 0x8,
HR_BIN = 0x10,
};
enum auxrb_bits {
HR_CPTE = (1 << 0),
HR_SPEOI = (1 << 1),
HR_TRI = (1 << 2),
HR_INV = (1 << 3),
HR_ISS = (1 << 4),
};
enum auxre_bits {
HR_DAC_HLD_DCAS = 0x1,
HR_DAC_HLD_DTAS = 0x2,
};
enum ppr_bits {
HR_PPS = (1 << 3),
HR_PPU = (1 << 4),
};
enum aux_cmds {
AUX_PON = 0x0,
AUX_CPPF = 0x1,
AUX_CR = 0x2,
AUX_FH = 0x3,
AUX_TRIG = 0x4,
AUX_RTL = 0x5,
AUX_SEOI = 0x6,
AUX_NVAL = 0x7,
AUX_SPPF = 0x9,
AUX_VAL = 0xf,
AUX_GTS = 0x10,
AUX_TCA = 0x11,
AUX_TCS = 0x12,
AUX_LTN = 0x13,
AUX_DSC = 0x14,
AUX_CIFC = 0x16,
AUX_CREN = 0x17,
AUX_TCSE = 0x1a,
AUX_LTNC = 0x1b,
AUX_LUN = 0x1c,
AUX_EPP = 0x1d,
AUX_SIFC = 0x1e,
AUX_SREN = 0x1f,
};
#endif