Jetson Xavier: I2C-3 not working

Hi,

I’m developing the software support to capture video using a SERDES GSML setup with a custom carrier board. The deserializer IC and the camera module are located in the i2c-3 bus (@3190000) but I’m having issues with that bus, basically the kernel is reporting that the bus is not responding:

[   14.459583] tegra-i2c 3190000.i2c: pio timed out addr: 0x48 tlen:28 rlen:4
[   14.459786] tegra-i2c 3190000.i2c: --- register dump for debugging ----
[   14.459924] tegra-i2c 3190000.i2c: I2C_CNFG - 0x22c00
[   14.460027] tegra-i2c 3190000.i2c: I2C_PACKET_TRANSFER_STATUS - 0x10001
[   14.460154] tegra-i2c 3190000.i2c: I2C_FIFO_CONTROL - 0x0
[   14.460273] tegra-i2c 3190000.i2c: I2C_FIFO_STATUS - 0x800080
[   14.460384] tegra-i2c 3190000.i2c: I2C_MST_FIFO_CONTROL - 0x70000
[   14.460534] tegra-i2c 3190000.i2c: I2C_MST_FIFO_STATUS - 0x7c0000
[   14.460654] tegra-i2c 3190000.i2c: I2C_MST_PACKET_TRANSFER_CNT - 0x0
[   14.460835] tegra-i2c 3190000.i2c: I2C_INT_MASK - 0x7d
[   14.460946] tegra-i2c 3190000.i2c: I2C_INT_STATUS - 0x2
[   14.461063] tegra-i2c 3190000.i2c: i2c transfer timed out addr: 0x48

[   24.699550] tegra-i2c 3190000.i2c: pio timed out addr: 0x30 tlen:28 rlen:4
[   24.699765] tegra-i2c 3190000.i2c: --- register dump for debugging ----
[   24.699938] tegra-i2c 3190000.i2c: I2C_CNFG - 0x22c00
[   24.700056] tegra-i2c 3190000.i2c: I2C_PACKET_TRANSFER_STATUS - 0x10001
[   24.700199] tegra-i2c 3190000.i2c: I2C_FIFO_CONTROL - 0x0
[   24.700349] tegra-i2c 3190000.i2c: I2C_FIFO_STATUS - 0x800080
[   24.700507] tegra-i2c 3190000.i2c: I2C_MST_FIFO_CONTROL - 0x70000
[   24.700648] tegra-i2c 3190000.i2c: I2C_MST_FIFO_STATUS - 0x7c0000
[   24.700781] tegra-i2c 3190000.i2c: I2C_MST_PACKET_TRANSFER_CNT - 0x0
[   24.700931] tegra-i2c 3190000.i2c: I2C_INT_MASK - 0x7d
[   24.701049] tegra-i2c 3190000.i2c: I2C_INT_STATUS - 0x2
[   24.701157] tegra-i2c 3190000.i2c: i2c transfer timed out addr: 0x30
[   24.701368] ov10635 3-0030: Failed to read chip ID

I have tested the i2c-3 using an original JetPack 4.2 image and the devkit carrier board and the same issue is being reported in the i2c bus when I try to scan it:

sudo i2cdetect -y -a -r 3

Does it mean this I2C bus is not enabled/available at hardware level? Any insight about this issue would be really appreciated.

Thanks,

Could you probe the signal to make sure the device have ack.

Hi ShaneCCC,

Thanks for the reply. After digging up my devkit carrier board schematics (version B02) I found that the pull-up resistors for the i2c-3 bus (@3190000) were removed, thus this bus is unusable without proper hardware modifications. The pull-up resistors aren’t present in the custom carrier board too, so it makes sense the bus can’t be used in any carrier board.

FYI the resistors I’m referring to are the R604 and R602, it can be found the Camera Connector page of the P2822-B02 schematics.

Hi, there are 1kohm PU to 1.8V in module for I2C lines, so R602 and R604 are unmounted. Please check the device address and voltage level of I2C first.