dwc3: core: fix SUSPHY problem
authorRobert Baldyga <r.baldyga@samsung.com>
Mon, 23 Feb 2015 14:58:30 +0000 (15:58 +0100)
committerMarek Szyprowski <m.szyprowski@samsung.com>
Mon, 13 Apr 2015 10:44:44 +0000 (12:44 +0200)
This is needed for OTG mode. Without this change endpoint enabling in
gadget mode fails after role switching.

Signed-off-by: Robert Baldyga <r.baldyga@samsung.com>
drivers/usb/dwc3/core.c

index 5c7a849..a10583a 100644 (file)
@@ -113,6 +113,14 @@ static int dwc3_core_soft_reset(struct dwc3 *dwc)
        reg &= ~DWC3_GCTL_CORESOFTRESET;
        dwc3_writel(dwc->regs, DWC3_GCTL, reg);
 
+       reg = dwc3_readl(dwc->regs, DWC3_GUSB2PHYCFG(0));
+       reg &= ~DWC3_GUSB2PHYCFG_SUSPHY;
+       dwc3_writel(dwc->regs, DWC3_GUSB2PHYCFG(0), reg);
+
+       reg = dwc3_readl(dwc->regs, DWC3_GUSB3PIPECTL(0));
+       reg &= ~DWC3_GUSB3PIPECTL_SUSPHY;
+       dwc3_writel(dwc->regs, DWC3_GUSB3PIPECTL(0), reg);
+
        return 0;
 }