Other Parts Discussed in Thread: SYSCONFIG
I have been struggling for a while now trying to solve a problem with wakeup for the OMAP35x during idle mode. I see that an IRQ is generated from GPIO_4 during normal operation. However, when in idle mode GPIO_4 will not generate a wake event.
To try and debug the issue, directly before the call to idel, I placed some debug to ensure my wakeup/IRQ settings are what I think they should be:
ICL_MIR 1:0 : FFFFFF9D:DDFFE7FF (this shows that gpio banks 1 and 5 (irq 29 and 33), are unmasked in the INTC controller)
GPIO1_SYSCONFIG
: 0x00000015 (showing ENAWAKEUP is enabled for this gpio bank)
GPIO1_IRQEN : 0x00000010 (confirming GPIO_4 is set up for irq)
GPIO1_WAKEUPEN : 0x00000010 (confirming GPIO_4
is set up for wakeupen)
I also print the same for my touchscreen pen_irq (GPIO_153) - which does wake up the cpu from idle:
GPIO5_SYSCONFIG : 0x00000015
GPIO5_IRQEN : 0x02000000
GPIO5_WAKEUPEN : 0x02000000
---
So far I think this validates everything that is
required from the GPIO module. My thought is that since the GPIO
bank 1 is via the WKUP interconnect, and GPIO bank 2-6 is via the
PER, there is a PRCM dependency on why GPIO banks 2-6 can wake me
up from idle, but none of my GPIO bank 1 irqs are waking us up.
For reference I have also dumped the PRCM CM/PRM registers for the WKUP domain:
CM_FCLKEN_WKUP : 0x000002c9
CM_ICLKEN_WKUP :
0x0000021f
CM_IDLEST_WKUP : 0x00000020
CM_AUTOIDLE_WKUP : 0x0000003f
CM_CLKSEL_WKUP
: 0x00000015
PM_WKEN_WKUP : 0x0000030b (GPIObank1 wake event enabled)
PM_MPUGRPSEL_WKUP : 0x000003cb
PM_IVA2GRPSEL_WKUP : 0x00000000
PM_WKST_WKUP :
0x00000000
I don't know what else to look into. Any ideas or help would be greatly appreciated!
thanks,
Curt