We are developing a custom board based on iMX8MMDL.
The PMIC for the SoC is connected to I2C4.
We need to access the PMIC early while running the SPL to tune voltages.
Unfortunately we fail to do so, the probing of the PMIC does not work, giving this error message (repeatedly because of retries):
wait_for_sr_state: failed sr=81 cr=a0 state=2020
According to the sources the message should originate from mxc_i2c.c , i2c_init_transfer:
wait_for_sr_state(i2c_bus, ST_BUS_BUSY)
What we have been checking so far:
(1st)
To check if clocks are alright we read CCM Clock Gating Registers for I2C4 which all show a value of 0x3 which should be okay.
(2nd)
To check if there are any shortings, we did run probing on all 4 I2C buses while running linux.
The probing works with no errors for all 4 buses and the addresses of the connected peripherals will be detected.
(3rd)
We changed SPL to check which of the I2C buses seem to be accessable in general at this early stage.
We experience that only I2C1 does not throw errors on init.
(4th)
We temporary changed the connection of our PMIC to be connected to I2C1 instead of I2C4.
As expected, based on the results of (3rd), we have been able to successfully probe for the PMIC and tune voltages.
From our findings we assume there is something left to be done to enable other I2C busses than only the very first one while running in the SPL.
Does anybody have a hint what we may have missed so far ?
Thanks in advance.