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;
- 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).
- 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.
- Does WFI (all modules clocks gated) give the same power saving as DEEP SLEEP?