Commit dd2cdd82b87202f26f50415381acef29c801de88

Authored by Peng Fan
1 parent 6b8bafd46a

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)

Showing 1 changed file with 7 additions and 0 deletions Side-by-side Diff

drivers/usb/host/ehci-mx6.c
... ... @@ -436,9 +436,16 @@
436 436 int ehci_mx6_common_init(struct usb_ehci *ehci, int index)
437 437 {
438 438 int ret;
  439 + u32 portsc;
439 440  
440 441 enable_usboh3_clk(1);
441 442 mdelay(1);
  443 +
  444 + portsc = readl(&ehci->portsc);
  445 + if (portsc & PORT_PTS_PHCD) {
  446 + debug("suspended: portsc %x, enabled it.\n", portsc);
  447 + clrbits_le32(&ehci->portsc, PORT_PTS_PHCD);
  448 + }
442 449  
443 450 /* Do board specific initialization */
444 451 ret = board_ehci_hcd_init(index);