SPRUI30H November 2015 – May 2024 DRA745 , DRA746 , DRA750 , DRA756
Poll the I2Ci.I2C_IRQSTATUS_RAW [3] RRDY bit, or use the RRDY interrupt (the I2Ci.I2C_IRQENABLE_SET [3] RRDY_IE bit must be set to 1) or the DMA RX channel (the I2Ci.I2C_BUF[15] RDMA_EN bit must be set to 1 together with I2C_DMARXENABLE_SET) to read the receive data in the I2Ci.I2C_DATA register.
If the transfer length does not equal the RX FIFO threshold (the I2Ci.I2C_BUF[13:8] RTRSH bit field + 1), use the draining feature (enable the RDR interrupt by setting the I2Ci.I2C_IRQENABLE_SET [13] RDR_IE bit to 1).
In receive mode only, the I2Ci.I2C_IRQSTATUS_RAW [11] ROVR (receive overrun) bit indicates whether the receiver has experienced overrun. An overrun condition occurs when the shift register and the RX FIFO are full. An overrun condition does not result in data loss; the I2C controller simply holds i2ci_scl to low to prevent other bytes from being received.
The I2Ci.I2C_IRQSTATUS_RAW[7] AERR bit is set to 1 when a read access is performed in the I2Ci.I2C_DATA register while the RX FIFO is empty. The corresponding interrupt can be enabled by setting the I2Ci.I2C_IRQENABLE_SET [7] AERR_IE bit to 1.