Controller I2C4 (I2C bus 3) stuck with I2C tools

Hi all,

We are working with a Jetson Xavier AGX and JetPack 4.6.2.
On our system, we need to use the I2C4 (i2c@3190000), which is I2C-3 in the system, to connect other devices but we are not able to use that bus with I2C Tools.

i2cdetect output:

i2cdetect -l
i2c-3 i2c 3190000.i2c I2C adapter
i2c-1 i2c c240000.i2c I2C adapter
i2c-101 i2c 15210000.nvdisplay I2C adapter
i2c-8 i2c 31e0000.i2c I2C adapter
i2c-6 i2c 31c0000.i2c I2C adapter
i2c-4 i2c Tegra BPMP I2C adapter I2C adapter
i2c-2 i2c 3180000.i2c I2C adapter
i2c-102 i2c 15220000.nvdisplay I2C adapter
i2c-0 i2c 3160000.i2c I2C adapter
i2c-7 i2c c250000.i2c I2C adapter
i2c-5 i2c 31b0000.i2c I2C adapter

Trying to use bus 3:

i2cdetect -r -y 3
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: – – ^C

The bus 2 works as expected so I wonder if this is something that I need to change in device-tree or other device affects this I2C bus to operate correctly.

We use a custom board but the same happens on the devkit.

Any help to enable this I2C bus will be appreciated.

Thanks in advance,
Greivin F.

I2C4(dp_aux_ch1) on Xavier is a display port controlled by display drivers for DP/HDMI usage. To convert this into a general purpose I2C, we need below DT overrides in platform DT.

        i2c@3190000 {
                pinctrl-names = "default";
                pinctrl-0 = <&dpaux_default>;
        };

        host1x@13e00000 {
                dpaux@155D0000 {
                        status = "okay";
                        compatible = "nvidia,tegra194-dpaux1-padctl";
#if LINUX_VERSION <= 419
                        /delete-property/ power-domains;
#endif
                        dpaux_default: pinmux@0 {
                                dpaux1_pins {
                                        pins = "dpaux1-1";
                                        function = "i2c";
                                };
                        };
                };
        };
1 Like