u-boot-2016/drivers/usb/host
Bin Meng 1bc23dd4ce usb: xhci: Program 'route string' in the input slot context
xHCI spec says: the values of the 'route string' field shall be
initialized by the first 'Address Device' command issued to a
device slot, and shall not be modified by any other command.

So far U-Boot does not program this field, and it does not prevent
SS device directly attached to root port, or HS device behind an HS
hub, from working, due to the fact that 'route string' is used by
the xHC to target SS packets. But in order to enumerate devices
behind an SS hub, this field must be programmed.

With this commit and along with previous commits, now SS & HS devices
attached to a USB 3.0 hub can be enumerated by U-Boot.

As usual, this new feature is only available when DM is on.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
(cherry picked from commit 493b8dd070)
Signed-off-by: Santan Kumar <santank@codeaurora.org>

Change-Id: I367a0f1fa5e310c1c6af2d4675a86a3293337d64
2018-06-05 15:40:00 +05:30
..
dwc2.c usb: dwc2: avoid out of bounds access 2015-12-31 10:05:31 +01:00
dwc2.h usb: dwc2: Add support for v3 snpsid value 2015-05-29 12:41:04 +02:00
ehci-armada100.c usb: ehci-hcd: add enum usb_init_type parameter to ehci_hcd_init. 2013-10-20 23:46:27 +02:00
ehci-atmel.c USB: ehci-atmel: use pcr to enable or disable clock 2014-09-19 00:11:21 +02:00
ehci-exynos.c usb: host: ehci: samsung: Move hcor initialization after usb phy setup 2015-12-17 21:54:41 +01:00
ehci-faraday.c dm: usb: Drop the EHCI weak functions 2015-04-18 11:11:24 -06:00
ehci-fsl.c drivers: usb: fsl: Return if USB_MAX_CONTROLLER_COUNT is incorrect 2015-06-07 15:46:02 +02:00
ehci-generic.c usb: add support for generic EHCI devices 2015-12-07 00:14:59 +01:00
ehci-hcd.c usb: hub: Change USB hub descriptor to match USB 3.0 hubs 2018-06-05 15:21:39 +05:30
ehci-marvell.c usb: ehci-marvell.c: Add DM support 2015-10-21 02:25:01 +02:00
ehci-mpc512x.c powerpc/usb:Differentiate USB controller base address 2013-10-24 09:35:09 -07:00
ehci-mx5.c dm: usb: Drop the EHCI weak functions 2015-04-18 11:11:24 -06:00
ehci-mx6.c imx: usb: ehci-mx6: wait_for_bit to check reg status 2015-08-19 22:30:20 +02:00
ehci-mxc.c usb: ehci-hcd: add enum usb_init_type parameter to ehci_hcd_init. 2013-10-20 23:46:27 +02:00
ehci-mxs.c usb: ehci: mxs: Add board-specific callbacks 2014-09-29 09:02:16 +02:00
ehci-omap.c usb: ehci-omap: Reset the USB Host OMAP module 2013-12-06 07:02:32 -05:00
ehci-pci.c dm: usb: Add driver-model support to ehci-pci 2015-07-21 17:39:40 -06:00
ehci-ppc4xx.c usb: ehci-hcd: add enum usb_init_type parameter to ehci_hcd_init. 2013-10-20 23:46:27 +02:00
ehci-rmobile.c usb: rmobile: Use ARRAY_SIZE(usb_base_address) instead of CONFIG_USB_MAX_CONTROLLER_COUNT 2014-11-07 16:32:02 +01:00
ehci-spear.c usb: spear: Add support for both SPEAr600 EHCI controllers 2015-08-19 22:30:20 +02:00
ehci-sunxi.c sunxi: usb: Rename the sunxi usb driver DM entry 2015-12-07 00:14:59 +01:00
ehci-tegra.c dm: Use dev_get_addr() where possible 2015-08-31 07:57:26 -06:00
ehci-uniphier.c ARM: UniPhier: replace <asm/io.h> with <linux/io.h> 2015-05-31 02:53:56 +09:00
ehci-vct.c usb: ehci-hcd: add enum usb_init_type parameter to ehci_hcd_init. 2013-10-20 23:46:27 +02:00
ehci-vf.c usb: ehci-vf: Add weak function for board specific initialisation 2015-06-08 08:41:56 +02:00
ehci-zynq.c ARM: zynq: ehci: Added USB host driver support 2014-05-14 07:43:35 +02:00
ehci.h usb: ehci: remember init mode 2015-09-07 13:41:05 +02:00
isp116x-hcd.c include: move various macros to include/linux/kernel.h 2014-11-20 11:28:25 -05:00
isp116x.h Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
Kconfig usb: add support of generic OHCI devices 2015-12-17 21:54:41 +01:00
Makefile qca: ipq: USB support is now DM model 2016-07-24 17:03:05 +05:30
ohci-at91.c USB: ohci-at91: use pcr to enable or disable clock 2014-09-19 00:11:20 +02:00
ohci-da8xx.c Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
ohci-ep93xx.c arm: ep9315: Return back Cirrus Logic EDB9315A board support 2014-07-04 23:45:48 +02:00
ohci-generic.c usb: add support of generic OHCI devices 2015-12-17 21:54:41 +01:00
ohci-hcd.c ohci: Add missing cache-flush for hcca area 2015-11-03 17:29:33 +01:00
ohci-lpc32xx.c usb: lpc32xx: add host USB driver 2015-08-18 13:45:57 -04:00
ohci-s3c24xx.c include: move various macros to include/linux/kernel.h 2014-11-20 11:28:25 -05:00
ohci-s3c24xx.h dm: Move s3c24xx USB driver to a proper place 2012-10-18 06:54:18 +02:00
ohci-sunxi.c sunxi: usb-phy: Never power off the usb ports 2015-08-08 16:26:19 +02:00
ohci.h usb: ohci: enable cache support 2015-08-12 20:47:48 -04:00
r8a66597-hcd.c Move console definitions into a new console.h file 2015-11-19 20:27:50 -07:00
r8a66597.h usb: Update some EHCI driver licenses to use SPDX 2015-07-21 17:39:38 -06:00
sl811-hcd.c usb: add enum usb_init_type parameter to usb_lowlevel_init 2013-10-20 23:45:26 +02:00
sl811.h drivers/usb: regorganisation 2009-04-06 20:40:46 +02:00
usb-sandbox.c usb: sandbox: Add support for interrupt operations 2015-11-19 20:27:52 -07:00
usb-uclass.c usb: hub: Use 'struct usb_hub_device' as hub device's uclass_priv 2018-06-05 15:27:08 +05:30
utmi-armada100.c Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
xhci-dwc3.c usb: xhci: dwc3: Adding reset delay requirement as per dwc3 databook 2015-12-07 00:15:00 +01:00
xhci-exynos5.c dm: Use dev_get_addr() where possible 2015-08-31 07:57:26 -06:00
xhci-fsl.c usb: xhci: fsl: Removing unused function usb_phy_reset 2015-12-07 00:15:00 +01:00
xhci-ipq.c ipq806x: enabled USB support 2017-12-27 09:32:30 +05:30
xhci-keystone.c usb: xhci: keystone: Remove common dwc3 drv functions calls 2015-07-22 08:55:44 +02:00
xhci-mem.c usb: xhci: Program 'route string' in the input slot context 2018-06-05 15:40:00 +05:30
xhci-omap.c usb: host: xhci-omap: fix build break 2015-12-07 00:14:59 +01:00
xhci-pci.c usb: pci: Add XHCI driver for PCI 2015-02-05 22:16:42 -07:00
xhci-ring.c USB: xHCI: Fixed abort_td failure for usb start command 2018-03-01 22:09:01 -08:00
xhci-uniphier.c ARM: UniPhier: replace <asm/io.h> with <linux/io.h> 2015-05-31 02:53:56 +09:00
xhci-zynqmp.c usb: xhci: zynqmp: Removing unused function usb_phy_reset 2015-12-07 00:15:00 +01:00
xhci.c usb: xhci: Change xhci_setup_addressable_virt_dev() signature 2018-06-05 15:30:23 +05:30
xhci.h usb: xhci: Change xhci_setup_addressable_virt_dev() signature 2018-06-05 15:30:23 +05:30