In the MMPF0200 datasheet section 188.8.131.52 Turn Off Events item 2 it says:
2. PWRON_CFG bit =1, SWxOMODE bit = 0, PWRONRSTEN = 1 and PWRON is held low for longer than 4.0 seconds.
Alternatively, the system can be configured to restart automatically by setting the RESTARTEN bit.
If possible I'd like to test this using the SABRE Board with the i.MX6 SoloX (which I have). That is I'd like to reconfigure the PF0200 registers so that when the reset button is held down for longer than 4 seconds it powers off and then automatically restarts. I'm pretty sure I can modify the pfuze100 regulator driver to reconfigure the PWRCTL register to set PWRONBDBNC, PWRONRSTEN, and RESTARTEN appropriately, but I'm not sure about PWRON_CFG and SWxOMODE. Since SWxOMODE defaults to 0, I think these do not need to be set. So that leaves PWRON_CFG which I believe is defaulted to 0 and I want it to be 1.
First off I am not sure if this can be done since these registers are in the OTP section (0xE0, 0xE1, and 0xE2). Although it mentions these are OTP redundant bits which can be XOR'ed to allow the function to be changed multiple times. I also do not understand from reading the documentation how that is done. There is PWRON_CFG1,2, and 3 as well as PWRON_CFG_XOR (0xE3), but using this how do you select which configuration is used? What PWRON_CFG bit do I need to set to 1?
Any help understanding if this even possible on the SABRE board and more details on how to do it would be appreciated. Even if it cannot be done on the SABRE board, I'd like to understand this because we are building a custom board based on the SABRE board design (can set the fuses in the PMIC before populating it on the board). Thanks!!!