Hello, we are making a custom board based on xiver and using it well.
But there is a problem.
We used the i2c utility (i2cdetect) to change the register value of the switch chip.
By the way, the following situation occurs when using i2cdetect.
==============================================================
root@ubuntu:/home/nvidia# i2cdetect -y 5
Warning: Can’t use SMBus Quick Write command, will skip some addresses
0 1 2 3 4 5 6 7 8 9 a b c d e f
00:
10:
20:
30:
[ 8760.037359] tegra-i2c 31b0000.i2c: pio timed out addr: 0x30 tlen:12 rlen:4
[ 8760.037615] tegra-i2c 31b0000.i2c: — register dump for debugging ----
[ 8760.037855] tegra-i2c 31b0000.i2c: I2C_CNFG - 0x22c00
[ 8760.037968] tegra-i2c 31b0000.i2c: I2C_PACKET_TRANSFER_STATUS - 0x10001
[ 8760.038113] tegra-i2c 31b0000.i2c: I2C_FIFO_CONTROL - 0x0
[ 8760.038296] tegra-i2c 31b0000.i2c: I2C_FIFO_STATUS - 0x800080
[ 8760.038420] tegra-i2c 31b0000.i2c: I2C_MST_FIFO_CONTROL - 0x70000
[ 8760.038549] tegra-i2c 31b0000.i2c: I2C_MST_FIFO_STATUS - 0x800000
[ 8760.038678] tegra-i2c 31b0000.i2c: I2C_MST_PACKET_TRANSFER_CNT - 0x0
[ 8760.038811] tegra-i2c 31b0000.i2c: I2C_INT_MASK - 0x7d
[ 8760.038920] tegra-i2c 31b0000.i2c: I2C_INT_STATUS - 0x2
[ 8760.039034] tegra-i2c 31b0000.i2c: i2c transfer timed out addr: 0x30
…
root@ubuntu:/home/nvidia# i2cdetect -y 1
Warning: Can’t use SMBus Quick Write command, will skip some addresses
0 1 2 3 4 5 6 7 8 9 a b c d e f
00:
10:
20:
30: [ 9747.335316] tegra-i2c c240000.i2c: no acknowledge from address 0x30
– [ 9747.336239] tegra-i2c c240000.i2c: no acknowledge from address 0x31
– [ 9747.336850] tegra-i2c c240000.i2c: no acknowledge from address 0x32
– [ 9747.337320] tegra-i2c c240000.i2c: no acknowledge from address 0x33
– [ 9747.337811] tegra-i2c c240000.i2c: no acknowledge from address 0x34
– [ 9747.338258] tegra-i2c c240000.i2c: no acknowledge from address 0x35
– [ 9747.340276] tegra-i2c c240000.i2c: no acknowledge from address 0x36
– [ 9747.340762] tegra-i2c c240000.i2c: no acknowledge from address 0x37
Are you using the jetson through the serial interface?
This kind of messages are normal when no devices are detected on each address
tegra-i2c c240000.i2c: no acknowledge from address 0x31
When you are connected through the serial interface usually you will see all this messages redirected to this output. However, if you connect through ssh or on the board with a monitor you will see an output as the following:
Also dpaux0 is a hardcode property that would be used by driver (kernel/nvidia/drivers/pinctrl/pinctrl-tegra186-dpaux.c)
The dpaux0 node is necessary for suspend and resume functionalities. It is added to avoid unwanted results if the system goes to a suspend state and resumed for any i2c transactions
If you are sure that the system will not go into a suspend state, you can remove the dpaux0 node
Regarding the power domain node, this is used for power gating. Removing them(/delete property/ power-domains) is ensuring that the power gating driver is not shutting the power for the controller and hence it is working. power domain is a legacy feature that is present by default.