MX8 suspend: Difference between revisions
(Created page with "<!-- Set release according to "release" parameter in URL and use RELEASE_SUMO_V1.0_VAR-SOM-MX8X as default --> {{#vardefine:RELEASE_PARAM|{{#urlget:release}}}} <!-- --> {{#lst...") |
No edit summary |
||
Line 16: | Line 16: | ||
A few examples:<br> | A few examples:<br> | ||
- Pushing the ON/OFF button (when present on the board)<br> | - Pushing the ON/OFF button (when present on the board)<br> | ||
{{#varexists:PAD_WAKEUP_SUPPORT| | |||
- 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>;''' | |||
}; | |||
| | |||
- Pushing a button on the board which has the boolean property "wakeup-source" set in its device tree node (under gpio_keys), e.g.: | - Pushing a button on the board which has the boolean property "wakeup-source" set in its device tree node (under gpio_keys), e.g.: | ||
Line 48: | Line 88: | ||
'''wakeup-source'''; | '''wakeup-source'''; | ||
}; | }; | ||
}} | |||
- Pressing any key on debug console defined as wake-up source before entering suspend (see below): | - Pressing any key on debug console defined as wake-up source before entering suspend (see below):<br> | ||
{{#ifeq: {{#var:HARDWARE_NAME}}|VAR-SOM-MX8X| | {{#varexists:UART_CONSOLE_PATH| | ||
echo enabled > {{#var:UART_CONSOLE_PATH}} | |||
| | |||
{{#ifeq: {{#var:HARDWARE_NAME}}|VAR-SOM-MX8X| | |||
| | echo enabled > /sys/devices/platform/5a090000.serial/tty/ttyLP3/power/wakeup | ||
| | |||
echo enabled > /sys/devices/platform/5a060000.serial/tty/ttyLP0/power/wakeup | |||
}} | |||
}} | }} |
Revision as of 08:58, 6 January 2021
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 boolean property "wakeup-source" set in its device tree node (under gpio_keys), e.g.:
gpio-keys { compatible = "gpio-keys"; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_gpio_keys>; ... back { label = "Back"; gpios = <&gpio4 6 GPIO_ACTIVE_LOW>; linux,code = <KEY_BACK>; wakeup-source; }; };
- Pressing the capacitive touch which has the "wakeup-source" property set in its device tree node, e.g.:
ft5x06_ts: ft5x06_ts@38 { status = "disabled"; compatible = "edt,edt-ft5x06"; reg = <0x38>; reset-gpios = <&gpio4 5 GPIO_ACTIVE_LOW>; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_touch>; interrupt-parent = <&gpio1>; interrupts = <14 0>; touchscreen-size-x = <800>; touchscreen-size-y = <480>; touchscreen-inverted-x; touchscreen-inverted-y; wakeup-source; };
- 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