AnsweredAssumed Answered

Cannot wake up from freeze with GPIO

Question asked by Gerald Heinig on Sep 21, 2017
Latest reply on Sep 21, 2017 by Carlos_Musich


I have an i.MX6 custom board that is very similar to the Sabre SD running Yocto Linux 4.1.15.

Determining the available power settings for my board gives the following:

# cat /sys/power/state

freeze standby mem



I have created a device tree entry for the gpio-keys driver to wake my board up from a GPIO pin:

Pinctrl entry:


pinctrl_gpio_keys: gpio_keysgrp {

                fsl,pins = <

                                MX6QDL_PAD_GPIO_2__GPIO1_IO02                  0x1b0b0 // Alert Button




// Enable wakeup from sleep via emergency button

gpio-keys {

                compatible = "gpio-keys";

                pinctrl-names = "default";

                pinctrl-0 = <&pinctrl_gpio_keys>;


                power {

                                label = "Alert-Button";

                                gpios = <&gpio1 2 IRQ_TYPE_EDGE_RISING>;

                                interrupts = <66 IRQ_TYPE_LEVEL_HIGH 7>;

                                linux,code = <118>; /* KEY_CTRL_LEFT */





This works fine for the sleep modes entered using 'mem' and 'standby', ie.

# echo mem > /sys/power/state


# echo standby > /sys/power/state


I can wake the system up successfully with my GPIO button from these 2 states.


However, this does not work with the 'freeze' mode:

# echo freeze > /sys/power/state

// cannot wake up, need to reset board


Can anyone explain why the freeze mode doesn't work, but the others do?