I am working on iMx7DSABRESD board. I am configuring I2C4 device exposed as J20 connector (also named MFI). The pad settings that I have done are:
#define I2C4_CLK_ROOT 0x3038AF00
#define I2C4_CLK_ROOT_VALUE 0x11000001
#define IOMUXC_SW_MUX_CTL_PAD_SAI1_RX_SYNC 0x30330210
#define IOMUXC_SW_MUX_CTL_PAD_SAI1_RX_BCLK 0x30330214
#define IOMUXC_SW_PAD_CTL_PAD_SAI1_RX_SYNC 0x30330480
#define IOMUXC_SW_PAD_CTL_PAD_SAI1_RX_BCLK 0x30330484
#define IOMUXC_I2C4_SCL_SELECT_INPUT 0x303305EC
#define IOMUXC_I2C4_SDA_SELECT_INPUT 0x303305F0
/* Steps for the configuration
1. Write I2C4_CLK_ROOT_VALUE in I2C4_CLK_ROOT to enable the clock.
2. Select daisy chain values from the IOMUXC_I2C4_SCL_SELECT_INPUT and IOMUXC_I2C4_SDA_SELECT_INPUT registers by writing 0x03 to both.
3. Write 0x03 to both IOMUXC_SW_MUX_CTL_PAD_SAI1_RX_SYNC and IOMUXC_SW_MUX_CTL_PAD_SAI1_RX_BCLK to ensure that I2C4 is selected.
4. Write 0x7F to both IOMUXC_SW_PAD_CTL_PAD_SAI1_RX_SYNC and IOMUXC_SW_PAD_CTL_PAD_SAI1_RX_BCLK to ensure the pad settings.
The problem is I get nothing except start and stop signals on the SCL and SDA lines. I don't get even these start and stop signals when I use any other pad except SAI1 registers.
I've also configured SAI1_RX_SYNC and SAI1_RX_BCLK as GPIO and toggled them and they are working perfectly.
The driver I am using for this device is working perfectly fine when I enable the I2C device of I2C3 module (exposed as J33 connector).