AnsweredAssumed Answered

MPC107 i2c bus lockup

Question asked by Niyas Mydeen on May 25, 2017



Target Board:

We have a custom MPC107 based board running standard linux kernel-3.10 and RTC ds1370 is connected to the i2c bus.


Test :

We have script running on every linux kernel(3.10)\ boot which checks whether the RTC is deducted or not. If its detected then it just go ahead with the next task. But we found that the RTC is detection is failed randomly at different iterations (sometime after 10th or 20th iterations and so on..).


Root Cause:

Found the slave driving the lines due to the master stopping its operation half-way through. And Master loosing Bus Arbitration.


Further googling, found below useful NXP community posts I2C reset . But those seems to be useful where the pins can be configured as gpio at boot time and drive out 9 clock pulse then reconfigure. In MPC107 is it possible to handle this way. We have been trying to fix this for quite some time (handling the mpc_i2c_fixup() at the failure time) in i2c-mpc.c but we could not. In fact was expected like the fix available for iMX in 4.4 but could not see any such.


Could someone shed some light to fix this issue.