/* lirc_it87.h */ /* SECTION: Definitions */ /********************************* ITE IT87xx ************************/ /* based on the following documentation from ITE: a) IT8712F Preliminary CIR Programming Guide V0.1 b) IT8705F Simple LPC I/O Preliminary Specification V0.3 c) IT8712F EC-LPC I/O Preliminary Specification V0.5 */ /* IT8712/05 Ports: */ #define IT87_ADRPORT 0x2e #define IT87_DATAPORT 0x2f #define IT87_INIT {0x87, 0x01, 0x55, 0x55} /* alternate Ports: */ /* #define IT87_ADRPORT 0x4e #define IT87_DATAPORT 0x4f #define IT87_INIT {0x87, 0x01, 0x55, 0xaa} */ /* IT8712/05 Registers */ #define IT87_CFGCTRL 0x2 #define IT87_LDN 0x7 #define IT87_CHIP_ID1 0x20 #define IT87_CHIP_ID2 0x21 #define IT87_CFG_VERSION 0x22 #define IT87_SWSUSPEND 0x23 #define IT8712_CIR_LDN 0xa #define IT8705_CIR_LDN 0x7 /* CIR Configuration Registers: */ #define IT87_CIR_ACT 0x30 #define IT87_CIR_BASE_MSB 0x60 #define IT87_CIR_BASE_LSB 0x61 #define IT87_CIR_IRQ 0x70 #define IT87_CIR_CONFIG 0xf0 /* List of IT87_CIR registers: offset to BaseAddr */ #define IT87_CIR_DR 0 #define IT87_CIR_IER 1 #define IT87_CIR_RCR 2 #define IT87_CIR_TCR1 3 #define IT87_CIR_TCR2 4 #define IT87_CIR_TSR 5 #define IT87_CIR_RSR 6 #define IT87_CIR_BDLR 5 #define IT87_CIR_BDHR 6 #define IT87_CIR_IIR 7 /* Bit Definition */ /* IER: */ #define IT87_CIR_IER_TM_EN 0x80 #define IT87_CIR_IER_RESEVED 0x40 #define IT87_CIR_IER_RESET 0x20 #define IT87_CIR_IER_BR 0x10 #define IT87_CIR_IER_IEC 0x8 #define IT87_CIR_IER_RFOIE 0x4 #define IT87_CIR_IER_RDAIE 0x2 #define IT87_CIR_IER_TLDLIE 0x1 /* RCR: */ #define IT87_CIR_RCR_RDWOS 0x80 #define IT87_CIR_RCR_HCFS 0x40 #define IT87_CIR_RCR_RXEN 0x20 #define IT87_CIR_RCR_RXEND 0x10 #define IT87_CIR_RCR_RXACT 0x8 #define IT87_CIR_RCR_RXDCR 0x7 /* TCR1: */ #define IT87_CIR_TCR1_FIFOCLR 0x80 #define IT87_CIR_TCR1_ILE 0x40 #define IT87_CIR_TCR1_FIFOTL 0x30 #define IT87_CIR_TCR1_TXRLE 0x8 #define IT87_CIR_TCR1_TXENDF 0x4 #define IT87_CIR_TCR1_TXMPM 0x3 /* TCR2: */ #define IT87_CIR_TCR2_CFQ 0xf8 #define IT87_CIR_TCR2_TXMPW 0x7 /* TSR: */ #define IT87_CIR_TSR_RESERVED 0xc0 #define IT87_CIR_TSR_TXFBC 0x3f /* RSR: */ #define IT87_CIR_RSR_RXFTO 0x80 #define IT87_CIR_RSR_RESERVED 0x40 #define IT87_CIR_RSR_RXFBC 0x3f /* IIR: */ #define IT87_CIR_IIR_RESERVED 0xf8 #define IT87_CIR_IIR_IID 0x6 #define IT87_CIR_IIR_IIP 0x1 /* TM: */ #define IT87_CIR_TM_IL_SEL 0x80 #define IT87_CIR_TM_RESERVED 0x40 #define IT87_CIR_TM_TM_REG 0x3f #define IT87_CIR_FIFO_SIZE 32 /* Baudratedivisor for IT87: power of 2: only 1,2,4 or 8) */ #define IT87_CIR_BAUDRATE_DIVISOR 0x1 #define IT87_CIR_DEFAULT_IOBASE 0x310 #define IT87_CIR_DEFAULT_IRQ 0x7 #define IT87_CIR_SPACE 0x00 #define IT87_CIR_PULSE 0xff #define IT87_CIR_FREQ_MIN 27 #define IT87_CIR_FREQ_MAX 58 #define TIME_CONST (IT87_CIR_BAUDRATE_DIVISOR * 8000000ul / 115200ul) /********************************* ITE IT87xx ************************/