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