Other Parts Discussed in Thread: TPS65910, AM3359, TPS65218
I am seeing some weird boot up problems as well as some late shutdown problems. The system is an Android system based off the AM335x starter kit design. It has an AM3359 processor and a TPS65910 PMIC.
Issues:
1. Intermittently, on late shutdown just around the time pm_power_off() is called the device will lock up and not shutdown. pm_power_off is setup write DEV_OFF to the PMIC. I have tried debugging this it seems that the I2C bus is not locked up nor is the system completely frozen. Some parts of the system still function, but the I2C bus is not accessible for some reason.
Once it is in this frozen state you can do a PWRON long press which will force a reboot and it recovers.
2. On rare occasions, the device cannot boot at all. It cannot get to u-boot or even u-boot SPL. The PMIC appears to be outputting MPU and Core voltage, but the processor does not seem to start.
Once it is in this state it will never boot up without disconnecting the battery.
- PWRON long press to the PMIC does not resolve the issue. The device will shutdown after holding for 15 seconds, but the next boot is still bad.
- Warm reset to the CPU also has no effect.
It seems to point to the PMIC. The PMIC seems to be in an invalid unrecoverable state. I was thinking at first hat maybe some registers in the PMIC were mis-programmed, and it would not boot after this. I verified on a working device the PMIC registers are not reset until battery power is removed. To figure this out we tried to access the I2C bus from another master while the device was in a bad state. It seems that when in these bad states the PMIC is not accessible from I2C, so it seems to be much worse than register mis-programming.
I assume there is a hardware problem. But not sure what to look for. Maybe there is a hardware problem with the PMIC? I check the errata and implemented the "DCDC o/p voltage" errata. This did not help.
Thanks for any help.
Addiitonal info:
Kernel 3.2.0
Android 4.2