Hi,
We have developed a custom board with i.MX6DL and MMPF0100 PMIC running android 4.2. We have problems powering off the board from SW.
We have followed the instructions in:
* https://community.freescale.com/message/369704#369704
* https://community.freescale.com/docs/DOC-97660
Result:
- The function pm_power_off is assigned in board file (pm_power_off = mx6_snvs_poweroff;)
- The function mx6_snvs_poweroff writes bits TOP & DP_EN to register SNVS_LPCR.
- We have verified that mx6_snvs_poweroff is called when powering off from android GUI (long press power button and accept the popup box).
- The systems hangs when writing bits TOP & DP_EN to register SNVS_LPCR.
The following have also been tried:
* Calling linux command 'reboot' from adb shell with various flags including -p.
Result: Hangs the system (seems to call pm_power_off)
* Calling busybox poweroff.
Result: Nothing happens
* Power off by calling the 'reboot' system call from a c program (http://man7.org/linux/man-pages/man2/reboot.2.html).
Result: Hangs the system
* Enter PMIC 'OFF' state by setting:
- All SWxOMODE bits=0
- PWRON_CFG = 0
- PWRONRSTEN = 1
- Finally trigger PWRON by setting various bit combinations in WDOGx_WCR.
Result: Hangs the system (or in some cases => reboots the system).
Any input is appreciated!
"The system hangs when writing bits" usually means "Clock to domain *FOO* aren't enabled" . Try checking the clock please.
Hi,
We have done some further investigations and it looks like it was a HW problem, but thanks for your input.