This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

AM623: [I2C2] The driver detect a timeout of the i2c controller, I2C2 bus is not usable.

Part Number: AM623
Other Parts Discussed in Thread: SYSCONFIG

The three I2C peripherals I2C0,1,2 has been enable in the device tree using sysconfig tools.

I run linux SDK 08.06 on our custom design base on the AM62x SK EVM board.

  1. The I2C0,1 are working fine, but I2C2 always return the error : "omap_i2c 20020000.i2c: controller timed out" when the i2cdetect command is used used for the test used.
  2. First test has been done without any device connected on the I2C bus, so no slave should interfere with the I2C bus.
  3. I changed the device tree to make the balls K22 and K24 configure as GPIO instead of I2C, then I verified on the oscillo that the signals goes high and low an the I2C bus lines.

It seems that there is an issue with the I2C2 controller, because no issue has been detected on the I2C lines .

I read in some thread that the I2C controller can be stuck, could it be my problem. If so how to check so and fix the issue.

I can use oscillo, JTAG and serial UART for debuging under Linux SDK.

It is a blocking issue for our product be cause the I2C2 line will be connected to HDMI connector.

Let me know as soon as possible how to fix that.

Regards,

Alexis.

  • I noticed that the TISDK device tree is configuring I2C 0 as  :

    clock-frequency = <400000>;

    The I2C1 is configured as :

    clock-frequency = <100000>;

    I2C2 is configured as :

    clock-frequency = <100000>;

    If I change the frequency to 400 000, the I2C2 is no more raising a timeout error.

    What should explain such behaviour ?

    Regards,

    Alexis.

  • Hello Alexis,

    Apologies for the delayed response, I am now back from Thanksgiving vacation.

    I would be very surprised if the difference was I2C0 vs I2C1 vs I2C2. Each I2C instance is the exact same group of circuits, so the driver code should run exactly the same on each instance. It is more likely that the difference is in the hardware connections you made to each I2C bus outside of the AM62x processor.

    I am sending your thread to another team member to comment from the hardware side.

    Regards,

    Nick