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.
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 ?
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.
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.