diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c index d6a009415168..60f3dc4cefc5 100644 --- a/drivers/usb/dwc3/core.c +++ b/drivers/usb/dwc3/core.c @@ -1567,6 +1567,17 @@ static int dwc3_probe(struct platform_device *pdev) if (IS_ERR(dwc->reset)) return PTR_ERR(dwc->reset); + ret = reset_control_deassert(dwc->reset); + if (ret) + return ret; + + /* Reset the whole dwc3 controller */ + ret = reset_control_assert(dwc->reset); + if (ret) + return ret; + + udelay(1); + ret = reset_control_deassert(dwc->reset); if (ret) return ret;