diff --git a/drivers/usb/phy/phy-msm-usb.c b/drivers/usb/phy/phy-msm-usb.c index 4d796fdaf58..cd60510e381 100644 --- a/drivers/usb/phy/phy-msm-usb.c +++ b/drivers/usb/phy/phy-msm-usb.c @@ -5127,6 +5127,14 @@ static int msm_otg_remove(struct platform_device *pdev) return 0; } +static void msm_otg_shutdown(struct platform_device *pdev) +{ + struct msm_otg *motg = platform_get_drvdata(pdev); + + dev_dbg(&pdev->dev, "OTG shutdown\n"); + msm_hsusb_vbus_power(motg, 0); +} + #ifdef CONFIG_PM_RUNTIME static int msm_otg_runtime_idle(struct device *dev) { @@ -5245,6 +5253,7 @@ static struct of_device_id msm_otg_dt_match[] = { static struct platform_driver msm_otg_driver = { .probe = msm_otg_probe, .remove = msm_otg_remove, + .shutdown = msm_otg_shutdown, .driver = { .name = DRIVER_NAME, .owner = THIS_MODULE,