I2c@810c680000 I/O Expander Detection

Hello,

We are trying to access an I/O Expander from a custom Thor carrier board. The I2C lanes from the SoM connector are F51 and F52. For eliminating hardware and software based problems, we followed these steps below:

First, we connected an AGX Orin 32GB SoM to confirm the design in hardware level. We have not verified that the F51 and F52 are using i2c@31c0000 but we got the IC from this interface (It is not visible from i2cdetect command’s result bu we saw it from i2cdump. Once we tested with i2cdump, we saw it from i2cdetect). We understood that there should not be any problem in hardware level from the carrier board because we could access it with AGX Orin.

We could not find the matched interface name for the pins from elinux and Developer forum. Could you please verify that the F51-F52 (PN.05/PN.06) pins’ I2C interface is i2c@31c0000?

forecr@forecr-desktop:~$ sudo i2cdetect -l
[sudo] password for forecr: 
i2c-0	i2c       	3160000.i2c                     	I2C adapter
i2c-1	i2c       	c240000.i2c                     	I2C adapter
i2c-2	i2c       	3180000.i2c                     	I2C adapter
i2c-3	i2c       	3190000.i2c                     	I2C adapter
i2c-4	i2c       	Tegra BPMP I2C adapter          	I2C adapter
i2c-5	i2c       	31b0000.i2c                     	I2C adapter
i2c-6	i2c       	31c0000.i2c                     	I2C adapter
i2c-7	i2c       	c250000.i2c                     	I2C adapter
i2c-8	i2c       	31e0000.i2c                     	I2C adapter
forecr@forecr-desktop:~$ sudo i2cdetect -y -r 6
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:                         -- -- -- -- -- -- -- -- 
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
70: -- -- -- -- -- -- -- --                         
forecr@forecr-desktop:~$ sudo i2cdump -y -f 6 0x22
No size specified (using byte-data access)
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f    0123456789abcdef
00: 00 00 ff ff 00 00 ff ff XX XX XX XX XX XX XX XX    ........XXXXXXXX
10: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
20: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
30: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
40: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
50: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
60: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
70: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
80: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
90: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
a0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
b0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
c0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
d0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
e0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
f0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
forecr@forecr-desktop:~$ 
forecr@forecr-desktop:~$ sudo i2cdetect -y -r 6
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:                         -- -- -- -- -- -- -- -- 
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
20: -- -- 22 -- -- -- -- -- -- -- -- -- -- -- -- -- 
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
70: -- -- -- -- -- -- -- --                         
forecr@forecr-desktop:~$ 

Then, we connected an AGX Thor T4000 (flashed with this custom carrier board’s BSP) and verified that we should see the IC from i2c@810c680000 [source]. However, we could not see it with i2cdump.

forecr@forecr-desktop:~$ sudo i2cdetect -l
[sudo] password for forecr: 
i2c-0	i2c       	810c630000.i2c                  	I2C adapter
i2c-1	i2c       	810c640000.i2c                  	I2C adapter
i2c-2	i2c       	c600000.i2c                     	I2C adapter
i2c-3	i2c       	c610000.i2c                     	I2C adapter
i2c-4	i2c       	810c650000.i2c                  	I2C adapter
i2c-5	i2c       	Tegra BPMP I2C adapter          	I2C adapter
i2c-6	i2c       	810c670000.i2c                  	I2C adapter
i2c-7	i2c       	810c680000.i2c                  	I2C adapter
i2c-8	i2c       	810c690000.i2c                  	I2C adapter
i2c-9	i2c       	810c6a0000.i2c                  	I2C adapter
i2c-10	i2c       	810c6b0000.i2c                  	I2C adapter
i2c-12	i2c       	810c6d0000.i2c                  	I2C adapter
i2c-17	i2c       	NVIDIA i2c adapter 0 at 1:00.0  	I2C adapter
i2c-18	i2c       	NVIDIA i2c adapter 1 at 1:00.0  	I2C adapter
forecr@forecr-desktop:~$ sudo i2cdetect -y -r 7
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:                         -- -- -- -- -- -- -- -- 
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
70: -- -- -- -- -- -- -- --                         
forecr@forecr-desktop:~$ sudo i2cdump -y -f 7 0x22
No size specified (using byte-data access)
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f    0123456789abcdef
00: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
10: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
20: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
30: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
40: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
50: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
60: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
70: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
80: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
90: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
a0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
b0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
c0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
d0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
e0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
f0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
forecr@forecr-desktop:~$ 

Finally, we flashed an AGX Thor Developer Kit with the same BSP that we used with the custom carrier board with T4000. From AGX Thor Developer Kit, there is an audio codec from 0x1c. We saw that this IC is visible from Dev Kit. At least, we understood that the pinmux and device tree files should be functional for this I2C bus.

forecr@forecr-desktop:~$  sudo i2cdetect -l
i2c-0	i2c       	810c630000.i2c                  	I2C adapter
i2c-1	i2c       	810c640000.i2c                  	I2C adapter
i2c-2	i2c       	c600000.i2c                     	I2C adapter
i2c-3	i2c       	c610000.i2c                     	I2C adapter
i2c-4	i2c       	810c650000.i2c                  	I2C adapter
i2c-5	i2c       	Tegra BPMP I2C adapter          	I2C adapter
i2c-6	i2c       	810c670000.i2c                  	I2C adapter
i2c-7	i2c       	810c680000.i2c                  	I2C adapter
i2c-8	i2c       	810c690000.i2c                  	I2C adapter
i2c-9	i2c       	810c6a0000.i2c                  	I2C adapter
i2c-10	i2c       	810c6b0000.i2c                  	I2C adapter
i2c-12	i2c       	810c6d0000.i2c                  	I2C adapter
i2c-17	i2c       	NVIDIA i2c adapter 0 at 1:00.0  	I2C adapter
i2c-18	i2c       	NVIDIA i2c adapter 1 at 1:00.0  	I2C adapter
forecr@forecr-desktop:~$  sudo i2cdetect -y -r 7
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:                         -- -- -- -- -- -- -- -- 
10: -- -- -- -- -- -- -- -- -- -- -- -- UU -- -- -- 
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
60: 60 -- -- -- -- -- -- -- -- -- 6a -- -- -- -- -- 
70: -- -- -- -- -- -- -- --                         
forecr@forecr-desktop:~$  sudo i2cdump -y -f 7 0x1c
No size specified (using byte-data access)
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f    0123456789abcdef
00: 00 c8 c8 c8 80 00 00 00 00 00 00 00 00 80 08 08    .????........???
10: 00 00 00 00 00 00 00 00 00 af af 00 2f 2f 00 00    .........??.//..
20: 00 00 00 00 00 00 00 30 70 80 14 54 aa 00 0c 00    .......0p??T?.?.
30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
40: 00 00 00 00 00 a0 00 00 f8 38 00 00 fc 00 00 01    .....?..?8..?..?
50: 00 00 01 f0 00 00 00 00 00 00 00 00 00 00 00 00    ..??............
60: 00 00 00 28 00 00 00 00 00 00 00 00 04 00 00 00    ...(........?...
70: 80 80 80 81 0c 1d 00 00 00 00 00 00 00 00 00 00    ??????..........
80: 00 00 00 00 00 00 00 00 00 00 00 06 02 a0 00 11    ...........???.?
90: 07 0e 00 30 00 00 00 00 00 00 00 00 00 00 00 00    ??.0............
a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
b0: 20 00 00 00 22 1f 00 00 03 00 00 40 00 88 00 00     ..."?..?..@.?..
c0: 84 00 00 00 00 00 20 00 00 00 00 00 00 00 00 00    ?..... .........
d0: 06 1c 8c aa 00 00 04 00 00 08 00 00 00 00 00 00    ????..?..?......
e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
f0: 00 00 00 00 00 00 00 00 00 00 3b 5d 00 00 10 62    ..........;]..?b
forecr@forecr-desktop:~$ 

Here is the AGX Orin 32GB module’s DTS file (generated from DTB):

kernel_tegra234-p3737-0000+p3701-0004-nv.txt (322.0 KB)

Here is the AGX Thor T4000 module’s DTS file (generated from DTB):

kernel_tegra264-p4071-0000+p3834-0000-nv.txt (334.2 KB)

Here is the AGX Thor Developer Kit’s DTS file (generated from DTB):

kernel_tegra264-p4071-0000+p3834-0008-nv.txt (334.2 KB)

Is there anything that we can try to access it (decreasing clock speed etc.)?

Best Regards,

Mehmet

This might be relevant.

cat /sys/firmware/devicetree/base/aliases/i2c7
/bus@0/i2c@810c680000

cat /sys/firmware/devicetree/base/aliases/i2c8
/bus@0/i2c@810c690000
https://developer.download.nvidia.com/assets/embedded/secure/jetson/thor/docs/Jetson_Thor_Series_Modules_DesignGuide_DG12084001_v1.2.pdf

F52 I2C8_CLK GP259_I2C7_CLK General I2C 7 Clock
F51 I2C8_DAT GP260_I2C7_DAT General I2C 7 Dat
from live-devicetree-dump.txt 

                i2c@810c680000 {
                        status = "okay";

                        rt5640: audio-codec@1c {
                                compatible = "realtek,rt5640";
                                reg = <0x1c>;

                                clocks = <&bpmp TEGRA264_CLK_AUD_MCLK>;
                                clock-names = "mclk";

                                realtek,dmic1-data-pin = <RT5640_DMIC1_DATA_PIN_NONE>;
                                realtek,dmic2-data-pin = <RT5640_DMIC2_DATA_PIN_NONE>;
                                realtek,jack-detect-source = <RT5640_JD_SRC_HDA_HEADER>;

                                /* Codec IRQ output */
                                interrupt-parent = <&gpio_main>;
                                interrupts = <TEGRA264_MAIN_GPIO(Q, 7) GPIO_ACTIVE_HIGH>;

                                sound-name-prefix = "CVB-RT";

                                status = "okay";

                                port {
                                        rt5640_ep1: endpoint {
                                                link-name = "rt5640-playback";
                                                remote-endpoint = <&i2s4_dap>;
                                                mclk-fs = <256>;
                                        };
                                };
                        };
                };

Linux_for_Tegra/source$ grep -A100 ‘i2c@810c680000’ hardware/nvidia/t264/nv-public/nv-soc/tegra264-soc-prod.dtsi

		i2c@810c680000 { /* I2C7 */
			prod-settings {
				#prod-cells = <4>;
				prod {
					prod = <

						0 0x000000d4 0x000000ff 0x00000000              //I2C_I2C_INTERFACE_TIMING_2_0
						0 0x000000d8 0x000000ff 0x00000000              //I2C_I2C_HS_INTERFACE_TIMING_2_0
						0 0x000000dc 0x0000ffff 0x00000001              //I2C_I2C_MSTR_DATA_CAPTURE_TIMING_0
						0 0x000000e0 0x0000ffff 0x00000002>;            //I2C_I2C_SLV_DATA_CAPTURE_TIMING_0
				};
				prod_c_fm {
					prod = <
						0 0x0000006c 0xffff0000 0x00150000              //I2C_I2C_CLK_DIVISOR_REGISTER_0
						0 0x00000094 0x0000ffff 0x00000202              //I2C_I2C_INTERFACE_TIMING_0_0
						0 0x00000098 0xffffffff 0x02020202              //I2C_I2C_INTERFACE_TIMING_1_0
						0 0x000000e8 0x000000ff 0x00000040>;            //I2C_I2C_FAIRNESS_ARBITRATION_0
				};
				prod_c_fmplus {
					prod = <
						0 0x0000006c 0xffff0000 0x00080000              //I2C_I2C_CLK_DIVISOR_REGISTER_0
						0 0x00000094 0x0000ffff 0x00000202              //I2C_I2C_INTERFACE_TIMING_0_0
						0 0x00000098 0xffffffff 0x02020202              //I2C_I2C_INTERFACE_TIMING_1_0
						0 0x000000e8 0x000000ff 0x00000040>;            //I2C_I2C_FAIRNESS_ARBITRATION_0
				};
				prod_c_hs {
					prod = <
						0 0x0000006c 0xffffffff 0x001d0002              //I2C_I2C_CLK_DIVISOR_REGISTER_0
						0 0x00000094 0x0000ffff 0x00000202              //I2C_I2C_INTERFACE_TIMING_0_0
						0 0x00000098 0xffffffff 0x02020202              //I2C_I2C_INTERFACE_TIMING_1_0
						0 0x0000009c 0x0000ffff 0x00000102              //I2C_I2C_HS_INTERFACE_TIMING_0_0
						0 0x000000a0 0x00ffffff 0x00040404              //I2C_I2C_HS_INTERFACE_TIMING_1_0
						0 0x000000e8 0x000000ff 0x00000040>;            //I2C_I2C_FAIRNESS_ARBITRATION_0
				};
				prod_c_sm {
					prod = <
						0 0x0000006c 0xffff0000 0x001d0000              //I2C_I2C_CLK_DIVISOR_REGISTER_0
						0 0x00000094 0x0000ffff 0x00000708              //I2C_I2C_INTERFACE_TIMING_0_0
						0 0x00000098 0xffffffff 0x08080808              //I2C_I2C_INTERFACE_TIMING_1_0
						0 0x000000e8 0x000000ff 0x00000040>;            //I2C_I2C_FAIRNESS_ARBITRATION_0
				};
			};
		};

		i2c@810c690000 { /* I2C8 */
			prod-settings {
				#prod-cells = <4>;
				prod {
					prod = <

						0 0x000000d4 0x000000ff 0x00000000              //I2C_I2C_INTERFACE_TIMING_2_0
						0 0x000000d8 0x000000ff 0x00000000              //I2C_I2C_HS_INTERFACE_TIMING_2_0
						0 0x000000dc 0x0000ffff 0x00000001              //I2C_I2C_MSTR_DATA_CAPTURE_TIMING_0
						0 0x000000e0 0x0000ffff 0x00000002>;            //I2C_I2C_SLV_DATA_CAPTURE_TIMING_0
				};
				prod_c_fm {
					prod = <
						0 0x0000006c 0xffff0000 0x00150000              //I2C_I2C_CLK_DIVISOR_REGISTER_0
						0 0x00000094 0x0000ffff 0x00000202              //I2C_I2C_INTERFACE_TIMING_0_0
						0 0x00000098 0xffffffff 0x02020202              //I2C_I2C_INTERFACE_TIMING_1_0
						0 0x000000e8 0x000000ff 0x00000040>;            //I2C_I2C_FAIRNESS_ARBITRATION_0
				};
				prod_c_fmplus {
					prod = <
						0 0x0000006c 0xffff0000 0x00080000              //I2C_I2C_CLK_DIVISOR_REGISTER_0
						0 0x00000094 0x0000ffff 0x00000202              //I2C_I2C_INTERFACE_TIMING_0_0
						0 0x00000098 0xffffffff 0x02020202              //I2C_I2C_INTERFACE_TIMING_1_0
						0 0x000000e8 0x000000ff 0x00000040>;            //I2C_I2C_FAIRNESS_ARBITRATION_0
				};
				prod_c_hs {
					prod = <
						0 0x0000006c 0xffffffff 0x001d0002              //I2C_I2C_CLK_DIVISOR_REGISTER_0
						0 0x00000094 0x0000ffff 0x00000202              //I2C_I2C_INTERFACE_TIMING_0_0
						0 0x00000098 0xffffffff 0x02020202              //I2C_I2C_INTERFACE_TIMING_1_0
						0 0x0000009c 0x0000ffff 0x00000102              //I2C_I2C_HS_INTERFACE_TIMING_0_0
						0 0x000000a0 0x00ffffff 0x00040404              //I2C_I2C_HS_INTERFACE_TIMING_1_0
						0 0x000000e8 0x000000ff 0x00000040>;            //I2C_I2C_FAIRNESS_ARBITRATION_0
				};
				prod_c_sm {
					prod = <
						0 0x0000006c 0xffff0000 0x001d0000              //I2C_I2C_CLK_DIVISOR_REGISTER_0
						0 0x00000094 0x0000ffff 0x00000708              //I2C_I2C_INTERFACE_TIMING_0_0
						0 0x00000098 0xffffffff 0x08080808              //I2C_I2C_INTERFACE_TIMING_1_0
						0 0x000000e8 0x000000ff 0x00000040>;            //I2C_I2C_FAIRNESS_ARBITRATION_0
				};
			};
		};

This is from a text dump of all rows from Jetson_Thor_Series_Modules_Pinmux_Template_v1.4.xlsm

Row 147: ['F51', 'I2C8_DAT', 'GP260_I2C7_DAT', 'GEN7_I2C_SDA', 'unused_GEN7_I2C_SDA', 'GPIO3_PG.02', 'I2C7_DAT', '', None, '', 'B', 'B', '', 'B', '', 'I2C7_DAT', 'RSVD1', 'SOUNDWIRE1_DAT0', 'RSVD3', 'RSVD1', 'gen7_i2c_sda_pg2', 'vddio_edp', '', '', '', 'I2C7', 'EDP', 'ST/DD', 'BDGPIOLTLBSKP_BFCT6M16L_VD121812NC', '20K', 'z', 'I2C7_DAT', None, 'NORMAL', 'NORMAL', 'ENABLE', 'N/A', True, True, True, True, True, True, 'VALID', 'I2C7_DAT', 'Bidirectional', None, None, None, 'Enable', 'Disable', 'Disable', 'Enable', 'Mid', 'Disable', '1k', None, None, None, None, None, None, 'I2C7_DAT', 'J54', None, None]

Row 322: [None, None, 'HS_DISP2_HDMI_DP_REXT_PD', 'HDMI_DP2_RSET', 'unused_HDMI_DP2_RSET', '', 'HDMI_DP2_RSET', '', '', '', '', '', '', '', '', None, None, None, None, None, 'hdmi_dp2_rset', 'avddio_hdmi_dp2', '', '', None, '', '', None, 'DP_SINGLE_OFCM16L110P65B', None, '', None, None, None, None, None, None, None, None, None, None, None, None, None, 'HDMI_DP2_RSET', None, None, None, None, None, None, None, None, None, None, None, None, None, '1K 1%', None, None, None, None, 'F51', None, None]

Row 146: ['F52', 'I2C8_CLK', 'GP259_I2C7_CLK', 'GEN7_I2C_SCL', 'unused_GEN7_I2C_SCL', 'GPIO3_PG.01', 'I2C7_CLK', '', None, '', 'B', 'B', '', 'O', '', 'I2C7_CLK', 'RSVD1', 'SOUNDWIRE1_CLK', 'RSVD3', 'RSVD1', 'gen7_i2c_scl_pg1', 'vddio_edp', '', '', '', 'I2C7', 'EDP', 'ST/DD', 'BDGPIOLTL_DFCT6M16L_VD121812NC', '20K', 'z', 'I2C7_CLK', None, 'NORMAL', 'NORMAL', 'ENABLE', 'N/A', True, True, True, True, True, True, 'VALID', 'I2C7_CLK', 'Bidirectional', None, None, None, 'Enable', 'Disable', 'Disable', 'Enable', 'Mid', 'Disable', '1k', None, None, None, None, None, None, 'I2C7_CLK', 'H54', None, None]
grep GP259_I2C7_CLK allrows.txt 
Row 146: ['F52', 'I2C8_CLK', 'GP259_I2C7_CLK', 'GEN7_I2C_SCL', 'unused_GEN7_I2C_SCL', 'GPIO3_PG.01', 'I2C7_CLK', '', None, '', 'B', 'B', '', 'O', '', 'I2C7_CLK', 'RSVD1', 'SOUNDWIRE1_CLK', 'RSVD3', 'RSVD1', 'gen7_i2c_scl_pg1', 'vddio_edp', '', '', '', 'I2C7', 'EDP', 'ST/DD', 'BDGPIOLTL_DFCT6M16L_VD121812NC', '20K', 'z', 'I2C7_CLK', None, 'NORMAL', 'NORMAL', 'ENABLE', 'N/A', True, True, True, True, True, True, 'VALID', 'I2C7_CLK', 'Bidirectional', None, None, None, 'Enable', 'Disable', 'Disable', 'Enable', 'Mid', 'Disable', '1k', None, None, None, None, None, None, 'I2C7_CLK', 'H54', None, None]
scott@chithor:~/vba_to_python/text$ grep GP260_I2C7_DAT allrows.txt 
Row 147: ['F51', 'I2C8_DAT', 'GP260_I2C7_DAT', 'GEN7_I2C_SDA', 'unused_GEN7_I2C_SDA', 'GPIO3_PG.02', 'I2C7_DAT', '', None, '', 'B', 'B', '', 'B', '', 'I2C7_DAT', 'RSVD1', 'SOUNDWIRE1_DAT0', 'RSVD3', 'RSVD1', 'gen7_i2c_sda_pg2', 'vddio_edp', '', '', '', 'I2C7', 'EDP', 'ST/DD', 'BDGPIOLTLBSKP_BFCT6M16L_VD121812NC', '20K', 'z', 'I2C7_DAT', None, 'NORMAL', 'NORMAL', 'ENABLE', 'N/A', True, True, True, True, True, True, 'VALID', 'I2C7_DAT', 'Bidirectional', None, None, None, 'Enable', 'Disable', 'Disable', 'Enable', 'Mid', 'Disable', '1k', None, None, None, None, None, None, 'I2C7_DAT', 'J54', None, None]

I would suggest probe the i2c signal to confirm it.

Thanks

Hi,

I think F51 and F52 are the correct pins to use. From Orin-TRM_DP10508002_v1.2p.pdf you can find this mapping:
I2C7 0x031c0000

And searching “I2C Connections” you can find a block diagram about I2C mapping using those pins for I2C7
Jetson_AGX_Orin_Series_Design_Guide_DG-10653-001_v1.8.pdf
Jetson_Thor_Series_Modules_DesignGuide_DG12084001_v1.4.pdf

Also from this document you can find the correct I2C signals matching between Orin and Thor:
Jetson_Orin_Thor_Migration_AN_DA-11926-001_v1.2.pdf

So, yes I think the pins are right. I agree with ShaneCCC you should try probing your signal to confirm.
For me the failure is more likely electrical / board-level caused by pull-up strength, 1.8 V level / leakage / loading, signal integrity?

Also, are you sure that the expander is powered when using Thor? That’s something you could check. it may need a GPIO to power the chip.
Also, you can try running the i2cdetect/i2cdump for the other available buses just to double check the bus 7 is not the correct.

Enrique Ramirez
Embedded SW Engineer at RidgeRun
Contact us: support@ridgerun.com
Developers wiki: https://developer.ridgerun.com
Website: www.ridgerun.com

Hi @enrique.ramirez @ShaneCCC @whitesscott,

We tested with an ocsilloscope and saw the i2c signal when we are using i2cdetect or i2cdump commands.

We will do more tests with it. Thanks for the confirmation.

Yes, the IC integrated on the board and it gets power with Thor.