Subject: [PATCH] ARM: dts: omap3-beagle-xm: Add USB Host support for Rev Ax/Bx

From: [email-masked] (Igor Grinberg)
Date: Wed, 17 Apr 2013 10:56:07 +0300

On 04/17/13 04:30, Robert Nelson wrote:
> On Tue, Apr 16, 2013 at 7:52 PM, Tony Lindgren <[email-masked]> wrote:
>> * Roger Quadros <[email-masked]> [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 <[email-masked]>
>>>> Signed-off-by: Roger Quadros <[email-masked]>
>>>> ---
>>>>  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.