The USB signal can be system wakeup source, this patch add the support, for how to enable it, see Documentation/usb/chipidea.txt. Since USB wakeup enable logic is vendor/platform specific, the glue layer needs to implement it to support this feature.
Signed-off-by: Peter Chen <peter.c...@freescale.com> --- drivers/usb/chipidea/core.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/drivers/usb/chipidea/core.c b/drivers/usb/chipidea/core.c index 63d2b39..6d9dc2d 100644 --- a/drivers/usb/chipidea/core.c +++ b/drivers/usb/chipidea/core.c @@ -808,6 +808,8 @@ static int ci_hdrc_probe(struct platform_device *pdev) if (ci_otg_is_fsm_mode(ci)) ci_hdrc_otg_fsm_start(ci); + device_set_wakeup_capable(&pdev->dev, true); + ret = dbg_create_files(ci); if (!ret) return 0; @@ -898,6 +900,11 @@ static int ci_suspend(struct device *dev) return 0; } + if (device_may_wakeup(dev)) { + usb_phy_set_wakeup(ci->usb_phy, true); + enable_irq_wake(ci->irq); + } + ci_controller_suspend(ci); return 0; @@ -908,6 +915,9 @@ static int ci_resume(struct device *dev) struct ci_hdrc *ci = dev_get_drvdata(dev); int ret; + if (device_may_wakeup(dev)) + disable_irq_wake(ci->irq); + ret = ci_controller_resume(dev); if (ret) return ret; -- 1.9.1 -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html