diff options
Diffstat (limited to 'drivers/usb/dwc3/dwc3-omap.c')
| -rw-r--r-- | drivers/usb/dwc3/dwc3-omap.c | 16 | 
1 files changed, 16 insertions, 0 deletions
diff --git a/drivers/usb/dwc3/dwc3-omap.c b/drivers/usb/dwc3/dwc3-omap.c index a4719e853b85..ed8b86517675 100644 --- a/drivers/usb/dwc3/dwc3-omap.c +++ b/drivers/usb/dwc3/dwc3-omap.c @@ -582,9 +582,25 @@ static int dwc3_omap_resume(struct device *dev)  	return 0;  } +static void dwc3_omap_complete(struct device *dev) +{ +	struct dwc3_omap	*omap = dev_get_drvdata(dev); + +	if (extcon_get_state(omap->edev, EXTCON_USB)) +		dwc3_omap_set_mailbox(omap, OMAP_DWC3_VBUS_VALID); +	else +		dwc3_omap_set_mailbox(omap, OMAP_DWC3_VBUS_OFF); + +	if (extcon_get_state(omap->edev, EXTCON_USB_HOST)) +		dwc3_omap_set_mailbox(omap, OMAP_DWC3_ID_GROUND); +	else +		dwc3_omap_set_mailbox(omap, OMAP_DWC3_ID_FLOAT); +} +  static const struct dev_pm_ops dwc3_omap_dev_pm_ops = {  	SET_SYSTEM_SLEEP_PM_OPS(dwc3_omap_suspend, dwc3_omap_resume) +	.complete = dwc3_omap_complete,  };  #define DEV_PM_OPS	(&dwc3_omap_dev_pm_ops)  | 

