summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorPeng Fan <peng.fan@nxp.com>2018-12-12 10:26:33 +0800
committerPeng Fan <peng.fan@nxp.com>2018-12-12 13:35:45 +0800
commitdd2cdd82b87202f26f50415381acef29c801de88 (patch)
tree1dc7f68d7942960506985c8ca898a07d9bfa6e66 /drivers
parent6b8bafd46a1395f37027b1038b9c97e1e436c930 (diff)
MLK-20569 usb: ehci-mx6: configure usb out of suspend state
When moving to support partition reboot or android auto on XEN, linux kernel will runs into runtime suspend state, and the usb will be configured to low power suspend state by Linux. Then we reboot and runs into U-Boot, however the usb already in suspended state and uboot not able to lock the phy pll, after clearing PHCD to out of suspended state, the phy pll could be locked and fastboot works. Signed-off-by: Peng Fan <peng.fan@nxp.com> Suggested-by: Li Jun <jun.li@nxp.com> Reviewed-by: Ye Li <ye.li@nxp.com> (cherry picked from commit 999ae3e37bc8fea05ac984eb043dd925d80f1208)
Diffstat (limited to 'drivers')
-rw-r--r--drivers/usb/host/ehci-mx6.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/usb/host/ehci-mx6.c b/drivers/usb/host/ehci-mx6.c
index d04f703afa..f03dc9df8e 100644
--- a/drivers/usb/host/ehci-mx6.c
+++ b/drivers/usb/host/ehci-mx6.c
@@ -436,10 +436,17 @@ int __weak board_ehci_power(int port, int on)
int ehci_mx6_common_init(struct usb_ehci *ehci, int index)
{
int ret;
+ u32 portsc;
enable_usboh3_clk(1);
mdelay(1);
+ portsc = readl(&ehci->portsc);
+ if (portsc & PORT_PTS_PHCD) {
+ debug("suspended: portsc %x, enabled it.\n", portsc);
+ clrbits_le32(&ehci->portsc, PORT_PTS_PHCD);
+ }
+
/* Do board specific initialization */
ret = board_ehci_hcd_init(index);
if (ret)