General
The I2C bus is managed by the hardware I2C master in the PS (CPU). 7 bit addressing is used, so devices can use the address space from 0x00 to 0x76. Some devices treat 0x77 as a special broadcast address, hence do not use it for general purpose.
Overview table
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | a | b | c | d | e | f | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x00 | ||||||||||||||||
0x10 | 11 | 18 | 19 | |||||||||||||
0x20 | 20 | |||||||||||||||
0x30 | ||||||||||||||||
0x40 | 4c | |||||||||||||||
0x50 | 50 | 51 | 52 | 53 | 54 | 57 | 5c | |||||||||
0x60 | 6f | |||||||||||||||
0x70 | 74 | – | – | – | – | – | – | – | – | – |
Detailed information
Base board
0x54: ID EEPROM
Size: 128 Kbits = 16 Kbyte
Handled by: Linux kernel driver, compatible string “at,24c128”
Memory access: /sys/bus/i2c/devices/0-0054/eeprom
Address | Length (bits) | Description |
---|---|---|
0x00 | 32 | Module serial number |
0x04 | 32 | Module product number = 0x43 0x54 0x48 0x44 |
0x74: Fan speed
Handled by: Custom kernel driver ltc1695, compatible string “ltc,ltc1695”
Access via the industrial I/O framework: /sys/bus/iio/devices/iio:deviceX/out_intensity0_raw
Soc board
0x57: Real time clock (part 1/2, Registers)
0x5c: ID EEPROM
0x6f: Real time clock (part 2/2, SRAM)
Handled by: Linux kernel driver, compatible string “isl,isl12022”
Aux board
0x11: PSU Peltier output current preset
Handled by: Custom kernel driver ltc1695, compatible string “ltc,ltc2606”
Access via the industrial I/O framework: /sys/bus/iio/devices/iio:deviceX/out_intensity0_raw
0x18: PSU DUT output voltage/temperature monitor
Handled by: Custom kernel driver ltc1695, compatible string “ltc,ltc2301”
Access via the industrial I/O framework: /sys/bus/iio/devices/iio:deviceX/in_voltageX_raw
0x19: PSU Peltier output current monitor
Handled by: Custom kernel driver ltc1695, compatible string “ltc,ltc2301”
Access via the industrial I/O framework: /sys/bus/iio/devices/iio:deviceX/in_voltageX_raw
0x20: PSU DUT output voltage preset
Handled by: Custom kernel driver ltc1695, compatible string “ad,ad5141”
Access via the industrial I/O framework: /sys/bus/iio/devices/iio:deviceX/out_intensity0_raw
Current DAC setting can be written to EEPROM by echo’ing 1 to /sys/bus/iio/devices/iio:deviceX/write_dac_to_eeprom. Upon power-on or device reset, this setting is restored to the DAC register.
0x52: ID EEPROM for AUXA
Size: 128 Kbits = 16 Kbyte
Handled by: Linux kernel driver, compatible string “at,24c128”
Memory access: /sys/bus/i2c/devices/0-0052/eeprom
0x53: ID EEPROM for AUXB
Size: 128 Kbits = 16 Kbyte
Handled by: Linux kernel driver, compatible string “at,24c128”
Memory access: /sys/bus/i2c/devices/0-0053/eeprom
Dut board
0x4c: Digital temperature sensor
Handled by: Custom kernel driver ltc2990, compatible string “ltc,ltc2990”
Access via the industrial I/O framework: /sys/bus/iio/devices/iio:deviceX/in_tempX_tX_raw
0x50: ID EEPROM
Size: 128 Kbits = 16 Kbyte
Handled by: Linux kernel driver, compatible string “at,24c128”
Memory access: /sys/bus/i2c/devices/0-0050/eeprom
0x51: ID EEPROM (secondary, optional)
Size: 128 Kbits = 16 Kbyte
Handled by: Linux kernel driver, compatible string “at,24c128”
Memory access: /sys/bus/i2c/devices/0-0051/eeprom