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@xxxxxxxxxxx> wrote: >>> * Roger Quadros <rogerq@xxxxxx> [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@xxxxxx> >>>>> Signed-off-by: Roger Quadros <rogerq@xxxxxx> >>>>> --- >>>>> 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 -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html