I2c4 on UART2_PIN colibri-imx6ull V1.1A 512MB WB IT

Hi,
I got a mistake on I2C4 bus with

  • Colibri-imx6ull V1.1A 512MB WB IT
  • Colibri Evaluation Board V3.2B
  • BSP 5 / UBOOT 2020.07
    (same mistake on linux Kernel)

I2C4 works on UART2_TX ball pin only if i remove the external 4K7 pull-up on my slave board.

Why I couldn’t use 4k7 pull-up on I2C4_SCL (ball name UART2_TX )?
it works well on I2C1 with same config.

When I use i2c4 function on UART2_TX ball pin with 4K7 pull-up, I didn’t see any clock on I2C_SCL (I2C_SDA works fine).
When I use I2C4 with LCD_DATA02 and LCD_DATA03 pins everything works fine.

When I read registers IOMUXC_SW_MUX_CTL_PAD_UART2_TX_DATA. Values are OK. SION bit is OK.
IOMUXC_SW_PAD_CTL_PAD_UART2_TX_DATA is OK.

My dts for i2c4

pinctrl_i2c4: i2c4-grp {
fsl,pins = <
MX6UL_PAD_UART2_TX_DATA__I2C4_SCL 0x4001f8b0
MX6UL_PAD_UART2_RX_DATA__I2C4_SDA 0x4001f8b0
>;
};

Everything works fine when I replace the UART2 pins with the LCD pins :
MX6UL_PAD_LCD_DATA02__I2C4_SCL 0x4001f8b0
MX6UL_PAD_LCD_DATA03__I2C4_SDA 0x4001f8b0

How could i use this i2c4 on UART2_TX pin with external pull-up resistors ?

Thks,

Hi @bs.tx !

To use the pins MX6UL_PAD_UART2_TX_DATA and MX6UL_PAD_UART2_RX_DATA, did you disable the &uart2 node?

If you do not disable the &uart2 node, you will have the same pins assigned to different drivers, which shouldn’t happen. If this is the case, your dmesg is most probably warning about it.

References:

Regarding your PAD CTRL configuration (0x4001f8b0), you are using 22kOhm on your internal pull-up for SDA and SCL. For comparison, I2C1 uses 100kOhm (0x4001b8b0). Although we are not sure that using 22kOhm could be an issue, could you please try with 100kOhm as well?

Could you also probe the lines with the problem and show us the waveform?

We just checked the UART2 data lines of Colibri iMX6ULL V1.1 and it goes directly from the SoC to the edge connector of the module, so we have nothing there that could explain the strange behavior you are facing.

Best regards,

Hi Henrique,

Many thanks for your answer.

Before asking your support, I’ve already checked the node status, the 22Kohms and 100KOhms configuration. I recheck this with same result.

As you confirm me that the pins UART2_TX came directly from the SOC, I recheck hardware on my old evaluation board.

The value of the serie resistor on UART2_TX is about 3K9 instead of 22R0…Network is broken…and there’s no problem on i2c configuration or software.

I’m glad to disturb you about this, but I had a doubt on the SOM schematic and the keeper function on the UART2_TX before.

So thanks for your reactivity -:).

Have a great night.

Hi @bs.tx !

You’re welcome. We are happy to help :slight_smile:

From your message I understand that you double-checked everything you needed, but you still have the same issue. Did I understand correctly?

What will be the next step?

Best regards,

Hi Henrique,

Everything works, I had a resistor broken on my evaluation board (3K9 instead 22R0).

That’s why I didn’t see the clock.

Thanks for your support.

Have a great day,

Sylvain,

image002.jpg

image002.jpg

Hi @bs.tx ,

Happy New Year :tada:

Thanks for letting us know.

Best Regards
Kevin