linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] ARM: dts: omap3-beagle-xm: Add USB Host support for Rev Ax/Bx
@ 2013-04-15 12:35 Roger Quadros
  2013-04-15 12:39 ` Roger Quadros
  0 siblings, 1 reply; 8+ messages in thread
From: Roger Quadros @ 2013-04-15 12:35 UTC (permalink / raw)
  To: b-cousson
  Cc: tony, linux-omap, linux-arm-kernel, devicetree-discuss,
	linux-kernel, Roger Quadros

Provide RESET and Power regulators for the USB PHY,
the USB Host port mode and the PHY device.

Also provide pin multiplexer information for USB host
pins.

This will not work for Rev Cx boards because of reversed logic
for USB_POWER_Enable.

CC: Benoît Cousson <b-cousson@ti.com>
Signed-off-by: Roger Quadros <rogerq@ti.com>
---
 arch/arm/boot/dts/omap3-beagle-xm.dts |   62 +++++++++++++++++++++++++++++++++
 1 files changed, 62 insertions(+), 0 deletions(-)

diff --git a/arch/arm/boot/dts/omap3-beagle-xm.dts b/arch/arm/boot/dts/omap3-beagle-xm.dts
index 5a31964..d394c51 100644
--- a/arch/arm/boot/dts/omap3-beagle-xm.dts
+++ b/arch/arm/boot/dts/omap3-beagle-xm.dts
@@ -57,6 +57,60 @@
 		ti,mcbsp = <&mcbsp2>;
 		ti,codec = <&twl_audio>;
 	};
+
+	/* HS USB Port 2 RESET */
+	hsusb2_reset: hsusb2_reset_reg {
+		compatible = "regulator-fixed";
+		regulator-name = "hsusb2_reset";
+		regulator-min-microvolt = <3300000>;
+		regulator-max-microvolt = <3300000>;
+		gpio = <&gpio5 19 0>;	/* gpio_147 */
+		startup-delay-us = <70000>;
+		enable-active-high;
+	};
+
+	/* HS USB Port 2 Power */
+	hsusb2_power: hsusb2_power_reg {
+		compatible = "regulator-fixed";
+		regulator-name = "hsusb2_vbus";
+		regulator-min-microvolt = <3300000>;
+		regulator-max-microvolt = <3300000>;
+		gpio = <&twl_gpio 18 0>;	/* GPIO LEDA */
+		startup-delay-us = <70000>;
+		enable-active-high;	/* FIXME: active-low for Rev. C */
+	};
+
+	/* HS USB Host PHY on PORT 2 */
+	hsusb2_phy: hsusb2_phy {
+		compatible = "usb-nop-xceiv";
+		reset-supply = <&hsusb2_reset>;
+		vcc-supply = <&hsusb2_power>;
+	};
+
+};
+
+&omap3_pmx_core {
+	pinctrl-names = "default";
+	pinctrl-0 = <
+			&hsusbb2_pins
+	>;
+
+	hsusbb2_pins: pinmux_hsusbb2_pins {
+		pinctrl-single,pins = <
+			0x5c0 0x3  /* USBB2_ULPITLL_CLK_MUXMODE.usbb1_ulpiphy_clk OUTPUT */
+			0x5c2 0x3  /* USBB2_ULPITLL_CLK_MUXMODE.usbb1_ulpiphy_stp OUTPUT */
+			0x5c4 0x10b  /* USBB2_ULPITLL_CLK_MUXMODE.usbb1_ulpiphy_dir INPUT | PULLDOWN */
+			0x5c6 0x10b  /* USBB2_ULPITLL_CLK_MUXMODE.usbb1_ulpiphy_nxt INPUT | PULLDOWN */
+			0x5c8 0x10b  /* USBB2_ULPITLL_CLK_MUXMODE.usbb1_ulpiphy_dat0 INPUT | PULLDOWN */
+			0x5cA 0x10b  /* USBB2_ULPITLL_CLK_MUXMODE.usbb1_ulpiphy_dat1 INPUT | PULLDOWN */
+			0x1a4 0x10b  /* USBB2_ULPITLL_CLK_MUXMODE.usbb1_ulpiphy_dat2 INPUT | PULLDOWN */
+			0x1a6 0x10b  /* USBB2_ULPITLL_CLK_MUXMODE.usbb1_ulpiphy_dat3 INPUT | PULLDOWN */
+			0x1a8 0x10b  /* USBB2_ULPITLL_CLK_MUXMODE.usbb1_ulpiphy_dat4 INPUT | PULLDOWN */
+			0x1aa 0x10b  /* USBB2_ULPITLL_CLK_MUXMODE.usbb1_ulpiphy_dat5 INPUT | PULLDOWN */
+			0x1ac 0x10b  /* USBB2_ULPITLL_CLK_MUXMODE.usbb1_ulpiphy_dat6 INPUT | PULLDOWN */
+			0x1ae 0x10b  /* USBB2_ULPITLL_CLK_MUXMODE.usbb1_ulpiphy_dat7 INPUT | PULLDOWN */
+		>;
+	};
 };
 
 &i2c1 {
@@ -125,3 +179,11 @@
 	mode = <3>;
 	power = <50>;
 };
+
+&usbhshost {
+	port2-mode = "ehci-phy";
+};
+
+&usbhsehci {
+	phys = <0 &hsusb2_phy>;
+};
-- 
1.7.4.1


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* Re: [PATCH] ARM: dts: omap3-beagle-xm: Add USB Host support for Rev Ax/Bx
  2013-04-15 12:35 [PATCH] ARM: dts: omap3-beagle-xm: Add USB Host support for Rev Ax/Bx Roger Quadros
@ 2013-04-15 12:39 ` Roger Quadros
  2013-04-17  0:52   ` Tony Lindgren
  0 siblings, 1 reply; 8+ messages in thread
From: Roger Quadros @ 2013-04-15 12:39 UTC (permalink / raw)
  To: b-cousson, tony
  Cc: Roger Quadros, linux-omap, linux-arm-kernel, devicetree-discuss,
	linux-kernel

On 04/15/2013 03:35 PM, Roger Quadros wrote:
> Provide RESET and Power regulators for the USB PHY,
> the USB Host port mode and the PHY device.
> 
> Also provide pin multiplexer information for USB host
> pins.
> 
> This will not work for Rev Cx boards because of reversed logic
> for USB_POWER_Enable.
> 
> CC: Benoît Cousson <b-cousson@ti.com>
> Signed-off-by: Roger Quadros <rogerq@ti.com>
> ---
>  arch/arm/boot/dts/omap3-beagle-xm.dts |   62 +++++++++++++++++++++++++++++++++
>  1 files changed, 62 insertions(+), 0 deletions(-)
> 
> diff --git a/arch/arm/boot/dts/omap3-beagle-xm.dts b/arch/arm/boot/dts/omap3-beagle-xm.dts
> index 5a31964..d394c51 100644
> --- a/arch/arm/boot/dts/omap3-beagle-xm.dts
> +++ b/arch/arm/boot/dts/omap3-beagle-xm.dts
> @@ -57,6 +57,60 @@
>  		ti,mcbsp = <&mcbsp2>;
>  		ti,codec = <&twl_audio>;
>  	};
> +
> +	/* HS USB Port 2 RESET */
> +	hsusb2_reset: hsusb2_reset_reg {
> +		compatible = "regulator-fixed";
> +		regulator-name = "hsusb2_reset";
> +		regulator-min-microvolt = <3300000>;
> +		regulator-max-microvolt = <3300000>;
> +		gpio = <&gpio5 19 0>;	/* gpio_147 */
> +		startup-delay-us = <70000>;
> +		enable-active-high;
> +	};
> +
> +	/* HS USB Port 2 Power */
> +	hsusb2_power: hsusb2_power_reg {
> +		compatible = "regulator-fixed";
> +		regulator-name = "hsusb2_vbus";
> +		regulator-min-microvolt = <3300000>;
> +		regulator-max-microvolt = <3300000>;
> +		gpio = <&twl_gpio 18 0>;	/* GPIO LEDA */
> +		startup-delay-us = <70000>;
> +		enable-active-high;	/* FIXME: active-low for Rev. C */

Benoit & Tony,

Any ideas how to tackle the reversed logic for Rev. C boards?

> +	};
> +
> +	/* HS USB Host PHY on PORT 2 */
> +	hsusb2_phy: hsusb2_phy {
> +		compatible = "usb-nop-xceiv";
> +		reset-supply = <&hsusb2_reset>;
> +		vcc-supply = <&hsusb2_power>;
> +	};
> +
> +};

cheers,
-roger


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH] ARM: dts: omap3-beagle-xm: Add USB Host support for Rev Ax/Bx
  2013-04-15 12:39 ` Roger Quadros
@ 2013-04-17  0:52   ` Tony Lindgren
  2013-04-17  1:30     ` Robert Nelson
  0 siblings, 1 reply; 8+ messages in thread
From: Tony Lindgren @ 2013-04-17  0:52 UTC (permalink / raw)
  To: Roger Quadros
  Cc: b-cousson, linux-omap, linux-arm-kernel, devicetree-discuss,
	linux-kernel

* Roger Quadros <rogerq@ti.com> [130415 05:44]:
> On 04/15/2013 03:35 PM, Roger Quadros wrote:
> > Provide RESET and Power regulators for the USB PHY,
> > the USB Host port mode and the PHY device.
> > 
> > Also provide pin multiplexer information for USB host
> > pins.
> > 
> > This will not work for Rev Cx boards because of reversed logic
> > for USB_POWER_Enable.
> > 
> > CC: Benoît Cousson <b-cousson@ti.com>
> > Signed-off-by: Roger Quadros <rogerq@ti.com>
> > ---
> >  arch/arm/boot/dts/omap3-beagle-xm.dts |   62 +++++++++++++++++++++++++++++++++
> >  1 files changed, 62 insertions(+), 0 deletions(-)
> > 
> > diff --git a/arch/arm/boot/dts/omap3-beagle-xm.dts b/arch/arm/boot/dts/omap3-beagle-xm.dts
> > index 5a31964..d394c51 100644
> > --- a/arch/arm/boot/dts/omap3-beagle-xm.dts
> > +++ b/arch/arm/boot/dts/omap3-beagle-xm.dts
> > @@ -57,6 +57,60 @@
> >  		ti,mcbsp = <&mcbsp2>;
> >  		ti,codec = <&twl_audio>;
> >  	};
> > +
> > +	/* HS USB Port 2 RESET */
> > +	hsusb2_reset: hsusb2_reset_reg {
> > +		compatible = "regulator-fixed";
> > +		regulator-name = "hsusb2_reset";
> > +		regulator-min-microvolt = <3300000>;
> > +		regulator-max-microvolt = <3300000>;
> > +		gpio = <&gpio5 19 0>;	/* gpio_147 */
> > +		startup-delay-us = <70000>;
> > +		enable-active-high;
> > +	};
> > +
> > +	/* HS USB Port 2 Power */
> > +	hsusb2_power: hsusb2_power_reg {
> > +		compatible = "regulator-fixed";
> > +		regulator-name = "hsusb2_vbus";
> > +		regulator-min-microvolt = <3300000>;
> > +		regulator-max-microvolt = <3300000>;
> > +		gpio = <&twl_gpio 18 0>;	/* GPIO LEDA */
> > +		startup-delay-us = <70000>;
> > +		enable-active-high;	/* FIXME: active-low for Rev. C */
> 
> Benoit & Tony,
> 
> Any ideas how to tackle the reversed logic for Rev. C boards?

Sounds like we need a shared omap3-beage.dtsi, then omap3-beagle-xm.dts
and omap3-beagle-rev-c.dts. Then xm and rev-c can both include the
common .dtsi.

Regards,

Tony

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH] ARM: dts: omap3-beagle-xm: Add USB Host support for Rev Ax/Bx
  2013-04-17  0:52   ` Tony Lindgren
@ 2013-04-17  1:30     ` Robert Nelson
  2013-04-17  7:56       ` Igor Grinberg
  0 siblings, 1 reply; 8+ messages in thread
From: Robert Nelson @ 2013-04-17  1:30 UTC (permalink / raw)
  To: Tony Lindgren
  Cc: Roger Quadros, devicetree-discuss, linux-omap, b-cousson,
	linux-arm-kernel, linux-kernel

On Tue, Apr 16, 2013 at 7:52 PM, Tony Lindgren <tony@atomide.com> wrote:
> * Roger Quadros <rogerq@ti.com> [130415 05:44]:
>> On 04/15/2013 03:35 PM, Roger Quadros wrote:
>> > Provide RESET and Power regulators for the USB PHY,
>> > the USB Host port mode and the PHY device.
>> >
>> > Also provide pin multiplexer information for USB host
>> > pins.
>> >
>> > This will not work for Rev Cx boards because of reversed logic
>> > for USB_POWER_Enable.
>> >
>> > CC: Benoît Cousson <b-cousson@ti.com>
>> > Signed-off-by: Roger Quadros <rogerq@ti.com>
>> > ---
>> >  arch/arm/boot/dts/omap3-beagle-xm.dts |   62 +++++++++++++++++++++++++++++++++
>> >  1 files changed, 62 insertions(+), 0 deletions(-)
>> >
>> > diff --git a/arch/arm/boot/dts/omap3-beagle-xm.dts b/arch/arm/boot/dts/omap3-beagle-xm.dts
>> > index 5a31964..d394c51 100644
>> > --- a/arch/arm/boot/dts/omap3-beagle-xm.dts
>> > +++ b/arch/arm/boot/dts/omap3-beagle-xm.dts
>> > @@ -57,6 +57,60 @@
>> >             ti,mcbsp = <&mcbsp2>;
>> >             ti,codec = <&twl_audio>;
>> >     };
>> > +
>> > +   /* HS USB Port 2 RESET */
>> > +   hsusb2_reset: hsusb2_reset_reg {
>> > +           compatible = "regulator-fixed";
>> > +           regulator-name = "hsusb2_reset";
>> > +           regulator-min-microvolt = <3300000>;
>> > +           regulator-max-microvolt = <3300000>;
>> > +           gpio = <&gpio5 19 0>;   /* gpio_147 */
>> > +           startup-delay-us = <70000>;
>> > +           enable-active-high;
>> > +   };
>> > +
>> > +   /* HS USB Port 2 Power */
>> > +   hsusb2_power: hsusb2_power_reg {
>> > +           compatible = "regulator-fixed";
>> > +           regulator-name = "hsusb2_vbus";
>> > +           regulator-min-microvolt = <3300000>;
>> > +           regulator-max-microvolt = <3300000>;
>> > +           gpio = <&twl_gpio 18 0>;        /* GPIO LEDA */
>> > +           startup-delay-us = <70000>;
>> > +           enable-active-high;     /* FIXME: active-low for Rev. C */
>>
>> Benoit & Tony,
>>
>> Any ideas how to tackle the reversed logic for Rev. C boards?
>
> Sounds like we need a shared omap3-beage.dtsi, then omap3-beagle-xm.dts
> and omap3-beagle-rev-c.dts. Then xm and rev-c can both include the

Bike-sheding, but we might want to make that "omap3-beagle-xmc.dts" as
there is the "rev c" variant of the original beagle...

It's too bad we can't read the 3 gpio pin states in the device tree
and make a decision.

Regards,

-- 
Robert Nelson
http://www.rcn-ee.com/

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH] ARM: dts: omap3-beagle-xm: Add USB Host support for Rev Ax/Bx
  2013-04-17  1:30     ` Robert Nelson
@ 2013-04-17  7:56       ` Igor Grinberg
  2013-04-17  8:38         ` Roger Quadros
  0 siblings, 1 reply; 8+ messages in thread
From: Igor Grinberg @ 2013-04-17  7:56 UTC (permalink / raw)
  To: Robert Nelson
  Cc: Tony Lindgren, Roger Quadros, devicetree-discuss, linux-omap,
	b-cousson, linux-arm-kernel, linux-kernel

On 04/17/13 04:30, Robert Nelson wrote:
> On Tue, Apr 16, 2013 at 7:52 PM, Tony Lindgren <tony@atomide.com> wrote:
>> * Roger Quadros <rogerq@ti.com> [130415 05:44]:
>>> On 04/15/2013 03:35 PM, Roger Quadros wrote:
>>>> Provide RESET and Power regulators for the USB PHY,
>>>> the USB Host port mode and the PHY device.
>>>>
>>>> Also provide pin multiplexer information for USB host
>>>> pins.
>>>>
>>>> This will not work for Rev Cx boards because of reversed logic
>>>> for USB_POWER_Enable.
>>>>
>>>> CC: Benoît Cousson <b-cousson@ti.com>
>>>> Signed-off-by: Roger Quadros <rogerq@ti.com>
>>>> ---
>>>>  arch/arm/boot/dts/omap3-beagle-xm.dts |   62 +++++++++++++++++++++++++++++++++
>>>>  1 files changed, 62 insertions(+), 0 deletions(-)
>>>>
>>>> diff --git a/arch/arm/boot/dts/omap3-beagle-xm.dts b/arch/arm/boot/dts/omap3-beagle-xm.dts
>>>> index 5a31964..d394c51 100644
>>>> --- a/arch/arm/boot/dts/omap3-beagle-xm.dts
>>>> +++ b/arch/arm/boot/dts/omap3-beagle-xm.dts
>>>> @@ -57,6 +57,60 @@
>>>>             ti,mcbsp = <&mcbsp2>;
>>>>             ti,codec = <&twl_audio>;
>>>>     };
>>>> +
>>>> +   /* HS USB Port 2 RESET */
>>>> +   hsusb2_reset: hsusb2_reset_reg {
>>>> +           compatible = "regulator-fixed";
>>>> +           regulator-name = "hsusb2_reset";
>>>> +           regulator-min-microvolt = <3300000>;
>>>> +           regulator-max-microvolt = <3300000>;
>>>> +           gpio = <&gpio5 19 0>;   /* gpio_147 */
>>>> +           startup-delay-us = <70000>;
>>>> +           enable-active-high;
>>>> +   };
>>>> +
>>>> +   /* HS USB Port 2 Power */
>>>> +   hsusb2_power: hsusb2_power_reg {
>>>> +           compatible = "regulator-fixed";
>>>> +           regulator-name = "hsusb2_vbus";
>>>> +           regulator-min-microvolt = <3300000>;
>>>> +           regulator-max-microvolt = <3300000>;
>>>> +           gpio = <&twl_gpio 18 0>;        /* GPIO LEDA */
>>>> +           startup-delay-us = <70000>;
>>>> +           enable-active-high;     /* FIXME: active-low for Rev. C */
>>>
>>> Benoit & Tony,
>>>
>>> Any ideas how to tackle the reversed logic for Rev. C boards?
>>
>> Sounds like we need a shared omap3-beage.dtsi, then omap3-beagle-xm.dts
>> and omap3-beagle-rev-c.dts. Then xm and rev-c can both include the
> 
> Bike-sheding, but we might want to make that "omap3-beagle-xmc.dts" as
> there is the "rev c" variant of the original beagle...
> 
> It's too bad we can't read the 3 gpio pin states in the device tree
> and make a decision.

I would recommend to move the detection to the boot loader and
adjust the DT blob at run time (in the boot loader).
This way, we will not need to deal with all the (sub)revision stuff.


-- 
Regards,
Igor.

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH] ARM: dts: omap3-beagle-xm: Add USB Host support for Rev Ax/Bx
  2013-04-17  7:56       ` Igor Grinberg
@ 2013-04-17  8:38         ` Roger Quadros
  2013-04-17 12:26           ` Igor Grinberg
  0 siblings, 1 reply; 8+ messages in thread
From: Roger Quadros @ 2013-04-17  8:38 UTC (permalink / raw)
  To: Igor Grinberg, Tony Lindgren
  Cc: Robert Nelson, devicetree-discuss, linux-omap, b-cousson,
	linux-arm-kernel, linux-kernel

On 04/17/2013 10:56 AM, Igor Grinberg wrote:
> On 04/17/13 04:30, Robert Nelson wrote:
>> On Tue, Apr 16, 2013 at 7:52 PM, Tony Lindgren <tony@atomide.com> wrote:
>>> * Roger Quadros <rogerq@ti.com> [130415 05:44]:
>>>> On 04/15/2013 03:35 PM, Roger Quadros wrote:
>>>>> Provide RESET and Power regulators for the USB PHY,
>>>>> the USB Host port mode and the PHY device.
>>>>>
>>>>> Also provide pin multiplexer information for USB host
>>>>> pins.
>>>>>
>>>>> This will not work for Rev Cx boards because of reversed logic
>>>>> for USB_POWER_Enable.
>>>>>
>>>>> CC: Benoît Cousson <b-cousson@ti.com>
>>>>> Signed-off-by: Roger Quadros <rogerq@ti.com>
>>>>> ---
>>>>>  arch/arm/boot/dts/omap3-beagle-xm.dts |   62 +++++++++++++++++++++++++++++++++
>>>>>  1 files changed, 62 insertions(+), 0 deletions(-)
>>>>>
>>>>> diff --git a/arch/arm/boot/dts/omap3-beagle-xm.dts b/arch/arm/boot/dts/omap3-beagle-xm.dts
>>>>> index 5a31964..d394c51 100644
>>>>> --- a/arch/arm/boot/dts/omap3-beagle-xm.dts
>>>>> +++ b/arch/arm/boot/dts/omap3-beagle-xm.dts
>>>>> @@ -57,6 +57,60 @@
>>>>>             ti,mcbsp = <&mcbsp2>;
>>>>>             ti,codec = <&twl_audio>;
>>>>>     };
>>>>> +
>>>>> +   /* HS USB Port 2 RESET */
>>>>> +   hsusb2_reset: hsusb2_reset_reg {
>>>>> +           compatible = "regulator-fixed";
>>>>> +           regulator-name = "hsusb2_reset";
>>>>> +           regulator-min-microvolt = <3300000>;
>>>>> +           regulator-max-microvolt = <3300000>;
>>>>> +           gpio = <&gpio5 19 0>;   /* gpio_147 */
>>>>> +           startup-delay-us = <70000>;
>>>>> +           enable-active-high;
>>>>> +   };
>>>>> +
>>>>> +   /* HS USB Port 2 Power */
>>>>> +   hsusb2_power: hsusb2_power_reg {
>>>>> +           compatible = "regulator-fixed";
>>>>> +           regulator-name = "hsusb2_vbus";
>>>>> +           regulator-min-microvolt = <3300000>;
>>>>> +           regulator-max-microvolt = <3300000>;
>>>>> +           gpio = <&twl_gpio 18 0>;        /* GPIO LEDA */
>>>>> +           startup-delay-us = <70000>;
>>>>> +           enable-active-high;     /* FIXME: active-low for Rev. C */
>>>>
>>>> Benoit & Tony,
>>>>
>>>> Any ideas how to tackle the reversed logic for Rev. C boards?
>>>
>>> Sounds like we need a shared omap3-beage.dtsi, then omap3-beagle-xm.dts
>>> and omap3-beagle-rev-c.dts. Then xm and rev-c can both include the
>>
>> Bike-sheding, but we might want to make that "omap3-beagle-xmc.dts" as
>> there is the "rev c" variant of the original beagle...
>>
>> It's too bad we can't read the 3 gpio pin states in the device tree
>> and make a decision.
> 
> I would recommend to move the detection to the boot loader and
> adjust the DT blob at run time (in the boot loader).
> This way, we will not need to deal with all the (sub)revision stuff.
> 
> 
Moving the detection to bootloader is fine, but modifying the DT at
runtime would create a debug/maintenance issue. Instead it could just
pick one of the .DTBs and pass it to kernel.

Since most users will be using rev-c, I think we should keep the original
file 'omap3-beagle-xm.dts" as it is for rev-c boards.
I can just create a new dts file for Revisions A and B that will be
like so.

+++ b/arch/arm/boot/dts/omap3-beagle-xm-ab.dts
@@ -0,0 +1,6 @@
+/include/ "omap3-beagle-xm.dts"
+
+/* On Rev A/B USBHOST_PWR_EN is active high */
+&hsusb2_power {
+       enable-active-high;
+};

Since omap3-beagle and omap3-beagle-xm use different SoC versions and have
quite many differences, I don't think it is a good idea to create a common
file between the two.

cheers,
-roger

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH] ARM: dts: omap3-beagle-xm: Add USB Host support for Rev Ax/Bx
  2013-04-17  8:38         ` Roger Quadros
@ 2013-04-17 12:26           ` Igor Grinberg
  2013-04-17 17:11             ` Tony Lindgren
  0 siblings, 1 reply; 8+ messages in thread
From: Igor Grinberg @ 2013-04-17 12:26 UTC (permalink / raw)
  To: Roger Quadros
  Cc: Tony Lindgren, Robert Nelson, devicetree-discuss, linux-omap,
	b-cousson, linux-arm-kernel, linux-kernel

On 04/17/13 11:38, Roger Quadros wrote:
> On 04/17/2013 10:56 AM, Igor Grinberg wrote:
>> On 04/17/13 04:30, Robert Nelson wrote:
>>> On Tue, Apr 16, 2013 at 7:52 PM, Tony Lindgren <tony@atomide.com> wrote:
>>>> * Roger Quadros <rogerq@ti.com> [130415 05:44]:
>>>>> On 04/15/2013 03:35 PM, Roger Quadros wrote:
>>>>>> Provide RESET and Power regulators for the USB PHY,
>>>>>> the USB Host port mode and the PHY device.
>>>>>>
>>>>>> Also provide pin multiplexer information for USB host
>>>>>> pins.
>>>>>>
>>>>>> This will not work for Rev Cx boards because of reversed logic
>>>>>> for USB_POWER_Enable.
>>>>>>
>>>>>> CC: Benoît Cousson <b-cousson@ti.com>
>>>>>> Signed-off-by: Roger Quadros <rogerq@ti.com>
>>>>>> ---
>>>>>>  arch/arm/boot/dts/omap3-beagle-xm.dts |   62 +++++++++++++++++++++++++++++++++
>>>>>>  1 files changed, 62 insertions(+), 0 deletions(-)
>>>>>>
>>>>>> diff --git a/arch/arm/boot/dts/omap3-beagle-xm.dts b/arch/arm/boot/dts/omap3-beagle-xm.dts
>>>>>> index 5a31964..d394c51 100644
>>>>>> --- a/arch/arm/boot/dts/omap3-beagle-xm.dts
>>>>>> +++ b/arch/arm/boot/dts/omap3-beagle-xm.dts
>>>>>> @@ -57,6 +57,60 @@
>>>>>>             ti,mcbsp = <&mcbsp2>;
>>>>>>             ti,codec = <&twl_audio>;
>>>>>>     };
>>>>>> +
>>>>>> +   /* HS USB Port 2 RESET */
>>>>>> +   hsusb2_reset: hsusb2_reset_reg {
>>>>>> +           compatible = "regulator-fixed";
>>>>>> +           regulator-name = "hsusb2_reset";
>>>>>> +           regulator-min-microvolt = <3300000>;
>>>>>> +           regulator-max-microvolt = <3300000>;
>>>>>> +           gpio = <&gpio5 19 0>;   /* gpio_147 */
>>>>>> +           startup-delay-us = <70000>;
>>>>>> +           enable-active-high;
>>>>>> +   };
>>>>>> +
>>>>>> +   /* HS USB Port 2 Power */
>>>>>> +   hsusb2_power: hsusb2_power_reg {
>>>>>> +           compatible = "regulator-fixed";
>>>>>> +           regulator-name = "hsusb2_vbus";
>>>>>> +           regulator-min-microvolt = <3300000>;
>>>>>> +           regulator-max-microvolt = <3300000>;
>>>>>> +           gpio = <&twl_gpio 18 0>;        /* GPIO LEDA */
>>>>>> +           startup-delay-us = <70000>;
>>>>>> +           enable-active-high;     /* FIXME: active-low for Rev. C */
>>>>>
>>>>> Benoit & Tony,
>>>>>
>>>>> Any ideas how to tackle the reversed logic for Rev. C boards?
>>>>
>>>> Sounds like we need a shared omap3-beage.dtsi, then omap3-beagle-xm.dts
>>>> and omap3-beagle-rev-c.dts. Then xm and rev-c can both include the
>>>
>>> Bike-sheding, but we might want to make that "omap3-beagle-xmc.dts" as
>>> there is the "rev c" variant of the original beagle...
>>>
>>> It's too bad we can't read the 3 gpio pin states in the device tree
>>> and make a decision.
>>
>> I would recommend to move the detection to the boot loader and
>> adjust the DT blob at run time (in the boot loader).
>> This way, we will not need to deal with all the (sub)revision stuff.
>>
>>
> Moving the detection to bootloader is fine, but modifying the DT at
> runtime would create a debug/maintenance issue. Instead it could just
> pick one of the .DTBs and pass it to kernel.

Like this will not create create any debug/maintenance issues.... ;-)
We have no problem with debug, as all the DT nodes can be seen in
both U-Boot (with fdt commands) and Linux through procfs...

I've just dropped my 2 cents and I don't really insist...

> 
> Since most users will be using rev-c, I think we should keep the original
> file 'omap3-beagle-xm.dts" as it is for rev-c boards.
> I can just create a new dts file for Revisions A and B that will be
> like so.
> 
> +++ b/arch/arm/boot/dts/omap3-beagle-xm-ab.dts
> @@ -0,0 +1,6 @@
> +/include/ "omap3-beagle-xm.dts"
> +
> +/* On Rev A/B USBHOST_PWR_EN is active high */
> +&hsusb2_power {
> +       enable-active-high;
> +};
> 
> Since omap3-beagle and omap3-beagle-xm use different SoC versions and have
> quite many differences, I don't think it is a good idea to create a common
> file between the two.
> 
> cheers,
> -roger
> 

-- 
Regards,
Igor.

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH] ARM: dts: omap3-beagle-xm: Add USB Host support for Rev Ax/Bx
  2013-04-17 12:26           ` Igor Grinberg
@ 2013-04-17 17:11             ` Tony Lindgren
  0 siblings, 0 replies; 8+ messages in thread
From: Tony Lindgren @ 2013-04-17 17:11 UTC (permalink / raw)
  To: Igor Grinberg
  Cc: Roger Quadros, Robert Nelson, devicetree-discuss, linux-omap,
	b-cousson, linux-arm-kernel, linux-kernel

* Igor Grinberg <grinberg@compulab.co.il> [130417 05:31]:
> On 04/17/13 11:38, Roger Quadros wrote:
> > On 04/17/2013 10:56 AM, Igor Grinberg wrote:
> >> On 04/17/13 04:30, Robert Nelson wrote:
> >>> On Tue, Apr 16, 2013 at 7:52 PM, Tony Lindgren <tony@atomide.com> wrote:
> >>>> * Roger Quadros <rogerq@ti.com> [130415 05:44]:
> >>>>> On 04/15/2013 03:35 PM, Roger Quadros wrote:
> >>>>>> Provide RESET and Power regulators for the USB PHY,
> >>>>>> the USB Host port mode and the PHY device.
> >>>>>>
> >>>>>> Also provide pin multiplexer information for USB host
> >>>>>> pins.
> >>>>>>
> >>>>>> This will not work for Rev Cx boards because of reversed logic
> >>>>>> for USB_POWER_Enable.
> >>>>>>
> >>>>>> CC: Benoît Cousson <b-cousson@ti.com>
> >>>>>> Signed-off-by: Roger Quadros <rogerq@ti.com>
> >>>>>> ---
> >>>>>>  arch/arm/boot/dts/omap3-beagle-xm.dts |   62 +++++++++++++++++++++++++++++++++
> >>>>>>  1 files changed, 62 insertions(+), 0 deletions(-)
> >>>>>>
> >>>>>> diff --git a/arch/arm/boot/dts/omap3-beagle-xm.dts b/arch/arm/boot/dts/omap3-beagle-xm.dts
> >>>>>> index 5a31964..d394c51 100644
> >>>>>> --- a/arch/arm/boot/dts/omap3-beagle-xm.dts
> >>>>>> +++ b/arch/arm/boot/dts/omap3-beagle-xm.dts
> >>>>>> @@ -57,6 +57,60 @@
> >>>>>>             ti,mcbsp = <&mcbsp2>;
> >>>>>>             ti,codec = <&twl_audio>;
> >>>>>>     };
> >>>>>> +
> >>>>>> +   /* HS USB Port 2 RESET */
> >>>>>> +   hsusb2_reset: hsusb2_reset_reg {
> >>>>>> +           compatible = "regulator-fixed";
> >>>>>> +           regulator-name = "hsusb2_reset";
> >>>>>> +           regulator-min-microvolt = <3300000>;
> >>>>>> +           regulator-max-microvolt = <3300000>;
> >>>>>> +           gpio = <&gpio5 19 0>;   /* gpio_147 */
> >>>>>> +           startup-delay-us = <70000>;
> >>>>>> +           enable-active-high;
> >>>>>> +   };
> >>>>>> +
> >>>>>> +   /* HS USB Port 2 Power */
> >>>>>> +   hsusb2_power: hsusb2_power_reg {
> >>>>>> +           compatible = "regulator-fixed";
> >>>>>> +           regulator-name = "hsusb2_vbus";
> >>>>>> +           regulator-min-microvolt = <3300000>;
> >>>>>> +           regulator-max-microvolt = <3300000>;
> >>>>>> +           gpio = <&twl_gpio 18 0>;        /* GPIO LEDA */
> >>>>>> +           startup-delay-us = <70000>;
> >>>>>> +           enable-active-high;     /* FIXME: active-low for Rev. C */
> >>>>>
> >>>>> Benoit & Tony,
> >>>>>
> >>>>> Any ideas how to tackle the reversed logic for Rev. C boards?
> >>>>
> >>>> Sounds like we need a shared omap3-beage.dtsi, then omap3-beagle-xm.dts
> >>>> and omap3-beagle-rev-c.dts. Then xm and rev-c can both include the
> >>>
> >>> Bike-sheding, but we might want to make that "omap3-beagle-xmc.dts" as
> >>> there is the "rev c" variant of the original beagle...
> >>>
> >>> It's too bad we can't read the 3 gpio pin states in the device tree
> >>> and make a decision.
> >>
> >> I would recommend to move the detection to the boot loader and
> >> adjust the DT blob at run time (in the boot loader).
> >> This way, we will not need to deal with all the (sub)revision stuff.
> >>
> >>
> > Moving the detection to bootloader is fine, but modifying the DT at
> > runtime would create a debug/maintenance issue. Instead it could just
> > pick one of the .DTBs and pass it to kernel.
> 
> Like this will not create create any debug/maintenance issues.... ;-)
> We have no problem with debug, as all the DT nodes can be seen in
> both U-Boot (with fdt commands) and Linux through procfs...
> 
> I've just dropped my 2 cents and I don't really insist...

The dynamic configuration from the bootloader can also be done too, I
don't think they are mutually exclusive. 
 
> > Since most users will be using rev-c, I think we should keep the original
> > file 'omap3-beagle-xm.dts" as it is for rev-c boards.
> > I can just create a new dts file for Revisions A and B that will be
> > like so.
> > 
> > +++ b/arch/arm/boot/dts/omap3-beagle-xm-ab.dts
> > @@ -0,0 +1,6 @@
> > +/include/ "omap3-beagle-xm.dts"
> > +
> > +/* On Rev A/B USBHOST_PWR_EN is active high */
> > +&hsusb2_power {
> > +       enable-active-high;
> > +};
> > 
> > Since omap3-beagle and omap3-beagle-xm use different SoC versions and have
> > quite many differences, I don't think it is a good idea to create a common
> > file between the two.

Sounds good to me. But please also add the revision info to the compatible
flags for both .dts files.

Regards,

Tony

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2013-04-17 17:11 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-04-15 12:35 [PATCH] ARM: dts: omap3-beagle-xm: Add USB Host support for Rev Ax/Bx Roger Quadros
2013-04-15 12:39 ` Roger Quadros
2013-04-17  0:52   ` Tony Lindgren
2013-04-17  1:30     ` Robert Nelson
2013-04-17  7:56       ` Igor Grinberg
2013-04-17  8:38         ` Roger Quadros
2013-04-17 12:26           ` Igor Grinberg
2013-04-17 17:11             ` Tony Lindgren

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).