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:
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 direct GPIOs
&lsio_gpio5 {
/* Enable wakeup-source from all gpio-keys*/
pad-wakeup-num = <4>; /* Total number of wakeup pads in gpio5 bank */
/*
Each triple means:
gpio-key pin id
trigger type
gpio pin
*/
/* KEY_BACK KEY_DOWN, KEY_HOME, KEY_UP */
pad-wakeup = <IMX8QM_USDHC1_DATA4 SC_PAD_WAKEUP_LOW_LVL 19>, <IMX8QM_USDHC1_STROBE SC_PAD_WAKEUP_LOW_LVL 23>, <IMX8QM_USDHC1_DATA5 SC_PAD_WAKEUP_LOW_LVL 20>, <IMX8QM_USDHC1_DATA6 SC_PAD_WAKEUP_LOW_LVL 21>;
};
wakeup from IOexpander GPIOs
&lsio_gpio1 {
/* Enable wakeup-source from all pca9534 gpio-keys*/
pad-wakeup-num = <1>; /* Total number of wakeup pads in gpio1 bank */
/*
IMX8QM_MIPI_CSI0_MCLK_OUT: PCA9534 IRQ pin id
SC_PAD_WAKEUP_LOW_LVL: trigger type
24: PCA9534 IRQ gpio pin
*/
pad-wakeup = <IMX8QM_MIPI_CSI0_MCLK_OUT SC_PAD_WAKEUP_LOW_LVL 24>;
};
- 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_gpio1 {
/* Enable wakeup-source from Capacitive touch */
pad-wakeup-num = <1>; /* Total number of wakeup pads in gpio1 bank */
/*
IMX8QM_LVDS0_GPIO01: Touch IRQ pin id
SC_PAD_WAKEUP_LOW_LVL: trigger type
5: Touch IRQ gpio pin
*/
pad-wakeup = <IMX8QM_LVDS0_GPIO01 SC_PAD_WAKEUP_LOW_LVL 5>;
};
- Pressing any key on debug console defined as wake-up source before entering suspend (see below):