MX8 suspend: Difference between revisions

From Variscite Wiki
(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|
<pre>
echo enabled > {{#var:UART_CONSOLE_PATH}}
  echo enabled > /sys/devices/platform/5a090000.serial/tty/ttyLP3/power/wakeup
|
</pre>
{{#ifeq: {{#var:HARDWARE_NAME}}|VAR-SOM-MX8X|
|
echo enabled > /sys/devices/platform/5a090000.serial/tty/ttyLP3/power/wakeup
<pre>
|
  echo enabled > /sys/devices/platform/5a060000.serial/tty/ttyLP0/power/wakeup
echo enabled > /sys/devices/platform/5a060000.serial/tty/ttyLP0/power/wakeup
</pre>
}}
}}
}}

Revision as of 08:58, 6 January 2021

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 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