[L4T28.1 TX1]VI-I2C read/write fail for some register addresses

Hi All,

I am seeing a weird behavior for 2byte read/write via VI-I2C.

If my register address range is 0 - 11 bit (e.g.: 0x8C0, 0x3C0), everything is fine.

However, if my register address is 12bit or more (e.g.: 0x1000 , 0x4000), NACK is obtained.

Any suggestions? Did anyone came across similar issue?

Notes:

  1. I do not have similar issue in L4T24.2.1.
  2. I tried lowering I2C speed to 100KHz, but no change in behaviour.

Regards,
Rejeesh

Hi All,

Just wanted to update that there are no such issues in other I2C buses like I2C-2

Regards,
Rejeesh

@Rejeesh
That’s interesting, however the camera sensor ov5693 is connect to this i2c bus and there’s no problem for the 16 bits address.

Hi Shane,

Just now noticed that OV uses same address range and surprised to hear that there are no issues with I2C access.

I was suspecting 28.1 VI tegra I2C driver because I did not face any issues with 24.2.1.

In fact, I could see lot of changes in 28.1 VI tegra I2C driver compared to 24.2.1.

Do you have any debugging tips, like adding any delay in the I2C driver?

I checked the signals using Oscilloscope and I am getting ACK for the error causing addresses.

Regards,
Rejeesh

@Rejeesh
It’s looks like a special case on you porting. I have no idea to you to debug it now. But if you can try to back port the i2c driver to 24.2.1 to try. If it’s time consuming for you switch to another bus is a better option.

Hi Shane,

Ok, I shall try back port I2C driver.

To back port, is it sufficient to replace 28.1 i2c-tegra-vi.c file with 24.2.1 version ?

Regards,
Rejeesh