[U-Boot] [PATCH v3 0/4] USB multi controller

Lucas Stach
2012-09-05T23:12:49Z

V3: Stephen ran into some problems applying this, as it seems my tree
wasn't as clean as it should have been. Sorry for the inconvenience.
This should now be fixed.

Hi all,

this is a follow up on the patch "USB: EHCI: Initialize multiple
USB controllers at once" from Jim Lin. It takes some of the
code but has undergone some heavy reworking.

When we remove the ifdef horror from the above mentioned patch it's
mostly a big interface change to the usb subsystem. As this creates
a lot of churn I've split this up into a series. Every patch is self
contained so it doesn't break compiles and *should* not regress
any functionality on it's own. At least the series is bisectable in
case anything goes wrong. I've compile tested all the ARM configs.

Both the lowlevel usb and ehci interface change are backward
compatible, so implementations that only use one controller can
choose to ignore the new interface. All implementations are
updated to work with the new function prototypes.

For Tegra I've included a patch to actually use the new ehci
interface. Tom, Stephen, can I get an ACK from you for this, so
Marek can take this through his USB tree?

All patches now rebased onto u-boot-usb/master.

Patch 3 also includes some cosmetic changes, to make the output
of the usb commands more readable.

On my Colibri T20, with a total of 3 usb controllers of which 2
are enabled in the device tree, output now looks like this:

Tegra20 (Colibri) # usb start
(Re)start USB...
USB0: USB EHCI 1.00
scanning bus 0 for devices... 2 USB Device(s) found
USB1: USB EHCI 1.00
scanning bus 1 for devices... 2 USB Device(s) found
USB2: lowlevel init failed
scanning usb for storage devices... 1 Storage Device(s) found
scanning usb for ethernet devices... 1 Ethernet Device(s) found

Tegra20 (Colibri) # usb tree
USB device tree:
1 Hub (480 Mb/s, 0mA)
| u-boot EHCI Host Controller
|
+-2 Mass Storage (480 Mb/s, 200mA)
SanDisk U3 Titanium 2845221DC342AE8F

3 Hub (480 Mb/s, 0mA)
| u-boot EHCI Host Controller
|
+-4 Vendor specific (480 Mb/s, 4mA)
ASIX Elec. Corp. AX88772B 000001

Lucas Stach (4):
usb: lowlevel interface change to support multiple controllers
usb: ehci: rework to take advantage of new lowlevel interface
usb: add support for multiple usb controllers
tegra20: port to new ehci interface

arch/arm/cpu/arm920t/s3c24x0/usb_ohci.c | 4 +-
arch/arm/cpu/armv7/tegra20/usb.c | 15 +---
arch/arm/include/asm/arch-tegra20/usb.h | 4 +-
arch/arm/include/asm/ehci-omap.h | 10 ++-
arch/mips/cpu/mips32/au1x00/au1x00_usb_ohci.c | 4 +-
arch/powerpc/cpu/mpc5xxx/usb_ohci.c | 4 +-
arch/powerpc/cpu/ppc4xx/usb_ohci.c | 4 +-
arch/sparc/cpu/leon3/usb_uhci.c | 4 +-
arch/sparc/lib/bootm.c | 2 +-
board/htkw/mcx/mcx.c | 6 +-
board/mpl/common/usb_uhci.c | 4 +-
board/technexion/twister/twister.c | 6 +-
board/teejet/mt_ventoux/mt_ventoux.c | 6 +-
board/ti/beagle/beagle.c | 6 +-
board/ti/panda/panda.c | 6 +-
common/cmd_usb.c | 16 +++-
common/usb.c | 108 +++++++++++-----------
common/usb_hub.c | 2 +-
common/usb_storage.c | 2 +-
drivers/usb/eth/usb_ether.c | 2 +-
drivers/usb/host/ehci-armada100.c | 15 ++--
drivers/usb/host/ehci-atmel.c | 11 ++-
drivers/usb/host/ehci-core.h | 29 ------
drivers/usb/host/ehci-exynos.c | 15 ++--
drivers/usb/host/ehci-fsl.c | 11 ++-
drivers/usb/host/ehci-hcd.c | 124 ++++++++++++++------------
drivers/usb/host/ehci-ixp4xx.c | 15 ++--
drivers/usb/host/ehci-marvell.c | 15 ++--
drivers/usb/host/ehci-mpc512x.c | 25 ++----
drivers/usb/host/ehci-mx5.c | 11 ++-
drivers/usb/host/ehci-mx6.c | 11 ++-
drivers/usb/host/ehci-mxc.c | 11 ++-
drivers/usb/host/ehci-mxs.c | 28 +++---
drivers/usb/host/ehci-omap.c | 10 ++-
drivers/usb/host/ehci-pci.c | 15 ++--
drivers/usb/host/ehci-ppc4xx.c | 11 ++-
drivers/usb/host/ehci-tegra.c | 14 ++-
drivers/usb/host/ehci-vct.c | 9 +-
drivers/usb/host/ehci.h | 4 +-
drivers/usb/host/isp116x-hcd.c | 4 +-
drivers/usb/host/ohci-hcd.c | 4 +-
drivers/usb/host/r8a66597-hcd.c | 4 +-
drivers/usb/host/sl811-hcd.c | 4 +-
drivers/usb/musb/musb_hcd.c | 4 +-
include/usb.h | 10 ++-
include/usb/mv_udc.h | 2 +-
46 Dateien ge?ndert, 311 Zeilen hinzugef?gt(+), 320 Zeilen entfernt(-)
delete mode 100644 drivers/usb/host/ehci-core.h

--
1.7.11.4