MX8 suspend

From Variscite Wiki
VAR-SOM-MX8X Suspend to RAM

Suspend to RAM

This state offers significant power savings as everything in the system is put into a low-power state, except for memory, which is placed into the self-refresh mode to retain its contents.

To suspend to RAM execute the following command:

# pm-suspend

Wake up

There are many possible ways to wake up from suspend.
A few examples:

  • Pushing the ON/OFF button (when present on the board)
  • Pushing a button on the board which has the properties "pad-wakeup-num" and "pad-wakeup" set in its device tree node (under gpio related node), e.g.:
   wakeup from IOexpander GPIOs
   &lsio_gpio3 {
       /* Enable wakeup-source from all pca9534 gpio-keys*/
       pad-wakeup-num = <1>;	/* Total number of wakeup pads in gpio3 bank */
       /*
        IMX8QXP_MIPI_CSI0_MCLK_OUT: PCA9534 IRQ pin id
        SC_PAD_WAKEUP_LOW_LVL:      trigger type
        4:                          PCA9534 IRQ gpio pin
       */
       pad-wakeup = <IMX8QXP_MIPI_CSI0_MCLK_OUT SC_PAD_WAKEUP_LOW_LVL 4>;
   };
  • Pressing the capacitive touch which has the properties "pad-wakeup-num" and "pad-wakeup" set in its device tree node (under touch IRQ gpio related node), e.g.:
   &lsio_gpio0 {
       /* Enable wakeup-source from Capacitive touch */
       pad-wakeup-num = <1>; /* Total number of wakeup pads in gpio0 bank */
       /*
        IMX8QXP_UART1_CTS_B:   Touch IRQ pin id
        SC_PAD_WAKEUP_LOW_LVL: trigger type
        24:                    Touch IRQ gpio pin
       */
       pad-wakeup = <IMX8QXP_UART1_CTS_B SC_PAD_WAKEUP_LOW_LVL 24>;
   };
  • Pressing any key on debug console defined as wake-up source before entering suspend (see below):
$ echo enabled > /sys/devices/platform/5a090000.serial/tty/ttyLP3/power/wakeup