I have some working touch screen code that defines the following registers:
typedef volatile struct {
UINT32 revision; //0x0
UINT32 resv1[3];
UINT32 sysconfig; //0x10
UINT32 resv2[3];
UINT32 irq_eoi; //0x20
UINT32 irq_status_raw; //0x24
UINT32 irq_status; //0x28
UINT32 irq_enable_set; //0x2c
UINT32 irq_enable_clr; //0x30
UINT32 irq_wakeup; //0x34
UINT32 dma_enable_set; //0x38
UINT32 dma_enable_clr; //0x3c
UINT32 adc_ctrl; //0x40
UINT32 adc_stat; //0x44
UINT32 adc_range; //0x48
UINT32 adc_clkdiv; //0x4c
UINT32 adc_misc; //0x50
UINT32 step_enable; //0x54
UINT32 idle_config; //0x58
UINT32 charge_stepcfg; //0x5c
UINT32 charge_delay; //0x60
TSC_ADC_STEP_CFG tsc_adc_step_cfg[16];
UINT32 fifo0_count; //0xe4
UINT32 fifo0_threshold; //0xe8
UINT32 dma0_req; //0xec
UINT32 fifo1_count; //0xf0
UINT32 fifo1_threshold; //0xf4
UINT32 dma1_req; //0xf8
UINT32 resv3; //0xfc
UINT32 fifo0_data; //0x100
UINT32 resv4[63];
UINT32 fifo1_data; //0x200
} TSCADC_REGS;
It shows an irq_eoi register at offset 20x. The code seem to write this register to zero at the end of the interrupt service routine.
This register is not defined in the TRM. I was wondering if the manual is in error or if this code may have been copied from a different BSP and just does nothing.
If so what BSP might it have come from?