Hello,

I have a  Beaglebone black on which I am running latest  Debian image.

root@beaglebone:~# cat /etc/os-release 
PRETTY_NAME="Debian GNU/Linux 9 (stretch)"
NAME="Debian GNU/Linux"
VERSION_ID="9"
VERSION="9 (stretch)"
ID=debian
HOME_URL="https://www.debian.org/";
SUPPORT_URL="https://www.debian.org/support";
BUG_REPORT_URL="https://bugs.debian.org/";

root@beaglebone:~# uname -a
Linux beaglebone 4.4.91-ti-r133 #1 SMP Tue Oct 10 05:18:08 UTC 2017 armv7l 
GNU/Linux

I got the Linux source from here to modify the device trees.
https://github.com/beagleboard/linux.git

diff --git a/arch/arm/boot/dts/am335x-boneblack-custom.dts 
b/arch/arm/boot/dts/am335x-boneblack-custom.dts
index 0c68a88..a85990d 100644
--- a/arch/arm/boot/dts/am335x-boneblack-custom.dts
+++ b/arch/arm/boot/dts/am335x-boneblack-custom.dts
@@ -10,10 +10,49 @@
 #include "am33xx.dtsi"
 #include "am335x-bone-common-no-capemgr.dtsi"
 #include <dt-bindings/board/am335x-bbw-bbb-base.h>
+#include <dt-bindings/input/input.h>
 
 / {
        model = "TI AM335x BeagleBone Black";
        compatible = "ti,am335x-bone-black", "ti,am335x-bone", "ti,am33xx";
+
+    gpio-keys {
+        compatible = "gpio-keys";
+        pinctrl-names = "default";
+        pinctrl-0 =  <&wakeup_gpio_pins>;
+
+        power1 {
+            label = "CAN1_WakeB";
+            gpios = <&gpio2 2 GPIO_ACTIVE_HIGH>;
+            linux,code = <KEY_WAKEUP>;
+            debounce-interval = <10>;
+            wakeup-source;
+        };
+
+        power2 {
+            label = "CAN1_WakeA";
+            gpios = <&gpio1 13 GPIO_ACTIVE_HIGH>;
+            linux,code = <KEY_WAKEUP>;
+            debounce-interval = <10>;
+            wakeup-source;
+        };
+
+        power3 {
+            label = "CAN0_WakeB";
+            gpios = <&gpio1 15 GPIO_ACTIVE_HIGH>;
+            linux,code = <KEY_WAKEUP>;
+            debounce-interval = <10>;
+            wakeup-source;
+        };
+
+        power4 {
+            label = "CAN0_WakeA";
+            gpios = <&gpio2 22 GPIO_ACTIVE_HIGH>;
+            linux,code = <KEY_WAKEUP>;
+            debounce-interval = <10>;
+            wakeup-source;
+        };
+    };
 };
 
 &ldo3_reg {
@@ -52,6 +91,15 @@
             BONE_P9_17 (SLEWCTRL_SLOW | PIN_INPUT_PULLUP | MUX_MODE3)
         >;
     };
+
+    wakeup_gpio_pins: pinmux_wakeup {
+        pinctrl-single,pins = <
+            BONE_P8_07 (SLEWCTRL_SLOW | PIN_INPUT_PULLUP | MUX_MODE7)
+            BONE_P8_11 (SLEWCTRL_SLOW | PIN_INPUT_PULLUP | MUX_MODE7)
+            BONE_P8_15 (SLEWCTRL_SLOW | PIN_INPUT_PULLUP | MUX_MODE7)
+            BONE_P8_27 (SLEWCTRL_SLOW | PIN_INPUT_PULLUP | MUX_MODE7)
+        >;
+    };
 };

After compiling copied it to /boot/dtbs/4.4.91-ti-r133 and added 
"dtb=am335x-boneblack-custom.dtb". Wake up events seem to be generated 
which I tested with "evtest" but  after  initiating suspend with "echo mem 
> /sys/power/state", wakeup does not happen on any activity on the pin.

root@beaglebone:~# evtest
No device specified, trying to scan all of /dev/input/event*
Available devices:
/dev/input/event0:      tps65217_pwr_but
/dev/input/event1:      gpio-keys
Select the device event number [0-1]: 1
Input driver version is 1.0.1
Input device ID: bus 0x19 vendor 0x1 product 0x1 version 0x100
Input device name: "gpio-keys"
Supported events:
  Event type 0 (EV_SYN)
  Event type 1 (EV_KEY)
    Event code 143 (KEY_WAKEUP)
Properties:
Testing ... (interrupt to exit)
Event: time 1517912798.523455, type 1 (EV_KEY), code 143 (KEY_WAKEUP), 
value 0
Event: time 1517912798.523455, -------------- SYN_REPORT ------------
Event: time 1517912799.801348, type 1 (EV_KEY), code 143 (KEY_WAKEUP), 
value 1
Event: time 1517912799.801348, -------------- SYN_REPORT ------------
Event: time 1517912799.884218, type 1 (EV_KEY), code 143 (KEY_WAKEUP), 
value 0
Event: time 1517912799.884218, -------------- SYN_REPORT ------------

root@beaglebone:~# echo mem > /sys/power/state 
[ 2109.821542] PM: Syncing filesystems ... done.
[ 2114.060031] Freezing user space processes ... (elapsed 0.001 seconds) 
done.
[ 2114.068922] Freezing remaining freezable tasks ... (elapsed 0.001 
seconds) done.
[ 2114.200500] PM: suspend of devices complete after 121.160 msecs
[ 2114.210744] PM: late suspend of devices complete after 4.001 msecs
[ 2114.221114] PM: noirq suspend of devices complete after 3.858 msecs
[ 2114.227715] Disabling non-boot CPUs ...

No wakeup here upon any activity on the wakeup pins.

Does anyone have an idea?

Thanks & Regards,
Sanchayan Maity.

-- 
For more options, visit http://beagleboard.org/discuss
--- 
You received this message because you are subscribed to the Google Groups 
"BeagleBoard" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/beagleboard/2301cd69-f8bf-4ba2-a268-c2990db85f71%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to