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.

Reply via email to