I2C Peripheral Interface

The Sapphire SoC has up to 3 I2C master/slave peripherals. You use the system_i2c_2* ports to calibrate the DDR DRAM memory; if you do not want to perform calibration, you can use this peripheral for your own purposes. Use these parameters to reference the interface:

Table 1. I2C Peripheral Ports (User)Where n is 0, 1, or 2.
Port Direction Description
system_i2c_n_io_sda_write Output SDA output for user device.
system_i2c_n_io_sda_read Input SDA input for user device.
system_i2c_n_io_scl_write Output SCL output for user device.
system_i2c_n_io_scl_read Input SCL input for user device.
Table 2. I2C Register Map
Address Offset Register Name Privilege Width
0x0000_0000 txData Read/Write 32
0x0000_0004 txAck Read/Write 32
0x0000_0008 rxData Read/Write 32
0x0000_000C rxAck Read/Write 32
0x0000_0020 Interrupt Read/Write 32
0x0000_0024 Interrupt Clears Read/Write 32
0x0000_0028 Sampling Clock Divider Write 32
0x0000_002C Timeout Write 32
0x0000_0030 tsuData Write 32
0x0000_0040 Master Status Read/Write 32
0x0000_0044 Slave Status Read 32
0x0000_0048 Slave Override Read/Write 32
0x0000_0050 tlow Write 32
0x0000_0054 tHigh Write 32
0x0000_0058 tBuf Write 32
0x0000_0080 Hit Context Read 32
0x0000_0084 Filtering Status Read 32
0x0000_0088 Filtering Configuration 0 Write 32
0x0000_008C Filtering Configuration 1 Write 32