2012-02-03 16:56:29

by Simon Glass

[permalink] [raw]
Subject: [PATCH 0/3] arm: tegra: dts: USB Updates for Tegra legacy mode / OTG

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


2012-02-03 16:56:40

by Simon Glass

[permalink] [raw]
Subject: [PATCH 3/3] arm: tegra: dts: Mark USB1 as an OTG port on Seaboard

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

2012-02-03 16:56:39

by Simon Glass

[permalink] [raw]
Subject: [PATCH 2/3] arm: tegra: dts: Add legacy mode support to Tegra2x USB1 port

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

2012-02-03 16:56:37

by Simon Glass

[permalink] [raw]
Subject: [PATCH 1/3] arm: tegra: dts: Support host/device selection and legacy mode

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

2012-02-03 19:59:33

by Stephen Warren

[permalink] [raw]
Subject: RE: [PATCH 0/3] arm: tegra: dts: USB Updates for Tegra legacy mode / OTG

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