usb: host: ehci-msm: Allow LS devices to work
authorJack Pham <jackp@codeaurora.org>
Fri, 11 Dec 2015 00:28:53 +0000 (18:28 -0600)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 25 Jan 2016 04:51:18 +0000 (20:51 -0800)
Disable the silicon quirk which is normally enabled for HSIC
host mode. This would otherwise prevent low speed devices
from enumerating properly.

Signed-off-by: Jack Pham <jackp@codeaurora.org>
Signed-off-by: Timur Tabi <timur@codeaurora.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/host/ehci-msm.c
include/linux/usb/msm_hsusb_hw.h

index c23e2858c815bbf15dc6de9bc98714349fa97177..aed499d64029ccac3cd3db77f62e3eb3a02e67c0 100644 (file)
@@ -61,6 +61,8 @@ static int ehci_msm_reset(struct usb_hcd *hcd)
        writel(0x8, USB_AHBMODE);
        /* Disable streaming mode and select host mode */
        writel(0x13, USB_USBMODE);
+       /* Disable ULPI_TX_PKT_EN_CLR_FIX which is valid only for HSIC */
+       writel(readl(USB_GENCONFIG_2) & ~ULPI_TX_PKT_EN_CLR_FIX, USB_GENCONFIG_2);
 
        return 0;
 }
index e159b39f67a2f4645d953e25264bff4aae5eb3bd..974c3796a23fc70b23e5873e1c5151cca6a7acd4 100644 (file)
@@ -22,6 +22,7 @@
 #define USB_AHBBURST         (MSM_USB_BASE + 0x0090)
 #define USB_AHBMODE          (MSM_USB_BASE + 0x0098)
 #define USB_GENCONFIG_2      (MSM_USB_BASE + 0x00a0)
+#define ULPI_TX_PKT_EN_CLR_FIX BIT(19)
 
 #define USB_CAPLENGTH        (MSM_USB_BASE + 0x0100) /* 8 bit */