AnsweredAssumed Answered

imx-keypad wakeup registering on 6sl using linux 3.0.35

Question asked by jayakumar2 on Jul 12, 2016
Latest reply on Jul 22, 2016 by jayakumar2


I'm still a bit stuck with trying to get button based resume to work on 6sl with 3.0.35. I had previously asked a related question here: imx-keypad wakeup from suspend on 6sl using linux 3.0.35


I have implemented the changes to make sure the imx-keypad row/col pins are kept as non-gpio pins when entering suspend. I can also see that after waking up from suspend, an interrupt was indeed generated and processed from the keypad pins. But it did not cause wakeup. I see during resume (using uart):

wl1271: down

udc suspend begins

USB Gadget suspend ends

add wake up source irq 58

add wake up source irq 51

PM: suspend of devices complete after 9.865 msecs

PM: late suspend of devices complete after 0.500 msecs

PM: early resume of devices complete after 0.343 msecs

remove wake up source irq 51

remove wake up source irq 58


From /proc/interrupts after resume:

114:          2       GIC  imx-keypad


I believe the root cause for the problem is the wake up source irq 114 (for keypad) was not added during the suspend so even though the interrupt was generated, it was ignored.


I can see that mx6_gic_irq_set_wake is what generates that message about "add wake up source". But I haven't figured out what registers that irq and why that's missing for imx-keypad. imx-keypad.c calls device_init_wakeup so it seems like registration should work.


I would appreciate any suggestions/ideas.