This patch set adds initial support for xHCI host controllers either as platform_device or PCI attached device. Compared to EHCI, the xHCI added even more SW stuff around the host controller interface we have to deal with. From a topology point-of-view each xHCI HC represents two virtual Root Hubs, one for USB 3.0 and one for USB 2.0 with TT. The xHCI driver currently only supports virtual USB 2.0 ports of the xHCI controller. If a USB 3.0 device is used, it has to be connected with a USB 2.0 cable, i.e. no SuperSpeed cable. Also, I haven't been able to test any USB 1.1 devices, yet. Anyway, I plan to have a look at both USB 1.1 and USB 3.0 but still I consider the driver in a quite good shape to be released. I successfully tested the driver on Marvell Armada 370 Mirabox (PCI xHCI) with USB 2.0 thumbdrives and a USB 3.0 docking station using above cable workaround. The first three patches of this series are fixes not directly related with xHCI driver itself and can be picked independent of the last two patches. Patch 1 fixes a missing list_del for removed usb devices, Patch 2 introduces dev_count to separate usb device indexing from detected number of devices. Patch 3 imports min3() from Linux and makes EHCI HCD use it. Patch 4 introduces mentioned xHCI HCD and Root Hub driver, also it provides platform_device registration for xHCI IP. Patch 5 adds a PCI device driver for xHCI controllers. Sebastian Sebastian Hesselbarth (6): USB: Fix stale usb devices in usb_device_list USB: Count detected USB devices independent of dev_index USB: EHCI: use min3 from Linux include: import {lower,upper}_32_bits helpers USB: host: add xHCI HCD, Hub, and platform driver USB: host: add xHCI PCI driver drivers/usb/core/usb.c | 6 +- drivers/usb/host/Kconfig | 18 + drivers/usb/host/Makefile | 2 + drivers/usb/host/ehci-hcd.c | 12 +- drivers/usb/host/xhci-hcd.c | 1251 +++++++++++++++++++++++++++++++++++++++++ drivers/usb/host/xhci-hub.c | 699 +++++++++++++++++++++++ drivers/usb/host/xhci-pci.c | 45 ++ drivers/usb/host/xhci.h | 1284 +++++++++++++++++++++++++++++++++++++++++++ include/common.h | 16 + include/linux/kernel.h | 18 + include/usb/xhci.h | 33 ++ 11 files changed, 3372 insertions(+), 12 deletions(-) create mode 100644 drivers/usb/host/xhci-hcd.c create mode 100644 drivers/usb/host/xhci-hub.c create mode 100644 drivers/usb/host/xhci-pci.c create mode 100644 drivers/usb/host/xhci.h create mode 100644 include/usb/xhci.h --- To: Sascha Hauer <s.hauer@xxxxxxxxxxxxxx> Cc: Thomas Petazzoni <thomas.petazzoni@xxxxxxxxxxxxxxxxxx> Cc: Ezequiel Garcia <ezequiel.garcia@xxxxxxxxxxxxxxxxxx> Cc: barebox@xxxxxxxxxxxxxxxxxxx -- 2.0.0 _______________________________________________ barebox mailing list barebox@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/barebox