I2c connection on apalis imx6 with ixora board

I am having trouble to establish a connection via one of the available i2c of the apalis imx6.

root@b2qt-apalis-imx6:~# i2cdetect -l
i2c-3   i2c             i2c@0                                   I2C adapter
i2c-1   i2c             21a8000.i2c                             I2C adapter
i2c-2   i2c             21a4000.i2c                             I2C adapter
i2c-0   i2c             21a0000.i2c                             I2C adapter

I tried using the available pins on the Ixora carrier board:

  • I2C1_SDA and I2C1_SCK on X27
    and also
  • I2C_CAM1_SCL and 2C_CAM1_SDA on X14

i2cdetect does not find the connected device (address 0x28)

root@b2qt-apalis-imx6:~# i2cdetect -y 0
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: 30 -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: 50 -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- UU -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
root@b2qt-apalis-imx6:~# i2cdetect -y 1
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
root@b2qt-apalis-imx6:~# i2cdetect -y 2
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- UU -- UU -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- UU -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
root@b2qt-apalis-imx6:~# i2cdetect -y 3
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- 3a -- -- -- -- --
40: 40 -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: UU -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --

When writing or reading directly with i2cget, the operation fails.

root@b2qt-apalis-imx6:~# i2cget 0 0x28 0x00 b
WARNING! This program can confuse your I2C bus, cause data loss and worse!
I will read from device file /dev/i2c-0, chip address 0x28, data address
0x00, using read byte data.
Continue? [Y/n] y
Error: Read failed

When I observe the lines with a logic analyzer (while executing above commands), I can see nothing, not even a clock signal.
What could be the problem?

I assumed, because the external RTC is also connected via I2C1, and I2C1 is available on X27, that I could use the pins on X27 for testing.

Is it principally possible to connect a I2C slave to above mentioned i2c devices?

Could the I2C EEPROM on the Ixora board interfere with the connection?

Thank you in advance.

Used Versions:
Apalis iMX6D 512MB V1.1B
Ixora V1.2A
Boot2qt 5.15.5

u-boot:

$ grep i2c < uboot_log.txt
[    0.093040] i2c-gpio i2c@0: using pins 80 (SDA) and 62 (SCL)
[    0.094039] i2c i2c-0: IMX I2C adapter registered
[    0.094069] i2c i2c-0: can't use DMA, using PIO instead.
[    0.100244] stmpe-i2c 2-0041: stmpe811 detected, chip id: 0x811
[    0.190493] i2c i2c-2: IMX I2C adapter registered
[    0.190523] i2c i2c-2: can't use DMA, using PIO instead.
[    0.191222] i2c i2c-1: IMX I2C adapter registered
[    0.191248] i2c i2c-1: can't use DMA, using PIO instead.
[    2.138553] input: stmpe-ts as /devices/soc0/soc/2100000.aips-bus/21a4000.i2c/i2c-2/2-0041/stmpe-ts/input/input0
[    2.165485] i2c /dev entries driver
[    5.223388] atmel_mxt_ts 0-004a: __mxt_read_reg: i2c transfer failed (-6)
[    5.239094] atmel_mxt_ts 0-004a: mxt_bootloader_read: i2c recv failed (-6)
[    5.263293] atmel_mxt_ts 0-004a: mxt_bootloader_read: i2c recv failed (-6)
[    6.681983] adv7280 1-0021: chip found @ 0x42 (21a8000.i2c)

when I do the same test as described above on my colibri imx7d 1GB with an Iris V2.0A carrier board and boot2qt, it works perfectly. On the colibri, the I2C device is found with the address 0x28 and interaction works.

root@b2qt-colibri-imx7-emmc:~# i2cdetect -y 0 && i2cdetect -y 3
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- UU -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- UU -- -- --
30: -- -- -- UU -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- 28 -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- 3c -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- UU -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --

root@b2qt-colibri-imx7-emmc:~# i2cdump -y 3 0x28
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 3c 00 ff 00 00 00 ff ff ff ff ff ff ff ff 00    .<..............
10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
d0: 00 00 00 00 00 00 00 00 00 00 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 00 00 00 00 00 00    ................

u-boot log of colibri:

$ grep i2c < uboot_log_colibri.txt
[    0.080284] i2c i2c-0: IMX I2C adapter registered
[    0.080316] i2c i2c-0: can't use DMA, using PIO instead.
[    0.080978] i2c i2c-3: IMX I2C adapter registered
[    0.081005] i2c i2c-3: can't use DMA, using PIO instead.
[    1.200999] input: AD7879 Touchscreen as /devices/soc0/soc/30800000.aips-bus/30a20000.i2c/i2c-0/0-002c/input/input0
[    1.228032] i2c /dev entries driver
[    0.080353] i2c i2c-0: IMX I2C adapter registered
[    0.080384] i2c i2c-0: can't use DMA, using PIO instead.
[    0.081043] i2c i2c-3: IMX I2C adapter registered
[    0.081070] i2c i2c-3: can't use DMA, using PIO instead.
[    1.211105] input: AD7879 Touchscreen as /devices/soc0/soc/30800000.aips-bus/30a20000.i2c/i2c-0/0-002c/input/input0
[    1.238126] i2c /dev entries driver

But why doesn’t it work on the Apalis imx6 with Ixora?

The numbering of the pins on Ixora does not start on the side where the connector name is printed (X27), but on the other side, marked with a tiny dot. I did not see the dot, so I started counting on the wrong side.
After connecting to the correct pins, everything works great now.