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:
| 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. |
| 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 |