AnsweredAssumed Answered

USB as Wake Source

Question asked by sharmila d on Nov 11, 2019
Latest reply on Nov 13, 2019 by sharmila d

In our custom board, we have one USB port (usbotg3 in dts)  which is Directly connected to LTE module. CDNS host controller used.


Below are the test scenario followed for system wakeup using USB test

1.Make USB (Directly connected to LTE module.CDNS host controller used) as Wake source.
2.Suspend the device using mem command
3.Send SMS to the SIM mounted on LTE module.
4.System is not waking up.
5.Wakeup the system using serial
6.Suspend the device using mem command (without rebooting the board)
7.Send SMS to the SIM mounted on LTE module.
8.System is waking up


From above test scenario we are able to conclude that system wakeup is happening using USB as wakeup source only in the second suspend - resume attempt.


After digging into the cdns driver code, I got hint that when I am giving first time suspend, cdns3_irq function is getting called and it is executing the code which is  inside the cdns->in_lpm check. For second suspend (without rebooting the board) it is not going inside the cdns3_irq function when i give suspend command and when SMS comes system is able to wake up and I am able to see the cdns3_irq function getting called in resume time.

Please provide some input