Re: [PATCH] ARM-i.MX6Q-dts : Added USB_OTG Support

2014-01-24 Thread Sascha Hauer
Please add Phytec phyFLEX-i.MX6 to the subject. I assumed some SoC
specific changes here.

Sascha

On Fri, Jan 24, 2014 at 02:58:44PM +0530, Ashutosh singh wrote:
> This patch adds support for USB_OTG on Phytec phyFLEX-i.MX6 Quad module.
> 
> Signed-off-by: Ashutosh singh 
> ---
>  arch/arm/boot/dts/imx6q-phytec-pbab01.dts  |4 
>  arch/arm/boot/dts/imx6q-phytec-pfla02.dtsi |   22 ++
>  2 files changed, 26 insertions(+)
> 
> diff --git a/arch/arm/boot/dts/imx6q-phytec-pbab01.dts 
> b/arch/arm/boot/dts/imx6q-phytec-pbab01.dts
> index 7d37ec6..39e69bd 100644
> --- a/arch/arm/boot/dts/imx6q-phytec-pbab01.dts
> +++ b/arch/arm/boot/dts/imx6q-phytec-pbab01.dts
> @@ -32,3 +32,7 @@
>  &usdhc3 {
>   status = "okay";
>  };
> +
> +&usbotg {
> + status = "okay";
> +};
> diff --git a/arch/arm/boot/dts/imx6q-phytec-pfla02.dtsi 
> b/arch/arm/boot/dts/imx6q-phytec-pfla02.dtsi
> index 1a3b50d..dcb1d59 100644
> --- a/arch/arm/boot/dts/imx6q-phytec-pfla02.dtsi
> +++ b/arch/arm/boot/dts/imx6q-phytec-pfla02.dtsi
> @@ -18,6 +18,19 @@
>   memory {
>   reg = <0x1000 0x8000>;
>   };
> +
> + regulators {
> + compatible = "simple-bus";
> +
> + reg_usb_otg_vbus: usb_otg_vbus {
> + compatible = "regulator-fixed";
> + regulator-name = "usb_otg_vbus";
> + regulator-min-microvolt = <500>;
> + regulator-max-microvolt = <500>;
> + gpio = <&gpio4 15 0>;
> + enable-active-low;
> + };
> + };
>  };
>  
>  &ecspi3 {
> @@ -134,6 +147,7 @@
>   MX6QDL_PAD_EIM_D23__GPIO3_IO23 0x8000
>   MX6QDL_PAD_DISP0_DAT3__GPIO4_IO24 0x8000 /* 
> SPI NOR chipselect */
>   MX6QDL_PAD_DI0_PIN15__GPIO4_IO17  0x8000 /* 
> PMIC interrupt */
> + MX6QDL_PAD_KEY_ROW4__GPIO4_IO15   0x8000 /* 
> USB_OTG_PWR_EN */
>   >;
>   };
>   };
> @@ -178,3 +192,11 @@
>  wp-gpios = <&gpio1 29 0>;
>  status = "disabled";
>  };
> +
> +&usbotg {
> + vbus-supply = <®_usb_otg_vbus>;
> + pinctrl-names = "default";
> + pinctrl-0 = <&pinctrl_usbotg_1>;
> + disable-over-current;
> + status = "disabled";
> +};
> -- 
> 1.7.9.5
> 
> --
> To unsubscribe from this list: send the line "unsubscribe devicetree" in
> the body of a message to majord...@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 

-- 
Pengutronix e.K.   | |
Industrial Linux Solutions | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0|
Amtsgericht Hildesheim, HRA 2686   | Fax:   +49-5121-206917- |
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] ARM-i.MX6Q-dts : Added USB_OTG Support

2014-01-24 Thread Mark Rutland
On Fri, Jan 24, 2014 at 12:15:08PM +, Fabio Estevam wrote:
> Hi Mark,
> 
> On Fri, Jan 24, 2014 at 9:50 AM, Mark Rutland  wrote:
> 
> >> +
> >> + regulators {
> >> + compatible = "simple-bus";
> >
> > This is _not_ a simple bus. It doesn't have the required ranges
> > property.
> >
> > Why do these need to be in a regulators container node? We don't group
> > dma controllers under a dmas node, or uarts under a uarts node.
> 
> It seems we have this same issue on several imx6 dts files.
> 
> Would the below address your suggestion?

The below patch looks good to me.

In general there seems to be a misunderstanding of the purpose of
simple-bus, as an annotation that children of a node should be probed,
rather than as a representation of a simple bus (which is of the same
type as the parent-bus, which requires no programming, where children
can be used without knowledge of the simple-bus).

There seem to be a lot of cases where simple-bus is used as a fallback
compatible string, when in reality the node's children make no sense
without information from and/or programming of the node with the
simple-bus property. Those cases are completely wrong, and a complete
abuse of simple-bus.

There are other cases where simple-bus nodes are used to group nodes
from a commonly reused block. As long as these have the requisite
ranges, #address-cells, and #size-cells, then they are valid, and make
sense for translating / widening addresses for common groups of
peripherals even if they're not on a different physical bus.

I don't see the point in grouping together nodes in an artificial
container because of their functionality rather than their topology, it
seems to breed confusion. 

Cheers,
Mark.

> 
> diff --git a/arch/arm/boot/dts/imx6qdl-sabresd.dtsi 
> b/arch/arm/boot/dts/imx6qdl-
> index e75e11b..ba35560 100644
> --- a/arch/arm/boot/dts/imx6qdl-sabresd.dtsi
> +++ b/arch/arm/boot/dts/imx6qdl-sabresd.dtsi
> @@ -15,33 +15,29 @@
> reg = <0x1000 0x4000>;
> };
> 
> -   regulators {
> -   compatible = "simple-bus";
> -
> -   reg_usb_otg_vbus: usb_otg_vbus {
> -   compatible = "regulator-fixed";
> -   regulator-name = "usb_otg_vbus";
> -   regulator-min-microvolt = <500>;
> -   regulator-max-microvolt = <500>;
> -   gpio = <&gpio3 22 0>;
> -   enable-active-high;
> -   };
> +   reg_usb_otg_vbus: regulator@0 {
> +   compatible = "regulator-fixed";
> +   regulator-name = "usb_otg_vbus";
> +   regulator-min-microvolt = <500>;
> +   regulator-max-microvolt = <500>;
> +   gpio = <&gpio3 22 0>;
> +   enable-active-high;
> +   };
> 
> -   reg_usb_h1_vbus: usb_h1_vbus {
> -   compatible = "regulator-fixed";
> -   regulator-name = "usb_h1_vbus";
> -   regulator-min-microvolt = <500>;
> -   regulator-max-microvolt = <500>;
> -   gpio = <&gpio1 29 0>;
> -   enable-active-high;
> -   };
> +   reg_usb_h1_vbus: regulator@1 {
> +   compatible = "regulator-fixed";
> +   regulator-name = "usb_h1_vbus";
> +   regulator-min-microvolt = <500>;
> +   regulator-max-microvolt = <500>;
> +   gpio = <&gpio1 29 0>;
> +   enable-active-high;
> +   };
> 
> -   reg_audio: wm8962_supply {
> -   compatible = "regulator-fixed";
> -   regulator-name = "wm8962-supply";
> -   gpio = <&gpio4 10 0>;
> -   enable-active-high;
> -   };
> +   reg_audio: regulator@2 {
> +   compatible = "regulator-fixed";
> +   regulator-name = "wm8962-supply";
> +   gpio = <&gpio4 10 0>;
> +   enable-active-high;
> };
> 
> gpio-keys {
> 
> If so, I will prepare some patches to update other dts files.
> 
> Thanks,
> 
> Fabio Estevam
> 
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] ARM-i.MX6Q-dts : Added USB_OTG Support

2014-01-24 Thread Shawn Guo
On Fri, Jan 24, 2014 at 11:50:05AM +, Mark Rutland wrote:
> > @@ -18,6 +18,19 @@
> > memory {
> > reg = <0x1000 0x8000>;
> > };
> > +
> > +   regulators {
> > +   compatible = "simple-bus";
> 
> This is _not_ a simple bus. It doesn't have the required ranges
> property.

Maybe the real question is that if the required ranges property is
missing, why kernel still accepts it as a simple bus and populate the
devices under it?

> 
> Why do these need to be in a regulators container node? We don't group
> dma controllers under a dmas node, or uarts under a uarts node.

Grouping fixed clocks under 'clocks' and fixed regulators under
'regulators' is a common pattern which can be found on most of the ARM
dts files.

Shawn

> 
> > +
> > +   reg_usb_otg_vbus: usb_otg_vbus {
> > +   compatible = "regulator-fixed";
> > +   regulator-name = "usb_otg_vbus";
> > +   regulator-min-microvolt = <500>;
> > +   regulator-max-microvolt = <500>;
> > +   gpio = <&gpio4 15 0>;
> > +   enable-active-low;
> > +   };
> > +   };
> >  };
> 
> Thanks,
> Mark.

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] ARM-i.MX6Q-dts : Added USB_OTG Support

2014-01-24 Thread Fabio Estevam
Hi Mark,

On Fri, Jan 24, 2014 at 9:50 AM, Mark Rutland  wrote:

>> +
>> + regulators {
>> + compatible = "simple-bus";
>
> This is _not_ a simple bus. It doesn't have the required ranges
> property.
>
> Why do these need to be in a regulators container node? We don't group
> dma controllers under a dmas node, or uarts under a uarts node.

It seems we have this same issue on several imx6 dts files.

Would the below address your suggestion?

diff --git a/arch/arm/boot/dts/imx6qdl-sabresd.dtsi b/arch/arm/boot/dts/imx6qdl-
index e75e11b..ba35560 100644
--- a/arch/arm/boot/dts/imx6qdl-sabresd.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-sabresd.dtsi
@@ -15,33 +15,29 @@
reg = <0x1000 0x4000>;
};

-   regulators {
-   compatible = "simple-bus";
-
-   reg_usb_otg_vbus: usb_otg_vbus {
-   compatible = "regulator-fixed";
-   regulator-name = "usb_otg_vbus";
-   regulator-min-microvolt = <500>;
-   regulator-max-microvolt = <500>;
-   gpio = <&gpio3 22 0>;
-   enable-active-high;
-   };
+   reg_usb_otg_vbus: regulator@0 {
+   compatible = "regulator-fixed";
+   regulator-name = "usb_otg_vbus";
+   regulator-min-microvolt = <500>;
+   regulator-max-microvolt = <500>;
+   gpio = <&gpio3 22 0>;
+   enable-active-high;
+   };

-   reg_usb_h1_vbus: usb_h1_vbus {
-   compatible = "regulator-fixed";
-   regulator-name = "usb_h1_vbus";
-   regulator-min-microvolt = <500>;
-   regulator-max-microvolt = <500>;
-   gpio = <&gpio1 29 0>;
-   enable-active-high;
-   };
+   reg_usb_h1_vbus: regulator@1 {
+   compatible = "regulator-fixed";
+   regulator-name = "usb_h1_vbus";
+   regulator-min-microvolt = <500>;
+   regulator-max-microvolt = <500>;
+   gpio = <&gpio1 29 0>;
+   enable-active-high;
+   };

-   reg_audio: wm8962_supply {
-   compatible = "regulator-fixed";
-   regulator-name = "wm8962-supply";
-   gpio = <&gpio4 10 0>;
-   enable-active-high;
-   };
+   reg_audio: regulator@2 {
+   compatible = "regulator-fixed";
+   regulator-name = "wm8962-supply";
+   gpio = <&gpio4 10 0>;
+   enable-active-high;
};

gpio-keys {

If so, I will prepare some patches to update other dts files.

Thanks,

Fabio Estevam
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] ARM-i.MX6Q-dts : Added USB_OTG Support

2014-01-24 Thread Mark Rutland
On Fri, Jan 24, 2014 at 09:28:44AM +, Ashutosh singh wrote:
> This patch adds support for USB_OTG on Phytec phyFLEX-i.MX6 Quad module.
> 
> Signed-off-by: Ashutosh singh 
> ---
>  arch/arm/boot/dts/imx6q-phytec-pbab01.dts  |4 
>  arch/arm/boot/dts/imx6q-phytec-pfla02.dtsi |   22 ++
>  2 files changed, 26 insertions(+)
> 
> diff --git a/arch/arm/boot/dts/imx6q-phytec-pbab01.dts 
> b/arch/arm/boot/dts/imx6q-phytec-pbab01.dts
> index 7d37ec6..39e69bd 100644
> --- a/arch/arm/boot/dts/imx6q-phytec-pbab01.dts
> +++ b/arch/arm/boot/dts/imx6q-phytec-pbab01.dts
> @@ -32,3 +32,7 @@
>  &usdhc3 {
>   status = "okay";
>  };
> +
> +&usbotg {
> + status = "okay";
> +};
> diff --git a/arch/arm/boot/dts/imx6q-phytec-pfla02.dtsi 
> b/arch/arm/boot/dts/imx6q-phytec-pfla02.dtsi
> index 1a3b50d..dcb1d59 100644
> --- a/arch/arm/boot/dts/imx6q-phytec-pfla02.dtsi
> +++ b/arch/arm/boot/dts/imx6q-phytec-pfla02.dtsi
> @@ -18,6 +18,19 @@
>   memory {
>   reg = <0x1000 0x8000>;
>   };
> +
> + regulators {
> + compatible = "simple-bus";

This is _not_ a simple bus. It doesn't have the required ranges
property.

Why do these need to be in a regulators container node? We don't group
dma controllers under a dmas node, or uarts under a uarts node.

> +
> + reg_usb_otg_vbus: usb_otg_vbus {
> + compatible = "regulator-fixed";
> + regulator-name = "usb_otg_vbus";
> + regulator-min-microvolt = <500>;
> + regulator-max-microvolt = <500>;
> + gpio = <&gpio4 15 0>;
> + enable-active-low;
> + };
> + };
>  };

Thanks,
Mark.
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html