ASRock Rack X570D4U mainboard: I2C busses

This page describes the I2C busses and connected on-board devices on the ASRock X570D4U mainboard.

I2C bus 1

This bus is used for controlling on-board devices that are used when the host is on.

DeviceAddressAvailable when host is offDescription
PCA9557 IO expander0x1CNoControls the FAN fault LEDs
Unknown device0x1DNoUnknown
Nuvoton NCT6796D-R SuperIO0x2DNoHost temperature monitoring interface
Nuvoton W83773G0x4CYesMainboard temperature sensor

PCA9557 IO expander

PinDirectionFunction
0OutputFault LED for FAN 4
1OutputFault LED for FAN 5
2OutputFault LED for FAN 1
3OutputUnknown / not connected
4OutputFault LED for FAN 2
5OutputFault LED for FAN 3
6OutputFault LED for FAN 6
7OutputUnknown / not connected

Nuvoton NCT6796D-R SuperIO

This chip can read the CPU and chipset temperatures. It should be possible to use the newly added nct6775-i2c driver to use this device.

Alternatively the temperatures can be read using this shell script:

#!/bin/bash
i2cset -y 1 0x2d 0x4e 0x04
while :
do
    TSI0INT=$((16#$(i2cget -y 1 0x2d 0x09 | cut -f2 -dx)))
    TSI0FRC=$(($((16#$(i2cget -y 1 0x2d 0x0a | cut -f2 -dx)))>>5))
    TSI1INT=$((16#$(i2cget -y 1 0x2d 0x0b | cut -f2 -dx)))
    TSI1FRC=$(($((16#$(i2cget -y 1 0x2d 0x0c | cut -f2 -dx)))>>5))
    echo "TSI0_TEMP: $TSI0INT.$TSI0FRC °C / TSI1_TEMP: $TSI1INT.$TSI1FRC °C"
    sleep 0.5
done

Nuvoton W83773G

Temperature input 2 appears to be the mainboard temperature sensor.

cat /sys/class/hwmon/hwmon0/temp2_input

I2C bus 2

This bus is used for connecting to exernal power supplies with SMBus monitoring support.

DeviceAddressAvailable when host is offDescription
PSU SMBus header (PSU_SMB1)MOLEX 70543-0003 connector, pinout is in manual

I2C bus 3

This bus has an unknown purpose.

DeviceAddressAvailable when host is offDescription
Unknown device0x13YesUnknown
Unknown device0x14NoUnknown
Unknown device0x15NoUnknown

I2C bus 4

This bus is used to connect to expansion cards inserted into the PCI-Express slots of the mainboard.

DeviceAddressAvailable when host is offDescription
NXP PCA9545A I2C bus switch0x70YesBus multiplexer for switching between PCIe slots

NXP PCA9545A I2C bus switch

BusPort
1???
2???
3???
4???

I2C bus 5

This bus is used for connecting to exernal power supplies with SMBus monitoring support.

DeviceAddressAvailable when host is offDescription
BMC SMbus header (BMC_SMB_1)MOLEX 353620550 connector, pinout is in manual

I2C bus 7

This bus is used for connecting to the FRU EEPROM and the RAM DIMMs.

DeviceAddressAvailable when host is offDescription
RAM DIMM A1 temperature sensor0x1ANo
RAM DIMM A2 temperature sensor????NoNot tested yet
RAM DIMM B1 temperature sensor0x1BNo
RAM DIMM B2 temperature sensor????NoNot tested yet
Unknown device0x30NoUnknown
Unknown device0x35NoUnknown
Unknown device0x36NoUnknown
RAM DIMM A1 SPD EEPROM0x52No
RAM DIMM A2 SPD EEPROM????NoNot tested yet
RAM DIMM B1 SPD EEPROM0x53No
RAM DIMM B2 SPD EEPROM????NoNot tested yet
FRU EEPROM0x57No

Unknown

Not tested yet.

DeviceAddressAvailable when host is offDescription
IPMI SMbus header (IPMB_1)MOLEX 22035045 connector, pinout is in manual