This little series brings in some bindings that seem useful for U-Boot.
I am working mostly in U-Boot, but since there is no shared .dts repo
I was asked to commit these changes to the kernel. I do not propose to
update the Linux USB drivers to match.
Simon Glass (3):
arm: tegra: dts: Support host/device selection and legacy mode
arm: tegra: dts: Add legacy mode support to Tegra2x USB1 port
arm: tegra: dts: Mark USB1 as an OTG port on Seaboard
.../devicetree/bindings/usb/tegra-usb.txt | 13 +++++++++++++
arch/arm/boot/dts/tegra-seaboard.dts | 1 +
arch/arm/boot/dts/tegra20.dtsi | 1 +
3 files changed, 15 insertions(+), 0 deletions(-)
--
1.7.7.3
The USB1 port on Tegra2 supports operation in host or device modes. On
Seaboard this is possible, so mark the port as OTG.
Signed-off-by: Simon Glass <[email protected]>
---
arch/arm/boot/dts/tegra-seaboard.dts | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
diff --git a/arch/arm/boot/dts/tegra-seaboard.dts b/arch/arm/boot/dts/tegra-seaboard.dts
index 876d5c9..dbf1c5a 100644
--- a/arch/arm/boot/dts/tegra-seaboard.dts
+++ b/arch/arm/boot/dts/tegra-seaboard.dts
@@ -112,6 +112,7 @@
usb@c5000000 {
nvidia,vbus-gpio = <&gpio 24 0>; /* PD0 */
+ dr_mode = "otg";
};
gpio-keys {
--
1.7.7.3
Tegra's USB1 port supports legacy mode, so mark it as such. Even if we
don't use it, we must turn it off in the driver.
Signed-off-by: Simon Glass <[email protected]>
---
arch/arm/boot/dts/tegra20.dtsi | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
diff --git a/arch/arm/boot/dts/tegra20.dtsi b/arch/arm/boot/dts/tegra20.dtsi
index ec1f010..a322c11 100644
--- a/arch/arm/boot/dts/tegra20.dtsi
+++ b/arch/arm/boot/dts/tegra20.dtsi
@@ -184,6 +184,7 @@
reg = <0xc5000000 0x4000>;
interrupts = < 0 20 0x04 >;
phy_type = "utmi";
+ nvidia,has-legacy-mode;
};
usb@c5004000 {
--
1.7.7.3
Some USB ports can support host and device operation. We add the dr_mode
property (as found in Freescale) for this.
One USB port has a 'legacy mode', left over from the days of pre-Tegra
chips. I don't believe this is actually used, except that we must know
to turn this off in the driver.
Signed-off-by: Simon Glass <[email protected]>
---
.../devicetree/bindings/usb/tegra-usb.txt | 13 +++++++++++++
1 files changed, 13 insertions(+), 0 deletions(-)
diff --git a/Documentation/devicetree/bindings/usb/tegra-usb.txt b/Documentation/devicetree/bindings/usb/tegra-usb.txt
index 035d63d..007005d 100644
--- a/Documentation/devicetree/bindings/usb/tegra-usb.txt
+++ b/Documentation/devicetree/bindings/usb/tegra-usb.txt
@@ -11,3 +11,16 @@ Required properties :
- phy_type : Should be one of "ulpi" or "utmi".
- nvidia,vbus-gpio : If present, specifies a gpio that needs to be
activated for the bus to be powered.
+
+Optional properties:
+ - dr_mode : dual role mode. Indicates the working mode for
+ nvidia,tegra20-ehci compatible controllers. Can be "host", "peripheral",
+ or "otg". Default to "host" if not defined for backward compatibility.
+ host means this is a host controller
+ peripheral means it is device controller
+ otg means it can operate as either ("on the go")
+ - nvidia,has-legacy-mode : boolean indicates whether this controller can
+ operate in legacy mode (as APX 2500 / 2600). In legacy mode some
+ registers are accessed through the APB_MISC base address instead of
+ the USB controller. Since this is a legacy issue it probably does not
+ warrant a compatible string of its own.
--
1.7.7.3
Simon Glass wrote at riday, February 03, 2012 9:56 AM:
> This little series brings in some bindings that seem useful for U-Boot.
>
> I am working mostly in U-Boot, but since there is no shared .dts repo
> I was asked to commit these changes to the kernel. I do not propose to
> update the Linux USB drivers to match.
I think the series looks reasonable, so:
Acked-by: Stephen Warren <[email protected]<>
(I note that the kernel's USB driver for USB1 doesn't attempt to clear
legacy mode; I wonder how we're getting away with that. Perhaps it's
only been tested with a bootloader that's already cleared legacy mode)
--
nvpublic