I’m trying to test the suspend/resume on my Apalis I.MX8QuadMax. The suspend appears to work, but I can’t get it to resume. I tried both of these methods:
Try to wake up using debug UART (which is DMA_LPUART1):
echo enabled > /sys/class/tty/ttyLP1/power/wakeup; (I confirmed this is DMA_LPUART1)
echo mem > /sys/power/state
Try to wake up with the RTC:
echo +5 > /sys/class/rtc/rtc0/wakealarm;
echo mem > /sys/power/state
The SOM is an Apalis IiMX8 with NXP i.MX8QuadMax (MIMX8QM6AVUFFAB). I have a custom carrier board that is modeled off of the Apalis Evaluation board. My software is the yocto linux BSP.
My problem seems related to my current setup (custom board or software). I went back to a toradex evaluation board setup I had with an old version of my software, and both the console wakeup as well as the RTC wakeup work.
It looks like a device tree change was the cause of my problem. I had removed this clock “pcie_sata_refclk_gate” from the pciea instance below, and for some reason that breaks the resume feature. Maybe that clock is required in suspend mode.