usb: xhci-exynos5: Disable USB 3.0 port for host mode 64/99764/3 accepted/tizen/common/20161205.135848 accepted/tizen/ivi/20161205.232732 accepted/tizen/mobile/20161205.232640 accepted/tizen/tv/20161205.232652 accepted/tizen/wearable/20161205.232712 submit/tizen/20161205.013353
authorDongwoo Lee <dwoo08.lee@samsung.com>
Thu, 24 Nov 2016 04:40:39 +0000 (13:40 +0900)
committerDongwoo Lee <dwoo08.lee@samsung.com>
Thu, 24 Nov 2016 05:36:21 +0000 (21:36 -0800)
xhci driver have not been completely implemented, so the controller
cannot recognize the USB 3.0 device when it is connected to xhci-hosted
port. This patch disable USB 3.0 port of xhci host, then super-speed
devices can be recognized as at least high-speed devices.

Change-Id: I6100f6c441993ae882db371d880a457cdcde4ae5
Reported-by: Seung-Woo Kim <sw0312.kim@samsung.com>
Signed-off-by: Dongwoo Lee <dwoo08.lee@samsung.com>
arch/arm/mach-exynos/include/mach/xhci-exynos.h
drivers/usb/host/xhci-exynos5.c

index 92b90a462c924dc9be2ca59bf0213c51316509db..3ac18098d41f5f0d5b675cd881aba9ac91570e92 100644 (file)
 
 #define PHYBATCHG_UTMI_CLKSEL                  (0x1 << 2)
 
+
+#define LINK_PORT_HOST_U3_PORT_DISABLE         (0x1 << 8)
+#define LINK_PORT_HOST_U2_PORT_DISABLE         (0x1 << 7)
+
 #define FSEL_CLKSEL_24M                                (0x5)
 
 /* XHCI PHY register structure */
index 28416ed1064914bbdf8c8fce1258381c182d1115..302a0eba8ca765bfd758ad7bf1b3c3e5c0cfa968 100644 (file)
@@ -110,6 +110,15 @@ static void exynos5_usb3_phy_init(struct exynos_usb3_phy *phy)
 
        writel(0x0, &phy->phy_resume);
 
+       /*
+        * FIXME: If xhci becomes being able to fully support super-speed
+        * devices, this should be reverted.
+        *
+        * Disable USB 3.0 port and enable USB 2.0 port only
+        */
+       clrbits_le32(&phy->link_port, LINK_PORT_HOST_U2_PORT_DISABLE);
+       setbits_le32(&phy->link_port, LINK_PORT_HOST_U3_PORT_DISABLE);
+
        /*
         * Setting the Frame length Adj value[6:1] to default 0x20
         * See xHCI 1.0 spec, 5.2.4