I have loaded EZSDK 8.00.00.00 on BeagleBone Black for testing. With EZSDK 6.00.00.00, we are able to wake from standby using GPIO1 pins by enabling the proper mode in standby_gpio_pad_conf.
In EZSDK, I've added a gpio-keys instance with a key bound to the desired gpio pad in the device tree. However, the pin does not wake the system. If I use a GPIO0 pad, the system will wake.
Has waking from GPIO1 been disabled somehow in the 3.14 kernel? Can it be re-enabled? Does it have to be placed in a pinctrl-1 (I noticed many other devices use this for "sleep" mode configurations)? I don't see any place to specify the falling/rising edges needed to IRQ detection.
Anyway, my dts entry for gpio-keys looks like this:
gpio_buttons: gpio_buttons@0 {
compatible = "gpio-keys";
pinctrl-names = "default";
pinctrl-0 = <&gpio_wake_pins>;
#address-cells = <1>;
#size-cells = <0>;
switch@1 {
label = "wake";
linux,code = <105>;
gpios = <&gpio1 28 0>;
gpio-key,wakeup;
};
};
Also, is there a way to enable waking on GPIOs in device tree without binding them to a driver like gpio-keys or gpio-wake? If it's bound, I can't export the gpio to sysfs, so it's more difficult to read the IO state from user space.