We're working on a custom board based on the i.MX7D and have LPSR mode working mostly, but we have not been able to resume from GPIO. Currently from LPSR, we can resume from RTC and ONOFF button only. In suspend-to-memory, we are able to resume from RTC, ONOFF, as well as GPIOs without any issue.
For reference, NVCC_GPIO1/2 are valid during LPSR, VDD_LPSR and VDD_SNVS are also valid as well as the memory rails needed for self refresh. We do observe the GPIO toggling when probing it externally so it seems to be a configuration issue.
In STM, we can wake from gpio using all the regular methods including: using device tree with gpio-keys using the wakeup flag, from system using /sys/class/gpio, as well as by requesting gpio/irq from another driver. However, none of these methods allow for LPSR based wakeup.
Since in LPSR mode the A7s are in an ALL_OFF state, I'm thinking it may be an issue with the GPCv2 configuration masking the GPIO wakeups.
I'm curious if someone could shed some light on this or could refer to an example code base where LPSR GPIO resume is functioning (such as on the arm2 board).