
Hi,
2011/12/3 Simon Glass sjg@chromium.org:
This adds basic support for the Tegra2 USB controller. Board files should call board_usb_init() to set things up.
Configuration through FDT and CONFIG is supported. For FDT, the device tree aliases set the order of the port, like this fragment:
aliases { /* This defines the order of our USB ports */ usb0 = "/usb@0xc5008000"; usb1 = "/usb@0xc5000000"; };
For CONFIG-based configuration, where CONFIG_OF_CONTROL is not defined, USB ports rely on CONFIG_TEGRA2_USBx macros to select the ordering. For example:
#define CONFIG_TEGRA_USB0 TEGRA_USB3_BASE #define CONFIG_TEGRA_USB1 TEGRA_USB1_BASE
We record the order that the ports are configured and use that to select ports by number.
Signed-off-by: Simon Glass sjg@chromium.org
Changes in v2:
- Rename params to timing
- Store entire fdt config in port list, not just register pointer
- Remove non-fdt operation of USB, since it is not needed
- Decode USB VBUS GPIO from the fdt
- Decode phy type differently (to match new kernel fdt)
- Rename tegra20-usb to tegra20-ehcui (to match new kernel fdt)
- Improve debug() printouts in case of failure to init USB
drivers/usb/host/Makefile | 1 + drivers/usb/host/ehci-tegra.c | 63 +++++
As for this USB part: Acked-by: Remy Bohmer linux@bohmer.net
Kind regards,
Remy