Hi,
I bought :
- a processor board with a iMX6Q
- development board.
I tested I2C1 and I2C2 with the processor board on the development board with i2cdetect, and it sees all connected chips on both buses.
Then I made my own board. I2C1 passes the test. But at some point, while the Linux kernel is loading, the I2C2_SCL line goes low, and stays low forever. I2C2_SDA is high all the time. A reboot doesn't bring SCL back high again, only a power cycle. When I take the processor board from my home made board to the development board, I2C2 works OK.
What I did on my home made board :
- checked the 4.7K pull-up resistors on SCL and SDA lines to +3.3V : OK
- checked short circuits : didn't find any...
- unsoldered the 3 chips on I2C2 (RTC, GPIO expander and DAC) : the iMX6Q is on its own on I2C2
- toggled the I2C2_SCL (KEY_COL3) and I2C2_SDA (KEY_ROW3) in U-Boot : OK
- checked registers configurations in Linux :
- pad mux registers (0x20e0210, 0x20e0214) both read 0x00000014
- control registers (0x20e05e0, 0x20e05e4) both read 0x0001B8B1
- disabled drivers like the RTC's, which is on I2C2 on both the development and home made board
So, now, I'm desperately running out of ideas...
Regards