[U-Boot] [PATCH 0/2] usb: xhci: dwc3 core reset requirement changes

This patch series adds the reset delay requirement in common dwc3 code and removes an unused function in usb fsl driver.
Rajesh Bhagat (2): usb: xhci: dwc3: Adding reset delay requirement as per dwc3 databook usb: xhci: fsl: Removing unused function usb_phy_reset
drivers/usb/host/xhci-dwc3.c | 2 ++ drivers/usb/host/xhci-fsl.c | 17 ----------------- 2 files changed, 2 insertions(+), 17 deletions(-)

As per dwc3 databook, delay is required before taking the core out of reset. This delay is required so that the PHY are stable, and then we can take core out of reset.
Reference is taken from linux dwc3 code, file: drivers/usb/dwc3/core.c.
Signed-off-by: Sriram Dash sriram.dash@freescale.com Signed-off-by: Rajesh Bhagat rajesh.bhagat@freescale.com --- drivers/usb/host/xhci-dwc3.c | 2 ++ 1 file changed, 2 insertions(+)
diff --git a/drivers/usb/host/xhci-dwc3.c b/drivers/usb/host/xhci-dwc3.c index c722c50..33961cd 100644 --- a/drivers/usb/host/xhci-dwc3.c +++ b/drivers/usb/host/xhci-dwc3.c @@ -44,6 +44,8 @@ void dwc3_core_soft_reset(struct dwc3 *dwc3_reg) /* reset USB3 phy - if required */ dwc3_phy_reset(dwc3_reg);
+ mdelay(100); + /* After PHYs are stable we can take Core out of reset state */ clrbits_le32(&dwc3_reg->g_ctl, DWC3_GCTL_CORESOFTRESET); }

This patch removes unsued function usb_phy_reset, rather common function dwc3_phy_reset is used.
Signed-off-by: Rajesh Bhagat rajesh.bhagat@freescale.com --- drivers/usb/host/xhci-fsl.c | 17 ----------------- 1 file changed, 17 deletions(-)
diff --git a/drivers/usb/host/xhci-fsl.c b/drivers/usb/host/xhci-fsl.c index 6481e07..05f09d7 100644 --- a/drivers/usb/host/xhci-fsl.c +++ b/drivers/usb/host/xhci-fsl.c @@ -27,23 +27,6 @@ __weak int __board_usb_init(int index, enum usb_init_type init) return 0; }
-void usb_phy_reset(struct dwc3 *dwc3_reg) -{ - /* Assert USB3 PHY reset */ - setbits_le32(&dwc3_reg->g_usb3pipectl[0], DWC3_GUSB3PIPECTL_PHYSOFTRST); - - /* Assert USB2 PHY reset */ - setbits_le32(&dwc3_reg->g_usb2phycfg, DWC3_GUSB2PHYCFG_PHYSOFTRST); - - mdelay(200); - - /* Clear USB3 PHY reset */ - clrbits_le32(&dwc3_reg->g_usb3pipectl[0], DWC3_GUSB3PIPECTL_PHYSOFTRST); - - /* Clear USB2 PHY reset */ - clrbits_le32(&dwc3_reg->g_usb2phycfg, DWC3_GUSB2PHYCFG_PHYSOFTRST); -} - static int fsl_xhci_core_init(struct fsl_xhci *fsl_xhci) { int ret = 0;
participants (1)
-
Rajesh Bhagat