We use i.MX 7Dual with dumb PMIC to control the PMIC. We use the SNVS_PMIC_ON_REQ signal to turn off the PMIC. This works fine until we use one of the wakeable GPIOs with a falling edge interrupt configured: The falling edge seems to cause a interrupt immediately, and waking up the PMIC again (SNVS_PMIC_ON_REQ goes high). This can be reproduced on Sabre:
- Enable interrupt on GPIO1_IO09
mw.l 0x30200014 0x00000200
- Falling edge...
mw.l 0x3020000c 0x000C0000
- Use Dumb PMIC mode to power off the SoC
mw.l 0x30370038 0x60
At this point I would expect the SoC to stay off, but it immediately turns on again. The reason for that is that the SNVS_PMIC_ON_REQ signals goes back on again (see GPIO9_IRQ_falling_edge.png, that is the measurement on our platform, but it behaves the same on Sabre). We populated a external Pull-Up, but this seems not to alleviate the problem (see GPIO9_IRQ_falling_edge_external_pullup.png).
Is this a known problem?
A work around would be to disable all the interrupt... However, the Linux GPIO driver currently does not support such a work-around.