linux/drivers/usb/cdns3
Peter Chen b1234e3b3b usb: cdns3: add runtime PM support
Introduce runtime PM and wakeup interrupt handler for cdns3,
the runtime PM is default off since other cdns3 may not
implement glue layer support for runtime PM.

One typical wakeup event use case is xHCI runtime suspend will clear
USBCMD.RS bit, after that the xHCI will not trigger any interrupts,
so its parent (cdns core device) needs to resume xHCI device when
any (wakeup) events occurs at host port.

When the controller is in low power mode, the lpm flag will be set.
The interrupt triggered later than lpm flag is set considers as
wakeup interrupt and handled at cdns_wakeup_irq. Once the wakeup
occurs, it first disables interrupt to avoid later interrupt
occurrence since the controller is in low power mode at that
time, and access registers may be invalid at that time. At wakeup
handler, it will call pm_request_resume to wakeup xHCI device, and
at runtime resume handler, it will enable interrupt again.

The API platform_suspend is introduced for glue layer to implement
platform specific PM sequence.

Reviewed-by: Pawel Laszczak <pawell@cadence.com>
Signed-off-by: Peter Chen <peter.chen@nxp.com>
Signed-off-by: Felipe Balbi <balbi@kernel.org>
2020-10-02 09:57:38 +03:00
..
cdns3-imx.c usb: cdns3: add NXP imx8qm glue layer 2020-01-15 10:39:22 +01:00
cdns3-pci-wrap.c usb: cdns3: fix spelling mistake "wrapperr" -> "wrapper" 2020-03-19 15:14:48 +01:00
cdns3-ti.c USB: Replace HTTP links with HTTPS ones 2020-07-21 13:41:57 +02:00
core.c usb: cdns3: add runtime PM support 2020-10-02 09:57:38 +03:00
core.h usb: cdns3: add runtime PM support 2020-10-02 09:57:38 +03:00
debug.h usb: cdns3: fix spelling mistake and rework grammar in text 2020-01-24 09:41:27 +01:00
drd.c usb: cdns3: add runtime PM support 2020-10-02 09:57:38 +03:00
drd.h usb: cdns3: drd: simplify *switch_gadet and *switch_host 2020-07-24 16:45:13 +03:00
ep0.c usb: cdns3: ep0: delete the unnecessary operation 2020-07-24 16:45:12 +03:00
gadget-export.h
gadget.c usb: cdns3: add runtime PM support 2020-10-02 09:57:38 +03:00
gadget.h usb: cdns3: make signed 1 bit bitfields unsigned 2020-03-26 15:05:44 +01:00
host-export.h usb: cdns3: include host-export,h for cdns3_host_init 2019-10-27 08:58:44 +02:00
host.c usb: cdns3: add runtime PM support 2020-10-02 09:57:38 +03:00
Kconfig usb: cdns3: add NXP imx8qm glue layer 2020-01-15 10:39:22 +01:00
Makefile usb: cdns3: add NXP imx8qm glue layer 2020-01-15 10:39:22 +01:00
trace.c
trace.h usb: cdns3: trace: fix some endian issues 2020-07-09 10:13:07 +03:00