[U-Boot] [PATCH v4 0/20] tegra: Add fdt definitions and USB driver
Simon Glass
sjg at chromium.org
Thu Jan 12 05:32:49 CET 2012
This series brings in the Linux kernel fdt file and provides a working
USB driver for Tegra2 Seaboard.
(I have done this in one series since otherwise most of the fdt additions
will just look like dead code.)
The driver requires CONFIG_OF_CONTROL and a device tree to operate.
Some enhancements to fdtdec are required to make this easier, and these
are included in the series also. I have had to bring in basic GPIO
support due to the request to put the USB VBUS into the fdt.
Since the kernel recently got a very minimal USB binding, I have started
with that and extended it where appropriate.
Tegra likes to have cache-aligned buffers. I have dropped the patch which
implements this since we will solve this problem by making callers align
their buffers (as we did with MMC).
Changes in v2:
- Use "okay" instead of "ok" for fdt node status
- Remove 0x from fdt aliases
- 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
- Add setting of pinmux for USB VBUS GPIO
- Remove unneeded CONFIG_TEGRA_USBx defines
Changes in v3:
- Remove "okay" from nodes since this is the default anyway
- Fix device tree indenting with tabs instead of spaces
- Disable USB2 which is not used on Seaboard
- Remove usbparams properties from fdt and moved them to C code
- Drop Tegra USB alignment patch as we will deal with this another way
Changes in v4:
- Add staging area for device tree bindings used in U-Boot
- Add clock bindings for Tegra2x
- Add fdtdec function to return peripheral ID
- Use updated fdtdec alias functiona to get USB aliases
- Use peripheral clock node to obtain peripheral ID
Simon Glass (20):
fdt: Tidy up a few fdtdec problems
fdt: Add functions to access phandles, arrays and bools
fdt: Add basic support for decoding GPIO definitions
arm: fdt: Ensure that an embedded fdt is word-aligned
arm: fdt: Add skeleton device tree file from kernel
tegra: fdt: Add Tegra2x device tree file from kernel
tegra: fdt: Add device tree file for Tegra2 Seaboard from kernel
fdt: Add staging area for device tree binding documentation
fdt: Add tegra-usb bindings file from linux
tegra: fdt: Add additional USB binding
tegra: fdt: Add clock bindings
tegra: usb: fdt: Add additional device tree definitions for USB ports
tegra: usb: fdt: Add USB definitions for Tegra2 Seaboard
usb: Add support for txfifo threshold
fdt: Add function to return peripheral/clock ID
tegra: usb: Add support for Tegra USB peripheral
tegra: usb: Add USB support to nvidia boards
tegra: usb: Add common USB defines for tegra2 boards
tegra: usb: Enable USB on Seaboard
tegra: fdt: Enable FDT support for Seaboard
README | 3 +
arch/arm/cpu/armv7/tegra2/Makefile | 4 +-
arch/arm/cpu/armv7/tegra2/config.mk | 2 +
arch/arm/cpu/armv7/tegra2/usb.c | 426 ++++++++++++++++++++++++
arch/arm/cpu/armv7/u-boot.lds | 5 +
arch/arm/dts/skeleton.dtsi | 13 +
arch/arm/dts/tegra20.dtsi | 199 +++++++++++
arch/arm/include/asm/arch-tegra2/tegra2.h | 2 +
arch/arm/include/asm/arch-tegra2/usb.h | 255 ++++++++++++++
board/nvidia/common/board.c | 8 +
board/nvidia/dts/tegra2-seaboard.dts | 47 +++
doc/device-tree-bindings/README | 19 +
doc/device-tree-bindings/clock/tegra-periphclk | 51 +++
doc/device-tree-bindings/usb/tegra-usb.txt | 17 +
drivers/usb/host/Makefile | 1 +
drivers/usb/host/ehci-hcd.c | 7 +
drivers/usb/host/ehci-tegra.c | 63 ++++
drivers/usb/host/ehci.h | 6 +-
dts/Makefile | 2 +-
include/configs/seaboard.h | 12 +
include/configs/tegra2-common.h | 14 +
include/fdtdec.h | 121 +++++++-
lib/fdtdec.c | 181 ++++++++++-
23 files changed, 1445 insertions(+), 13 deletions(-)
create mode 100644 arch/arm/cpu/armv7/tegra2/usb.c
create mode 100644 arch/arm/dts/skeleton.dtsi
create mode 100644 arch/arm/dts/tegra20.dtsi
create mode 100644 arch/arm/include/asm/arch-tegra2/usb.h
create mode 100644 board/nvidia/dts/tegra2-seaboard.dts
create mode 100644 doc/device-tree-bindings/README
create mode 100644 doc/device-tree-bindings/clock/tegra-periphclk
create mode 100644 doc/device-tree-bindings/usb/tegra-usb.txt
create mode 100644 drivers/usb/host/ehci-tegra.c
--
1.7.7.3
More information about the U-Boot
mailing list