usb: gadget: udc: renesas_usb3: Add suspend/resume functions

This patch adds support suspend/resume functions

Signed-off-by: Kazuya Mizuguchi <kazuya.mizuguchi.ks@renesas.com>
[shimoda: add the commit log]
Signed-off-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
This commit is contained in:
Yoshihiro Shimoda 2017-09-29 20:45:00 +09:00 committed by Felipe Balbi
parent cf06df3fae
commit 90d588642a
1 changed files with 34 additions and 0 deletions

View File

@ -2655,11 +2655,45 @@ static int renesas_usb3_probe(struct platform_device *pdev)
return ret;
}
#ifdef CONFIG_PM_SLEEP
static int renesas_usb3_suspend(struct device *dev)
{
struct renesas_usb3 *usb3 = dev_get_drvdata(dev);
/* Not started */
if (!usb3->driver)
return 0;
renesas_usb3_stop_controller(usb3);
pm_runtime_put(dev);
return 0;
}
static int renesas_usb3_resume(struct device *dev)
{
struct renesas_usb3 *usb3 = dev_get_drvdata(dev);
/* Not started */
if (!usb3->driver)
return 0;
pm_runtime_get_sync(dev);
renesas_usb3_init_controller(usb3);
return 0;
}
#endif
static SIMPLE_DEV_PM_OPS(renesas_usb3_pm_ops, renesas_usb3_suspend,
renesas_usb3_resume);
static struct platform_driver renesas_usb3_driver = {
.probe = renesas_usb3_probe,
.remove = renesas_usb3_remove,
.driver = {
.name = (char *)udc_name,
.pm = &renesas_usb3_pm_ops,
.of_match_table = of_match_ptr(usb3_of_match),
},
};