Datasheet

Table Of Contents
4.4.15.3. Watermark Levels
In DW_apb_i2c the registers for setting watermarks to allow DMA bursts do not need be set to anything other than their
reset value. Specifically IC_DMA_TDLR and IC_DMA_RDLR can be left at reset values of zero. This is because only single
transfers are needed due to the low bandwidth of I2C relative to system bandwidth, and also the DMA controller normally
has highest priority on the system bus so will generally complete very quickly.
4.4.15.4. Operation of Interrupt Registers
Table 3-10 lists the operation of the DW_apb_i2c interrupt registers and how they are set and cleared. Some bits are set by
hardware and cleared by software, whereas other bits are set and cleared by hardware.
Table 479. Clearing
and Setting of
Interrupt Registers
Interrupt Bit Fields Set by Hardware/Cleared by Software Set and Cleared by Hardware
MST_ON_HOLD N Y
RESTART_DET Y N
GEN_CALL Y N
START_DET Y N
STOP_DET Y N
ACTIVITY Y N
RX_DONE Y N
TX_ABRT Y N
RD_REQ Y N
TX_EMPTY N Y
TX_OVER Y N
RX_FULL N Y
RX_OVER Y N
RX_UNDER Y N
4.4.16. List of Registers
Table 480. List of I2C
registers
Offset Name Info
0x00 IC_CON I2C Control Register
0x04 IC_TAR I2C Target Address Register
0x08 IC_SAR I2C Slave Address Register
0x10 IC_DATA_CMD I2C Rx/Tx Data Buffer and Command Register
0x14 IC_SS_SCL_HCNT Standard Speed I2C Clock SCL High Count Register
0x18 IC_SS_SCL_LCNT Standard Speed I2C Clock SCL Low Count Register
0x1c IC_FS_SCL_HCNT Fast Mode or Fast Mode Plus I2C Clock SCL High Count Register
0x20 IC_FS_SCL_LCNT Fast Mode or Fast Mode Plus I2C Clock SCL Low Count Register
0x2c IC_INTR_STAT I2C Interrupt Status Register
0x30 IC_INTR_MASK I2C Interrupt Mask Register
RP2040 Datasheet
4.4. I2C 487