MX8 suspend: Difference between revisions

From Variscite Wiki
No edit summary
Line 18: Line 18:
{{#varexists:PAD_WAKEUP_SUPPORT|
{{#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.:
* 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.:
    {{#ifeq: {{#var:HARDWARE_NAME}}|VAR-SOM-MX8|
     wakeup from direct GPIOs
     wakeup from direct GPIOs
     &lsio_gpio5 {
     &lsio_gpio5 {
Line 43: Line 44:
         '''pad-wakeup = <IMX8QM_MIPI_CSI0_MCLK_OUT SC_PAD_WAKEUP_LOW_LVL 24>;'''
         '''pad-wakeup = <IMX8QM_MIPI_CSI0_MCLK_OUT SC_PAD_WAKEUP_LOW_LVL 24>;'''
     };
     };
 
    |
    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.:
* 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.:
    {{#ifeq: {{#var:HARDWARE_NAME}}|VAR-SOM-MX8|
     &lsio_gpio1 {
     &lsio_gpio1 {
         /* Enable wakeup-source from Capacitive touch */
         /* Enable wakeup-source from Capacitive touch */
Line 55: Line 69:
         '''pad-wakeup = <IMX8QM_LVDS0_GPIO01 SC_PAD_WAKEUP_LOW_LVL 5>;'''
         '''pad-wakeup = <IMX8QM_LVDS0_GPIO01 SC_PAD_WAKEUP_LOW_LVL 5>;'''
     };
     };
    |
    &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>;'''
    };
    }}
|
|
* 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.:

Revision as of 00:11, 12 December 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;
               };
	};
  • Touching the capacitive touchscreen 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