This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

OMAPL138 Deepsleep/WFI external wakeup

Other Parts Discussed in Thread: OMAP-L138, DM3730

On our design we have interrupts which we intend to use as wakeup interrupts. Let’s call them WKI-1, WKI-2 .... WKI-X etc...

These WKI-X interrupts are routed to GPIO bank 5 of the OMAP-L138. The idea is to keep the GPIO bank 5 alive when we go to sleep (by not gating the clock). 

However, the OMAP-L138  TRM says (in a note in section 10.10 of TRM) that the processor can wakeup from deep sleep only using the DEEPSLEEP/RTC_ALARM pin, which is muxed between those functions. The sections which describe the process of going to deep sleep and coming out (TRM Section: 10.10.1) do not talk about the possibility of NOT gating a particular module (like GPIO banks). The neither say it’s possible, nor that it’s not.

My questions are;

  1. Is it possible to NOT gate a particular module's clock (to be specific, GPIO 5), when the OMAP is put to deep sleep? Looks like it’s completely hardware controlled and not software controllable. REMEMBER that I am looking for deep sleep. What I am asking might be possible when ARM is in WFI (wait for interrupt) mode (TRM Section: section 10.6).
  2. Let’s say I can keep GPIO 5's clock un-gated during deep sleep. Will it be possible to wakeup OMAP with one of the interrupts (which functions as regular interrupt when OMAP is awake) on GPIO5? I ask this question, because on our design there is nothing connected externally to DEEPSLEEP pin (As mentioned earlier, all the wakeup capable interrupts come on GPIO-5) and the deep sleep section says that the only way to wake up processor from deep sleep is to make the DEEP SLEEP pin high or by RTC_ALARM (not with both at the same time as its muxed). We will keep this pin configured as RTC_ALARM.
  3. Does WFI (all modules clocks gated) give the same power saving as DEEP SLEEP? 
Thanks,
Suresh

  • Hi Suresh,

    The only way to wake the device from DEEPSLEEP is to use the DEEPSLEEP/RTC_ALARM pin as you indicated. Because CLKIN is cut off in this mode, there isn't a way to enable GPIO5 while in DEEPSLEEP mode. That being said, the next power mode up is Standby - in this power mode the ARM is in WFI. You can gate/enable specific modules (i.e. GPIO5) to ensure you can receive these interrupts. 

    Direct to your questions:

    1. No - we can not enable GPIO5 in DeepSleep but can in WFI mode as you mentioned. 
    2. This is possible in Standby/WFI mode (In Linux this would be state0 cpuide - http://processors.wiki.ti.com/index.php/OMAP-L1_Linux_Drivers_Usage#Power_Management).
    3. The power estimation summary and spreadsheet can help you see the power difference between DeepSleep and Standby (http://processors.wiki.ti.com/index.php/OMAP-L138_Power_Consumption_Summary). This actual use-case can be customized in the spreadsheet by selecting standby and then adding GPIO5. Standby itself is 36 mW instead of 11 mW for DeepSleep per the wiki.
    Thanks,
    Michael
  • Hi Michael,

                      Even I want to do something same, keep GPIO5 bank on when the OMAP is idle. I am using DM3730

    and running Android gingerbread and kernel version is 2.6.36. Now is there any note on what all we have to change

    to keep the GPIO5 bank on, on DM3730.

    Thanks and regards,

    Satish