Hi, Sanchayan What HW version of bbb are you using to verify deep sleep?
Can you post the link? Since we are testing it also and from TR I saw that power management chip is needed to realize deep sleep, I guess the hw version of bbb matters. Thanks in advance! Regards Tibalt 在 2018年2月10日星期六 UTC+8上午12:59:17,Sanchayan Maity写道: > > Stupid me for not consulting the TRM and thinking the hardware engineer > did his job. Only GPIO bank 0 allows wakeup and I only have pins from GPIO > banks 1 and 2 connected for wakeup. > > http://www.ti.com/lit/an/sprac74a/sprac74a.pdf > Section 3.2.3 clarifies it. > > - Sanchayan. > > On Thursday, February 8, 2018 at 11:11:32 AM UTC+5:30, Sanchayan Maity > wrote: >> >> Hi Lloyd, >> >> The RTC wakeup is only useful for me from the point of view testing. For >> my project, I need wake up on GPIO state change and CAN. >> >> From your tests, it would seem "mem" suspend which is suspend to memory >> and the actual deep sleep mode, does not work on 4.9 kernel. "standby" mode >> is not that useful for me, since I want the deepest sleep mode possible. >> >> Thanks & Regards, >> Sanchayan. >> >> On Wednesday, February 7, 2018 at 8:49:00 PM UTC+5:30, Lloyd Bailey wrote: >>> >>> Hi Sanchayan, >>> >>> >>> Have you tried:- >>> rtcwake -m standby -s 30 (the debian version I am using do not wake from >>> mem). >>> >>> This command never wakes up >>> rtcwake -m mem -s 30 >>> >>> This wakes up after 30 seconds or if I insert or remove the USB to >>> serial TTL cable >>> rtcwake -m standby -s 30 >>> >>> Linux arm 4.9.67-ti-r82 #1 SMP PREEMPT Fri Dec 8 02:39:42 UTC 2017 >>> armv7l GNU/Linux >>> >>> >>> Hope this helps, >>> >>> Lloyd. >>> >>> >>> On Wednesday, 7 February 2018 02:35:38 UTC, Sanchayan Maity wrote: >>>> >>>> Hello, >>>> >>>> I am using a Beaglebone Black running the latest Debian Stretch on it. >>>> >>>> debian@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/" >>>> >>>> debian@beaglebone:~$ uname -a >>>> Linux beaglebone 4.4.91-ti-r133 #1 SMP Tue Oct 10 05:18:08 UTC 2017 >>>> armv7l GNU/Linux >>>> >>>> I have downloaded the Linux kernel source from below to compile and use >>>> custom 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) >>>> + >; >>>> + }; >>>> }; >>>> >>>> I can see that the events are generated using "evtest". >>>> >>>> root@beaglebone:/home/debian# 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 1517970542.951410, type 1 (EV_KEY), code 143 (KEY_WAKEUP), >>>> value 0 >>>> Event: time 1517970542.951410, -------------- SYN_REPORT ------------ >>>> Event: time 1517970544.088480, type 1 (EV_KEY), code 143 (KEY_WAKEUP), >>>> value 1 >>>> Event: time 1517970544.088480, -------------- SYN_REPORT ------------ >>>> Event: time 1517970544.163876, type 1 (EV_KEY), code 143 (KEY_WAKEUP), >>>> value 0 >>>> Event: time 1517970544.163876, -------------- SYN_REPORT ------------ >>>> Event: time 1517970546.154112, type 1 (EV_KEY), code 143 (KEY_WAKEUP), >>>> value 1 >>>> Event: time 1517970546.154112, -------------- SYN_REPORT ------------ >>>> Event: time 1517970546.217212, type 1 (EV_KEY), code 143 (KEY_WAKEUP), >>>> value 0 >>>> Event: time 1517970546.217212, -------------- SYN_REPORT ------------ >>>> >>>> However on going into memory suspend, by doing "echo mem > >>>> /sys/power/state", wake up does not occur upon any activity on the pins. >>>> >>>> root@beaglebone:/home/debian# echo mem > /sys/power/state >>>> [ 377.767576] PM: Syncing filesystems ... done. >>>> [ 379.788251] Freezing user space processes ... (elapsed 0.001 >>>> seconds) done. >>>> [ 379.797231] Freezing remaining freezable tasks ... (elapsed 0.001 >>>> seconds) done. >>>> [ 379.929843] PM: suspend of devices complete after 122.411 msecs >>>> [ 379.940029] PM: late suspend of devices complete after 3.962 msecs >>>> [ 379.950444] PM: noirq suspend of devices complete after 3.970 msecs >>>> [ 379.957124] Disabling non-boot CPUs ... >>>> >>>> Wake up from RTC works however >>>> >>>> root@beaglebone:/home/debian# echo +15 > /sys/class/rtc/rtc0/wakealarm; >>>> echo mem > /sys/power/state >>>> [ 75.428962] PM: Syncing filesystems ... done. >>>> [ 86.901348] Freezing user space processes ... (elapsed 0.001 >>>> seconds) done. >>>> [ 86.910330] Freezing remaining freezable tasks ... (elapsed 0.001 >>>> seconds) done. >>>> [ 87.042805] PM: suspend of devices complete after 122.277 msecs >>>> [ 87.053071] PM: late suspend of devices complete after 4.023 msecs >>>> [ 87.063483] PM: noirq suspend of devices complete after 3.947 msecs >>>> [ 87.070025] Disabling non-boot CPUs ... >>>> [ 87.073988] PM: Successfully put all powerdomains to target state >>>> [ 87.093775] PM: noirq resume of devices complete after 19.523 msecs >>>> [ 87.103980] PM: early resume of devices complete after 2.689 msecs >>>> [ 87.280782] net eth0: initializing cpsw version 1.12 (0) >>>> [ 87.286247] net eth0: initialized cpsw ale version 1.4 >>>> [ 87.291537] net eth0: ALE Table size 1024 >>>> [ 87.298751] net eth0: phy found : id is : 0x7c0f1 >>>> [ 87.424691] PM: resume of devices complete after 314.316 msecs >>>> [ 87.435170] Restarting tasks ... done. >>>> >>>> >>>> Is this a known issue? Has anybody tried this? Do I need to try with a >>>> mainline kernel or a kernel for TI's gitorious? Also does any one know if >>>> wake up on CAN works? >>>> >>>> >>>> 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/00b3f361-2f81-4ce2-bd47-5b17d46fcbda%40googlegroups.com.
