All of lore.kernel.org
 help / color / mirror / Atom feed
* [RFC POWERPC] booting-without-of: bindings for FHCI USB, GPIO LEDs, MCU, and NAND on UPM
@ 2008-04-22 19:41 Anton Vorontsov
  2008-04-22 20:08 ` Grant Likely
                   ` (2 more replies)
  0 siblings, 3 replies; 11+ messages in thread
From: Anton Vorontsov @ 2008-04-22 19:41 UTC (permalink / raw)
  To: linuxppc-dev

Hi all,

Here is purposed bindings draft for the new drivers that I would like to
send for this or next merge window, depending on results of this RFC. ;-)
(The new bindings needs to be in-tree or at least Acked before I could
send the drivers.)

Comments and suggestions are highly appreciated.

Thanks.

diff --git a/Documentation/powerpc/booting-without-of.txt b/Documentation/powerpc/booting-without-of.txt
index c350623..38fe3e9 100644
--- a/Documentation/powerpc/booting-without-of.txt
+++ b/Documentation/powerpc/booting-without-of.txt
@@ -59,6 +59,11 @@ Table of Contents
       p) Freescale Synchronous Serial Interface
       q) USB EHCI controllers
       r) Freescale General-purpose Timers Module
+      s) Freescale USB Parameter RAM:
+      t) Freescale QUICC Engine USB Controller
+      u) LEDs on GPIOs
+      v) Freescale MCU with MPC8349E-mITX compatible firmware
+      w) NAND on UPM-driven Freescale Localbus
 
   VII - Marvell Discovery mv64[345]6x System Controller chips
     1) The /system-controller node
@@ -2866,6 +2871,139 @@ platforms are moved over to use the flattened-device-tree model.
     	clock-frequency = <0>;
     };
 
+    s) Freescale USB Parameter RAM:
+
+    Required properties:
+      - compatible : should be "fsl,<chip>-qe-muram-usb-pram",
+        "fsl,qe-muram-usb-pram", "fsl,cpm-muram-usb-pram".
+      - reg : should contain USB PRAM location and length.
+
+    Example:
+
+	usb-pram@8b00 {
+		compatible = "fsl,mpc8360-qe-muram-usb-pram",
+			     "fsl,qe-muram-usb-pram",
+			     "fsl,cpm-muram-usb-pram";
+		reg = <0x8b00 0x100>;
+	};
+
+    t) Freescale QUICC Engine USB Controller
+
+    Required properties:
+      - compatible : should be "fsl,<chip>-qe-usb", "fsl,qe-usb",
+        "fsl,usb-fhci"
+      - reg : should contain gtm registers location and length.
+      - interrupts : should contain USB interrupt.
+      - interrupt-parent : interrupt source phandle.
+      - fsl,fullspeed-clock : specifies the full speed USB clock source.
+      - fsl,lowspeed-clock : specifies the low speed USB clock source.
+      - fsl,usb-mode : should be "host".
+      - linux,hub-power-budget : optional, USB power budget for the root hub
+        in mA.
+      - gpios : should specify GPIOs in this order: USBOE, USBTP, USBTN, USBRP,
+        USBRN, SPEED (optional), and SUSPEND (optional).
+
+    Example:
+
+	usb@6c0 {
+		compatible = "fsl,mpc8360-qe-usb", "fsl,qe-usb",
+			     "fsl,usb-fhci";
+		reg = <0x6c0 0x40>;
+		interrupts = <11>;
+		interrupt-parent = <&qeic>;
+		fsl,fullspeed-clock = "clk21";
+		fsl,usb-mode = "host";
+		gpios = <&qe_pio_b  2 0 /* USBOE */
+			 &qe_pio_b  3 0 /* USBTP */
+			 &qe_pio_b  8 0 /* USBTN */
+			 &qe_pio_b  9 0 /* USBRP */
+			 &qe_pio_b 11 0 /* USBRN */
+			 &qe_pio_e 20 0 /* SPEED */
+			 &qe_pio_e 21 0 /* SUSPN */>;
+	};
+
+    u) LEDs on GPIOs
+
+    Required properties:
+      - compatible : should be "linux,gpio-led".
+      - linux,name : LED name.
+      - linux,active-low : property should be present if LED wired as
+        active-low.
+      - linux,default-trigger : Linux default trigger for this LED.
+      - linux,brightness : default brightness.
+      - gpios : should specify LED GPIO.
+
+    Example:
+
+	led@0 {
+		compatible = "linux,gpio-led";
+		linux,name = "pwr";
+		linux,brightness = <1>;
+		linux,active-low;
+		gpios = <&mcu_pio 0>;
+	};
+
+	led@1 {
+	        compatible = "linux,gpio-led";
+	        linux,name = "hdd";
+	        linux,default-trigger = "ide-disk";
+		linux,active-low;
+		gpios = <&mcu_pio 1>;
+	};
+
+    v) Freescale MCU with MPC8349E-mITX compatible firmware
+
+    Required properties:
+      - compatible : "fsl,<mcu-chip>-<board>", "fsl,mcu-mpc8349emitx",
+        "simple-bus";
+      - reg : should specify I2C address (0x0a).
+      - #address-cells : should be 0.
+      - #size-cells : should be 0.
+      - #gpio-cells : should be 1.
+      - gpio-controller : should be present;
+
+    Example:
+
+	mcu_pio: mcu@0a {
+		#address-cells = <0>;
+		#size-cells = <0>;
+		#gpio-cells = <1>;
+		compatible = "fsl,mc9s08qg8-mpc8349emitx",
+			     "fsl,mcu-mpc8349emitx",
+			     "simple-bus";
+		reg = <0x0a>;
+		gpio-controller;
+	};
+
+    w) NAND on UPM-driven Freescale Localbus
+
+      Required properties:
+      - compatible : "fsl,upm-nand".
+      - reg : should specify localbus chip select and size used for the chip.
+      - width : should specify port size in bytes.
+      - fsl,upm-addr-offset : UPM pattern offset for the address latch.
+      - fsl,upm-cmd-offset : UPM pattern offset for the command latch.
+      - fsl,wait-pattern : should be present if NAND chip requires waiting
+        for Ready-Not-Busy pin after each executed pattern.
+      - fsl,wait-write : should be present if NAND chip needs waiting on
+        Ready-Not-Busy pin after each write cycle.
+      - linux,chip-delay : optional, may contain delay value in milliseconds
+        (in case when Ready-Not-Busy pin was unspecified).
+      - gpios : may specify optional GPIO connected to the Ready-Not-Busy pin.
+
+      Example:
+
+	flash@1,0 {
+		compatible = "stmicro,NAND512W3A2BN6E", "fsl,upm-nand";
+		reg = <1 0 1>;
+		width = <1>;
+		fsl,upm-addr-offset = <16>;
+		fsl,upm-cmd-offset = <8>;
+		fsl,wait-pattern;
+		fsl,wait-write;
+		gpios = <&qe_pio_e 18 0>;
+	};
+
 VII - Marvell Discovery mv64[345]6x System Controller chips
 ===========================================================
 

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

* Re: [RFC POWERPC] booting-without-of: bindings for FHCI USB, GPIO LEDs, MCU, and NAND on UPM
  2008-04-22 19:41 [RFC POWERPC] booting-without-of: bindings for FHCI USB, GPIO LEDs, MCU, and NAND on UPM Anton Vorontsov
@ 2008-04-22 20:08 ` Grant Likely
  2008-04-22 20:20   ` Scott Wood
                     ` (2 more replies)
  2008-04-23  9:15 ` Laurent Pinchart
  2008-04-24 17:52 ` [RFCv2 " Anton Vorontsov
  2 siblings, 3 replies; 11+ messages in thread
From: Grant Likely @ 2008-04-22 20:08 UTC (permalink / raw)
  To: avorontsov; +Cc: linuxppc-dev

On Tue, Apr 22, 2008 at 1:41 PM, Anton Vorontsov
<avorontsov@ru.mvista.com> wrote:
> Hi all,
>
> Here is purposed bindings draft for the new drivers that I would like to
> send for this or next merge window, depending on results of this RFC. ;-)
> (The new bindings needs to be in-tree or at least Acked before I could
> send the drivers.)
>
> Comments and suggestions are highly appreciated.

Thanks for cc'ing me.  Mostly looks good, comments below.

Cheers,
g.

> diff --git a/Documentation/powerpc/booting-without-of.txt b/Documentation/powerpc/booting-without-of.txt
> index c350623..38fe3e9 100644
> --- a/Documentation/powerpc/booting-without-of.txt
> +++ b/Documentation/powerpc/booting-without-of.txt
> @@ -59,6 +59,11 @@ Table of Contents
>       p) Freescale Synchronous Serial Interface
>       q) USB EHCI controllers
>       r) Freescale General-purpose Timers Module
> +      s) Freescale USB Parameter RAM:
> +      t) Freescale QUICC Engine USB Controller
> +      u) LEDs on GPIOs
> +      v) Freescale MCU with MPC8349E-mITX compatible firmware
> +      w) NAND on UPM-driven Freescale Localbus
>
>   VII - Marvell Discovery mv64[345]6x System Controller chips
>     1) The /system-controller node
> @@ -2866,6 +2871,139 @@ platforms are moved over to use the flattened-device-tree model.
>        clock-frequency = <0>;
>     };
>
> +    s) Freescale USB Parameter RAM:
> +
> +    Required properties:
> +      - compatible : should be "fsl,<chip>-qe-muram-usb-pram",
> +        "fsl,qe-muram-usb-pram", "fsl,cpm-muram-usb-pram".
> +      - reg : should contain USB PRAM location and length.
> +

Personally, I'd leave out "fsl,qe-muram-usb-pram" and
"fsl,cpm-muram-usb-pram", but otherwise looks good to me.

> +    Example:
> +
> +       usb-pram@8b00 {
> +               compatible = "fsl,mpc8360-qe-muram-usb-pram",
> +                            "fsl,qe-muram-usb-pram",
> +                            "fsl,cpm-muram-usb-pram";
> +               reg = <0x8b00 0x100>;
> +       };
> +
> +    t) Freescale QUICC Engine USB Controller
> +
> +    Required properties:
> +      - compatible : should be "fsl,<chip>-qe-usb", "fsl,qe-usb",
> +        "fsl,usb-fhci"

Again, I'd leave out "fsl,qe-usb" and "fsl,usb-fhci".

> +      - reg : should contain gtm registers location and length.
> +      - interrupts : should contain USB interrupt.
> +      - interrupt-parent : interrupt source phandle.
> +      - fsl,fullspeed-clock : specifies the full speed USB clock source.
> +      - fsl,lowspeed-clock : specifies the low speed USB clock source.

What is the format of the clock properties?

> +      - fsl,usb-mode : should be "host".

What other options are there?  Is this something that would be better
encoded into "compatible" for driver binding?  (I've seen both
approaches; I don't have a firm opinion on which is best)

> +      - linux,hub-power-budget : optional, USB power budget for the root hub
> +        in mA.
> +      - gpios : should specify GPIOs in this order: USBOE, USBTP, USBTN, USBRP,
> +        USBRN, SPEED (optional), and SUSPEND (optional).
> +
> +    Example:
> +
> +       usb@6c0 {
> +               compatible = "fsl,mpc8360-qe-usb", "fsl,qe-usb",
> +                            "fsl,usb-fhci";
> +               reg = <0x6c0 0x40>;
> +               interrupts = <11>;
> +               interrupt-parent = <&qeic>;
> +               fsl,fullspeed-clock = "clk21";
> +               fsl,usb-mode = "host";
> +               gpios = <&qe_pio_b  2 0 /* USBOE */
> +                        &qe_pio_b  3 0 /* USBTP */
> +                        &qe_pio_b  8 0 /* USBTN */
> +                        &qe_pio_b  9 0 /* USBRP */
> +                        &qe_pio_b 11 0 /* USBRN */
> +                        &qe_pio_e 20 0 /* SPEED */
> +                        &qe_pio_e 21 0 /* SUSPN */>;
> +       };
> +
> +    u) LEDs on GPIOs
> +
> +    Required properties:
> +      - compatible : should be "linux,gpio-led".
> +      - linux,name : LED name.
> +      - linux,active-low : property should be present if LED wired as
> +        active-low.
> +      - linux,default-trigger : Linux default trigger for this LED.
> +      - linux,brightness : default brightness.
> +      - gpios : should specify LED GPIO.

Looks good to me.

> +
> +    Example:
> +
> +       led@0 {
> +               compatible = "linux,gpio-led";
> +               linux,name = "pwr";
> +               linux,brightness = <1>;
> +               linux,active-low;
> +               gpios = <&mcu_pio 0>;
> +       };
> +
> +       led@1 {
> +               compatible = "linux,gpio-led";
> +               linux,name = "hdd";
> +               linux,default-trigger = "ide-disk";
> +               linux,active-low;
> +               gpios = <&mcu_pio 1>;
> +       };
> +
> +    v) Freescale MCU with MPC8349E-mITX compatible firmware
> +
> +    Required properties:
> +      - compatible : "fsl,<mcu-chip>-<board>", "fsl,mcu-mpc8349emitx",
> +        "simple-bus";

I don't think "simple-bus" is appropriate here.  This device doesn't
have any sub nodes so is not a bus.  (I'm talking about the binding
here; and I understand that simple-bus is convenient for causing
subnodes to be picked up into of_platform and that you'll be putting
the LED nodes as children of this one.  It just shouldn't be part of
this binding documentation.)

Also, since this node describes a device+firmware instead of just a
device, then "fsl,mcu-mpc8349emitx" should uniquely identify the
device from all other possibilities.  It appears to be a very board
specific thing.

> +      - reg : should specify I2C address (0x0a).
> +      - #address-cells : should be 0.
> +      - #size-cells : should be 0.
> +      - #gpio-cells : should be 1.
> +      - gpio-controller : should be present;
> +
> +    Example:
> +
> +       mcu_pio: mcu@0a {
> +               #address-cells = <0>;
> +               #size-cells = <0>;
> +               #gpio-cells = <1>;
> +               compatible = "fsl,mc9s08qg8-mpc8349emitx",
> +                            "fsl,mcu-mpc8349emitx",
> +                            "simple-bus";
> +               reg = <0x0a>;
> +               gpio-controller;
> +       };
> +
> +    w) NAND on UPM-driven Freescale Localbus
> +
> +      Required properties:
> +      - compatible : "fsl,upm-nand".
> +      - reg : should specify localbus chip select and size used for the chip.
> +      - width : should specify port size in bytes.
> +      - fsl,upm-addr-offset : UPM pattern offset for the address latch.
> +      - fsl,upm-cmd-offset : UPM pattern offset for the command latch.
> +      - fsl,wait-pattern : should be present if NAND chip requires waiting
> +        for Ready-Not-Busy pin after each executed pattern.
> +      - fsl,wait-write : should be present if NAND chip needs waiting on
> +        Ready-Not-Busy pin after each write cycle.
> +      - linux,chip-delay : optional, may contain delay value in milliseconds
> +        (in case when Ready-Not-Busy pin was unspecified).
> +      - gpios : may specify optional GPIO connected to the Ready-Not-Busy pin.

I'm not competent to comment on this binding; I haven't spent any time
looking at NAND binding conventions.

> +
> +      Example:
> +
> +       flash@1,0 {
> +               compatible = "stmicro,NAND512W3A2BN6E", "fsl,upm-nand";
> +               reg = <1 0 1>;
> +               width = <1>;
> +               fsl,upm-addr-offset = <16>;
> +               fsl,upm-cmd-offset = <8>;
> +               fsl,wait-pattern;
> +               fsl,wait-write;
> +               gpios = <&qe_pio_e 18 0>;
> +       };
> +
>  VII - Marvell Discovery mv64[345]6x System Controller chips
>  ===========================================================
>
>



-- 
Grant Likely, B.Sc., P.Eng.
Secret Lab Technologies Ltd.

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

* Re: [RFC POWERPC] booting-without-of: bindings for FHCI USB, GPIO LEDs, MCU, and NAND on UPM
  2008-04-22 20:08 ` Grant Likely
@ 2008-04-22 20:20   ` Scott Wood
  2008-04-22 20:26     ` Grant Likely
  2008-04-22 20:50   ` Josh Boyer
  2008-04-23  0:37   ` Anton Vorontsov
  2 siblings, 1 reply; 11+ messages in thread
From: Scott Wood @ 2008-04-22 20:20 UTC (permalink / raw)
  To: Grant Likely; +Cc: linuxppc-dev

On Tue, Apr 22, 2008 at 02:08:45PM -0600, Grant Likely wrote:
> > +    Example:
> > +
> > +       usb-pram@8b00 {
> > +               compatible = "fsl,mpc8360-qe-muram-usb-pram",
> > +                            "fsl,qe-muram-usb-pram",
> > +                            "fsl,cpm-muram-usb-pram";
> > +               reg = <0x8b00 0x100>;
> > +       };

Why not put it as an additional reg resource on the ucc node, instead of
in its own node?  That's how existing CPM bindings do it.

> > +    t) Freescale QUICC Engine USB Controller
> > +
> > +    Required properties:
> > +      - compatible : should be "fsl,<chip>-qe-usb", "fsl,qe-usb",
> > +        "fsl,usb-fhci"
> 
> Again, I'd leave out "fsl,qe-usb" and "fsl,usb-fhci".

QE is the name of a specific IP block, and is unlikely to be broken in a
non-backwards-compatible manner without having a new name such as QE2.  I
think this is taking "no generic names" too far.  If these names *are*
left out, then at least document which chip we're supposed to pick out of
a hat to claim compatibility with.

-Scott

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

* Re: [RFC POWERPC] booting-without-of: bindings for FHCI USB, GPIO LEDs, MCU, and NAND on UPM
  2008-04-22 20:20   ` Scott Wood
@ 2008-04-22 20:26     ` Grant Likely
  0 siblings, 0 replies; 11+ messages in thread
From: Grant Likely @ 2008-04-22 20:26 UTC (permalink / raw)
  To: Scott Wood; +Cc: linuxppc-dev

On Tue, Apr 22, 2008 at 2:20 PM, Scott Wood <scottwood@freescale.com> wrote:
> On Tue, Apr 22, 2008 at 02:08:45PM -0600, Grant Likely wrote:
>  > > +    Example:
>  > > +
>  > > +       usb-pram@8b00 {
>  > > +               compatible = "fsl,mpc8360-qe-muram-usb-pram",
>  > > +                            "fsl,qe-muram-usb-pram",
>  > > +                            "fsl,cpm-muram-usb-pram";
>  > > +               reg = <0x8b00 0x100>;
>  > > +       };
>
>  Why not put it as an additional reg resource on the ucc node, instead of
>  in its own node?  That's how existing CPM bindings do it.

hmmm, yeah, that sounds like a better approach.

>
>  > > +    t) Freescale QUICC Engine USB Controller
>  > > +
>  > > +    Required properties:
>  > > +      - compatible : should be "fsl,<chip>-qe-usb", "fsl,qe-usb",
>  > > +        "fsl,usb-fhci"
>  >
>  > Again, I'd leave out "fsl,qe-usb" and "fsl,usb-fhci".
>
>  QE is the name of a specific IP block, and is unlikely to be broken in a
>  non-backwards-compatible manner without having a new name such as QE2.  I
>  think this is taking "no generic names" too far.

I'll just leave my comment as "I disagree" and resist the temptation
to rehash my argument.  :-)

>  If these names *are*
>  left out, then at least document which chip we're supposed to pick out of
>  a hat to claim compatibility with.

I agree with that.

>
>  -Scott
>



-- 
Grant Likely, B.Sc., P.Eng.
Secret Lab Technologies Ltd.

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

* Re: [RFC POWERPC] booting-without-of: bindings for FHCI USB, GPIO LEDs, MCU, and NAND on UPM
  2008-04-22 20:08 ` Grant Likely
  2008-04-22 20:20   ` Scott Wood
@ 2008-04-22 20:50   ` Josh Boyer
  2008-04-23  0:37     ` Anton Vorontsov
  2008-04-23  0:37   ` Anton Vorontsov
  2 siblings, 1 reply; 11+ messages in thread
From: Josh Boyer @ 2008-04-22 20:50 UTC (permalink / raw)
  To: Grant Likely; +Cc: linuxppc-dev

On Tue, 2008-04-22 at 14:08 -0600, Grant Likely wrote:
> On Tue, Apr 22, 2008 at 1:41 PM, Anton Vorontsov
> <avorontsov@ru.mvista.com> wrote:
> > Hi all,
> > +    w) NAND on UPM-driven Freescale Localbus
> > +
> > +      Required properties:
> > +      - compatible : "fsl,upm-nand".
> > +      - reg : should specify localbus chip select and size used for the chip.
> > +      - width : should specify port size in bytes.
> > +      - fsl,upm-addr-offset : UPM pattern offset for the address latch.
> > +      - fsl,upm-cmd-offset : UPM pattern offset for the command latch.
> > +      - fsl,wait-pattern : should be present if NAND chip requires waiting
> > +        for Ready-Not-Busy pin after each executed pattern.
> > +      - fsl,wait-write : should be present if NAND chip needs waiting on
> > +        Ready-Not-Busy pin after each write cycle.
> > +      - linux,chip-delay : optional, may contain delay value in milliseconds
> > +        (in case when Ready-Not-Busy pin was unspecified).
> > +      - gpios : may specify optional GPIO connected to the Ready-Not-Busy pin.
> 
> I'm not competent to comment on this binding; I haven't spent any time
> looking at NAND binding conventions.

That's because there are none, and every time someone proposes one it's
like this.  Full of weird $board specific stuff that have nothing to do
with the actual NAND chip.

For example, why is fsl,wait-write defined as an fsl specific property?
It seems generic to the NAND chip itself.  Also, why in the example is
the specific NAND chip part number listed, followed by fsl,upm-nand?
It's almost as if people want to mix the NAND chip and NAND controller
definitions together.  Maybe there is a good reason for it, but it's
really confusing.

josh

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

* Re: [RFC POWERPC] booting-without-of: bindings for FHCI USB, GPIO LEDs, MCU, and NAND on UPM
  2008-04-22 20:08 ` Grant Likely
  2008-04-22 20:20   ` Scott Wood
  2008-04-22 20:50   ` Josh Boyer
@ 2008-04-23  0:37   ` Anton Vorontsov
  2008-04-23  3:22     ` Grant Likely
  2 siblings, 1 reply; 11+ messages in thread
From: Anton Vorontsov @ 2008-04-23  0:37 UTC (permalink / raw)
  To: Grant Likely; +Cc: Scott Wood, linuxppc-dev

On Tue, Apr 22, 2008 at 02:08:45PM -0600, Grant Likely wrote:
> On Tue, Apr 22, 2008 at 1:41 PM, Anton Vorontsov
> <avorontsov@ru.mvista.com> wrote:
> > Hi all,
> >
> > Here is purposed bindings draft for the new drivers that I would like to
> > send for this or next merge window, depending on results of this RFC. ;-)
> > (The new bindings needs to be in-tree or at least Acked before I could
> > send the drivers.)
> >
> > Comments and suggestions are highly appreciated.
> 
> Thanks for cc'ing me.  Mostly looks good, comments below.

Thanks for the comments!

> Cheers,
> g.
> 
> > diff --git a/Documentation/powerpc/booting-without-of.txt b/Documentation/powerpc/booting-without-of.txt
> > index c350623..38fe3e9 100644
> > --- a/Documentation/powerpc/booting-without-of.txt
> > +++ b/Documentation/powerpc/booting-without-of.txt
> > @@ -59,6 +59,11 @@ Table of Contents
> >       p) Freescale Synchronous Serial Interface
> >       q) USB EHCI controllers
> >       r) Freescale General-purpose Timers Module
> > +      s) Freescale USB Parameter RAM:
> > +      t) Freescale QUICC Engine USB Controller
> > +      u) LEDs on GPIOs
> > +      v) Freescale MCU with MPC8349E-mITX compatible firmware
> > +      w) NAND on UPM-driven Freescale Localbus
> >
> >   VII - Marvell Discovery mv64[345]6x System Controller chips
> >     1) The /system-controller node
> > @@ -2866,6 +2871,139 @@ platforms are moved over to use the flattened-device-tree model.
> >        clock-frequency = <0>;
> >     };
> >
> > +    s) Freescale USB Parameter RAM:
> > +
> > +    Required properties:
> > +      - compatible : should be "fsl,<chip>-qe-muram-usb-pram",
> > +        "fsl,qe-muram-usb-pram", "fsl,cpm-muram-usb-pram".
> > +      - reg : should contain USB PRAM location and length.
> > +
> 
> Personally, I'd leave out "fsl,qe-muram-usb-pram" and
> "fsl,cpm-muram-usb-pram", but otherwise looks good to me.

Per Scott comment I'll try to fold pram address into usb node,
so this node isn't relevant anymore.

> > +    Example:
> > +
> > +       usb-pram@8b00 {
> > +               compatible = "fsl,mpc8360-qe-muram-usb-pram",
> > +                            "fsl,qe-muram-usb-pram",
> > +                            "fsl,cpm-muram-usb-pram";
> > +               reg = <0x8b00 0x100>;
> > +       };
> > +
> > +    t) Freescale QUICC Engine USB Controller
> > +
> > +    Required properties:
> > +      - compatible : should be "fsl,<chip>-qe-usb", "fsl,qe-usb",
> > +        "fsl,usb-fhci"
> 
> Again, I'd leave out "fsl,qe-usb" and "fsl,usb-fhci".

Given that mpc8323 is the first (IIRC) chip that supports QE USB,
do I understand correctly that you're purposing something like this
(e.g. for mpc8360):

       usb@6c0 {
               compatible = "fsl,mpc8360-qe-usb", "fsl,mpc8323-qe-usb";

Or... do I have to write somthing like this in the driver itself:

static const struct of_device_id of_fhci_match[] = {
	{ .compatible = "fsl,mpc8323-qe-usb", },
	{ .compatible = "fsl,mpc8360-qe-usb", },
	{ ...new chips... }
	{},
};

And specify only "fsl,mpc8360-qe-usb" (for mpc8360 case again)?

I have no objections to either of this, just want some clarity.

> > +      - reg : should contain gtm registers location and length.
> > +      - interrupts : should contain USB interrupt.
> > +      - interrupt-parent : interrupt source phandle.
> > +      - fsl,fullspeed-clock : specifies the full speed USB clock source.
> > +      - fsl,lowspeed-clock : specifies the low speed USB clock source.
> 
> What is the format of the clock properties?

I'll make it clear in the next revision (the format is "clk<NUM>" or
"brg<NUM>").

> > +      - fsl,usb-mode : should be "host".
> 
> What other options are there?  Is this something that would be better
> encoded into "compatible" for driver binding?  (I've seen both
> approaches; I don't have a firm opinion on which is best)

Well, no. QE USB is the same device, but it can be used as either host
or gadget (peripheral). Peripheral mode isn't yet supported, so binding
lists only host mode.

> > +      - linux,hub-power-budget : optional, USB power budget for the root hub
> > +        in mA.
> > +      - gpios : should specify GPIOs in this order: USBOE, USBTP, USBTN, USBRP,
> > +        USBRN, SPEED (optional), and SUSPEND (optional).
> > +
> > +    Example:
> > +
> > +       usb@6c0 {
> > +               compatible = "fsl,mpc8360-qe-usb", "fsl,qe-usb",
> > +                            "fsl,usb-fhci";
> > +               reg = <0x6c0 0x40>;
> > +               interrupts = <11>;
> > +               interrupt-parent = <&qeic>;
> > +               fsl,fullspeed-clock = "clk21";
> > +               fsl,usb-mode = "host";
> > +               gpios = <&qe_pio_b  2 0 /* USBOE */
> > +                        &qe_pio_b  3 0 /* USBTP */
> > +                        &qe_pio_b  8 0 /* USBTN */
> > +                        &qe_pio_b  9 0 /* USBRP */
> > +                        &qe_pio_b 11 0 /* USBRN */
> > +                        &qe_pio_e 20 0 /* SPEED */
> > +                        &qe_pio_e 21 0 /* SUSPN */>;
> > +       };
> > +
> > +    u) LEDs on GPIOs
> > +
> > +    Required properties:
> > +      - compatible : should be "linux,gpio-led".
> > +      - linux,name : LED name.
> > +      - linux,active-low : property should be present if LED wired as
> > +        active-low.
> > +      - linux,default-trigger : Linux default trigger for this LED.
> > +      - linux,brightness : default brightness.
> > +      - gpios : should specify LED GPIO.
> 
> Looks good to me.
> 
> > +
> > +    Example:
> > +
> > +       led@0 {
> > +               compatible = "linux,gpio-led";
> > +               linux,name = "pwr";
> > +               linux,brightness = <1>;
> > +               linux,active-low;
> > +               gpios = <&mcu_pio 0>;
> > +       };
> > +
> > +       led@1 {
> > +               compatible = "linux,gpio-led";
> > +               linux,name = "hdd";
> > +               linux,default-trigger = "ide-disk";
> > +               linux,active-low;
> > +               gpios = <&mcu_pio 1>;
> > +       };
> > +
> > +    v) Freescale MCU with MPC8349E-mITX compatible firmware
> > +
> > +    Required properties:
> > +      - compatible : "fsl,<mcu-chip>-<board>", "fsl,mcu-mpc8349emitx",
> > +        "simple-bus";
> 
> I don't think "simple-bus" is appropriate here.  This device doesn't
> have any sub nodes so is not a bus.  (I'm talking about the binding
> here; and I understand that simple-bus is convenient for causing
> subnodes to be picked up into of_platform and that you'll be putting
> the LED nodes as children of this one.  It just shouldn't be part of
> this binding documentation.)

Ok, I'll remove simple-bus from the bindings.

> Also, since this node describes a device+firmware instead of just a
> device, then "fsl,mcu-mpc8349emitx" should uniquely identify the
> device from all other possibilities.  It appears to be a very board
> specific thing.

Yes, it is board specific. For example, for MPC8377E-RDB boards I'll
write this:

compatible = "fsl,mc9s08qg8-mpc8377erdb", "fsl,mcu-mpc8349emitx",
	     "simple-bus";

I.e. "very-specific", "device-that-compatible", "simple-bus".

Is that ok?

> > +        "simple-bus";
> 
> > +      - reg : should specify I2C address (0x0a).
> > +      - #address-cells : should be 0.
> > +      - #size-cells : should be 0.
> > +      - #gpio-cells : should be 1.
> > +      - gpio-controller : should be present;
> > +
> > +    Example:
> > +
> > +       mcu_pio: mcu@0a {
> > +               #address-cells = <0>;
> > +               #size-cells = <0>;
> > +               #gpio-cells = <1>;
> > +               compatible = "fsl,mc9s08qg8-mpc8349emitx",
> > +                            "fsl,mcu-mpc8349emitx",
> > +                            "simple-bus";
> > +               reg = <0x0a>;
> > +               gpio-controller;
> > +       };
> > +
> > +    w) NAND on UPM-driven Freescale Localbus
> > +
> > +      Required properties:
> > +      - compatible : "fsl,upm-nand".
> > +      - reg : should specify localbus chip select and size used for the chip.
> > +      - width : should specify port size in bytes.
> > +      - fsl,upm-addr-offset : UPM pattern offset for the address latch.
> > +      - fsl,upm-cmd-offset : UPM pattern offset for the command latch.
> > +      - fsl,wait-pattern : should be present if NAND chip requires waiting
> > +        for Ready-Not-Busy pin after each executed pattern.
> > +      - fsl,wait-write : should be present if NAND chip needs waiting on
> > +        Ready-Not-Busy pin after each write cycle.
> > +      - linux,chip-delay : optional, may contain delay value in milliseconds
> > +        (in case when Ready-Not-Busy pin was unspecified).
> > +      - gpios : may specify optional GPIO connected to the Ready-Not-Busy pin.
> 
> I'm not competent to comment on this binding; I haven't spent any time
> looking at NAND binding conventions.

Thanks for bringing it up though, Josh Boyer evolved it into neat idea. :-)

> > +
> > +      Example:
> > +
> > +       flash@1,0 {
> > +               compatible = "stmicro,NAND512W3A2BN6E", "fsl,upm-nand";
> > +               reg = <1 0 1>;
> > +               width = <1>;
> > +               fsl,upm-addr-offset = <16>;
> > +               fsl,upm-cmd-offset = <8>;
> > +               fsl,wait-pattern;
> > +               fsl,wait-write;
> > +               gpios = <&qe_pio_e 18 0>;
> > +       };
> > +
> >  VII - Marvell Discovery mv64[345]6x System Controller chips
> >  ===========================================================

-- 
Anton Vorontsov
email: cbouatmailru@gmail.com
irc://irc.freenode.net/bd2

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

* Re: [RFC POWERPC] booting-without-of: bindings for FHCI USB, GPIO LEDs, MCU, and NAND on UPM
  2008-04-22 20:50   ` Josh Boyer
@ 2008-04-23  0:37     ` Anton Vorontsov
  0 siblings, 0 replies; 11+ messages in thread
From: Anton Vorontsov @ 2008-04-23  0:37 UTC (permalink / raw)
  To: Josh Boyer; +Cc: linuxppc-dev

On Tue, Apr 22, 2008 at 03:50:22PM -0500, Josh Boyer wrote:
> On Tue, 2008-04-22 at 14:08 -0600, Grant Likely wrote:
> > On Tue, Apr 22, 2008 at 1:41 PM, Anton Vorontsov
> > <avorontsov@ru.mvista.com> wrote:
> > > Hi all,
> > > +    w) NAND on UPM-driven Freescale Localbus
> > > +
> > > +      Required properties:
> > > +      - compatible : "fsl,upm-nand".
> > > +      - reg : should specify localbus chip select and size used for the chip.
> > > +      - width : should specify port size in bytes.
> > > +      - fsl,upm-addr-offset : UPM pattern offset for the address latch.
> > > +      - fsl,upm-cmd-offset : UPM pattern offset for the command latch.
> > > +      - fsl,wait-pattern : should be present if NAND chip requires waiting
> > > +        for Ready-Not-Busy pin after each executed pattern.
> > > +      - fsl,wait-write : should be present if NAND chip needs waiting on
> > > +        Ready-Not-Busy pin after each write cycle.
> > > +      - linux,chip-delay : optional, may contain delay value in milliseconds
> > > +        (in case when Ready-Not-Busy pin was unspecified).
> > > +      - gpios : may specify optional GPIO connected to the Ready-Not-Busy pin.
> > 
> > I'm not competent to comment on this binding; I haven't spent any time
> > looking at NAND binding conventions.
> 
> That's because there are none, and every time someone proposes one it's
> like this.  Full of weird $board specific stuff that have nothing to do
> with the actual NAND chip.
> 
> For example, why is fsl,wait-write defined as an fsl specific property?
> It seems generic to the NAND chip itself.  Also, why in the example is
> the specific NAND chip part number listed, followed by fsl,upm-nand?
> It's almost as if people want to mix the NAND chip and NAND controller
> definitions together.  Maybe there is a good reason for it, but it's
> really confusing.

Much thanks for the idea, I should indeed separate UPM NAND controller
and NAND chip itself.

-- 
Anton Vorontsov
email: cbouatmailru@gmail.com
irc://irc.freenode.net/bd2

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

* Re: [RFC POWERPC] booting-without-of: bindings for FHCI USB, GPIO LEDs, MCU, and NAND on UPM
  2008-04-23  0:37   ` Anton Vorontsov
@ 2008-04-23  3:22     ` Grant Likely
  0 siblings, 0 replies; 11+ messages in thread
From: Grant Likely @ 2008-04-23  3:22 UTC (permalink / raw)
  To: cbouatmailru; +Cc: Scott Wood, linuxppc-dev

On Tue, Apr 22, 2008 at 6:37 PM, Anton Vorontsov <cbouatmailru@gmail.com> wrote:
> On Tue, Apr 22, 2008 at 02:08:45PM -0600, Grant Likely wrote:
>
> > On Tue, Apr 22, 2008 at 1:41 PM, Anton Vorontsov
>  > <avorontsov@ru.mvista.com> wrote:
>  > > Hi all,
>  > >
>  > > Here is purposed bindings draft for the new drivers that I would like to
>  > > send for this or next merge window, depending on results of this RFC. ;-)
>  > > (The new bindings needs to be in-tree or at least Acked before I could
>  > > send the drivers.)
>  > >
>  > > Comments and suggestions are highly appreciated.
>  >
>  > Thanks for cc'ing me.  Mostly looks good, comments below.
>
>  Thanks for the comments!

np.

>  > > +    Example:
>  > > +
>  > > +       usb-pram@8b00 {
>  > > +               compatible = "fsl,mpc8360-qe-muram-usb-pram",
>  > > +                            "fsl,qe-muram-usb-pram",
>  > > +                            "fsl,cpm-muram-usb-pram";
>  > > +               reg = <0x8b00 0x100>;
>  > > +       };
>  > > +
>  > > +    t) Freescale QUICC Engine USB Controller
>  > > +
>  > > +    Required properties:
>  > > +      - compatible : should be "fsl,<chip>-qe-usb", "fsl,qe-usb",
>  > > +        "fsl,usb-fhci"
>  >
>  > Again, I'd leave out "fsl,qe-usb" and "fsl,usb-fhci".
>
>  Given that mpc8323 is the first (IIRC) chip that supports QE USB,
>  do I understand correctly that you're purposing something like this
>  (e.g. for mpc8360):
>
>        usb@6c0 {
>                compatible = "fsl,mpc8360-qe-usb", "fsl,mpc8323-qe-usb";
>
>  Or... do I have to write somthing like this in the driver itself:
>
>  static const struct of_device_id of_fhci_match[] = {
>         { .compatible = "fsl,mpc8323-qe-usb", },
>         { .compatible = "fsl,mpc8360-qe-usb", },
>         { ...new chips... }
>         {},
>  };
>
>  And specify only "fsl,mpc8360-qe-usb" (for mpc8360 case again)?
>
>  I have no objections to either of this, just want some clarity.

*Both* are perfectly valid options.  Personally, I'd choose the first
option as it keeps the size of the driver match table small.  However,
the option is always there to add entries to the match table if
somebody ships a board with wonky firmware that has a
never-before-seen value in compatible (so the system is
fault-tolerant).

>  > > +      - reg : should contain gtm registers location and length.
>  > > +      - interrupts : should contain USB interrupt.
>  > > +      - interrupt-parent : interrupt source phandle.
>  > > +      - fsl,fullspeed-clock : specifies the full speed USB clock source.
>  > > +      - fsl,lowspeed-clock : specifies the low speed USB clock source.
>  >
>  > What is the format of the clock properties?
>
>  I'll make it clear in the next revision (the format is "clk<NUM>" or
>  "brg<NUM>").

Does the clock come from another device that is represented in the
tree?  If so, should it have a phandle to that node?

>  > > +    v) Freescale MCU with MPC8349E-mITX compatible firmware
>  > > +
>  > > +    Required properties:
>  > > +      - compatible : "fsl,<mcu-chip>-<board>", "fsl,mcu-mpc8349emitx",
>  > > +        "simple-bus";
>  >
>  > I don't think "simple-bus" is appropriate here.  This device doesn't
>  > have any sub nodes so is not a bus.  (I'm talking about the binding
>  > here; and I understand that simple-bus is convenient for causing
>  > subnodes to be picked up into of_platform and that you'll be putting
>  > the LED nodes as children of this one.  It just shouldn't be part of
>  > this binding documentation.)
>
>  Ok, I'll remove simple-bus from the bindings.
>
>
>  > Also, since this node describes a device+firmware instead of just a
>  > device, then "fsl,mcu-mpc8349emitx" should uniquely identify the
>  > device from all other possibilities.  It appears to be a very board
>  > specific thing.
>
>  Yes, it is board specific. For example, for MPC8377E-RDB boards I'll
>  write this:
>
>  compatible = "fsl,mc9s08qg8-mpc8377erdb", "fsl,mcu-mpc8349emitx",
>              "simple-bus";
>
>  I.e. "very-specific", "device-that-compatible", "simple-bus".
>
>  Is that ok?

Ah; okay.  I think I understand what you're doing now.  Yes, this is fine.

Cheers,
g.

-- 
Grant Likely, B.Sc., P.Eng.
Secret Lab Technologies Ltd.

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

* Re: [RFC POWERPC] booting-without-of: bindings for FHCI USB, GPIO LEDs, MCU, and NAND on UPM
  2008-04-22 19:41 [RFC POWERPC] booting-without-of: bindings for FHCI USB, GPIO LEDs, MCU, and NAND on UPM Anton Vorontsov
  2008-04-22 20:08 ` Grant Likely
@ 2008-04-23  9:15 ` Laurent Pinchart
  2008-04-23 14:01   ` Anton Vorontsov
  2008-04-24 17:52 ` [RFCv2 " Anton Vorontsov
  2 siblings, 1 reply; 11+ messages in thread
From: Laurent Pinchart @ 2008-04-23  9:15 UTC (permalink / raw)
  To: linuxppc-dev, avorontsov

[-- Attachment #1: Type: text/plain, Size: 4375 bytes --]

Hi Anton,

On Tuesday 22 April 2008 21:41, Anton Vorontsov wrote:
> Hi all,
> 
> Here is purposed bindings draft for the new drivers that I would like to
> send for this or next merge window, depending on results of this RFC. ;-)
> (The new bindings needs to be in-tree or at least Acked before I could
> send the drivers.)
> 
> Comments and suggestions are highly appreciated.
> 
> Thanks.
> 
> diff --git a/Documentation/powerpc/booting-without-of.txt 
b/Documentation/powerpc/booting-without-of.txt
> index c350623..38fe3e9 100644
> --- a/Documentation/powerpc/booting-without-of.txt
> +++ b/Documentation/powerpc/booting-without-of.txt
> @@ -59,6 +59,11 @@ Table of Contents
>        p) Freescale Synchronous Serial Interface
>        q) USB EHCI controllers
>        r) Freescale General-purpose Timers Module
> +      s) Freescale USB Parameter RAM:
> +      t) Freescale QUICC Engine USB Controller
> +      u) LEDs on GPIOs
> +      v) Freescale MCU with MPC8349E-mITX compatible firmware
> +      w) NAND on UPM-driven Freescale Localbus
>  
>    VII - Marvell Discovery mv64[345]6x System Controller chips
>      1) The /system-controller node
> @@ -2866,6 +2871,139 @@ platforms are moved over to use the 
flattened-device-tree model.
>      	clock-frequency = <0>;
>      };
>  
> +    s) Freescale USB Parameter RAM:
> +
> +    Required properties:
> +      - compatible : should be "fsl,<chip>-qe-muram-usb-pram",
> +        "fsl,qe-muram-usb-pram", "fsl,cpm-muram-usb-pram".
> +      - reg : should contain USB PRAM location and length.
> +
> +    Example:
> +
> +	usb-pram@8b00 {
> +		compatible = "fsl,mpc8360-qe-muram-usb-pram",
> +			     "fsl,qe-muram-usb-pram",
> +			     "fsl,cpm-muram-usb-pram";
> +		reg = <0x8b00 0x100>;
> +	};
> +
> +    t) Freescale QUICC Engine USB Controller
> +
> +    Required properties:
> +      - compatible : should be "fsl,<chip>-qe-usb", "fsl,qe-usb",
> +        "fsl,usb-fhci"
> +      - reg : should contain gtm registers location and length.
> +      - interrupts : should contain USB interrupt.
> +      - interrupt-parent : interrupt source phandle.
> +      - fsl,fullspeed-clock : specifies the full speed USB clock source.
> +      - fsl,lowspeed-clock : specifies the low speed USB clock source.
> +      - fsl,usb-mode : should be "host".
> +      - linux,hub-power-budget : optional, USB power budget for the root 
hub
> +        in mA.
> +      - gpios : should specify GPIOs in this order: USBOE, USBTP, USBTN, 
USBRP,
> +        USBRN, SPEED (optional), and SUSPEND (optional).

Suspend should in my opinion be renamed power (or bus power or anything 
similar), as it controls the USB power and not USB PHY sleep mode.

> +    Example:
> +
> +	usb@6c0 {
> +		compatible = "fsl,mpc8360-qe-usb", "fsl,qe-usb",
> +			     "fsl,usb-fhci";
> +		reg = <0x6c0 0x40>;
> +		interrupts = <11>;
> +		interrupt-parent = <&qeic>;
> +		fsl,fullspeed-clock = "clk21";
> +		fsl,usb-mode = "host";
> +		gpios = <&qe_pio_b  2 0 /* USBOE */
> +			 &qe_pio_b  3 0 /* USBTP */
> +			 &qe_pio_b  8 0 /* USBTN */
> +			 &qe_pio_b  9 0 /* USBRP */
> +			 &qe_pio_b 11 0 /* USBRN */
> +			 &qe_pio_e 20 0 /* SPEED */
> +			 &qe_pio_e 21 0 /* SUSPN */>;
> +	};
> +
> +    u) LEDs on GPIOs
> +
> +    Required properties:
> +      - compatible : should be "linux,gpio-led".
> +      - linux,name : LED name.
> +      - linux,active-low : property should be present if LED wired as
> +        active-low.

Just thinking out loud, wasn't the third GPIO cell supposed to be used to 
encode such properties ?

> +      - linux,default-trigger : Linux default trigger for this LED.
> +      - linux,brightness : default brightness.
> +      - gpios : should specify LED GPIO.
> +
> +    Example:
> +
> +	led@0 {
> +		compatible = "linux,gpio-led";
> +		linux,name = "pwr";
> +		linux,brightness = <1>;
> +		linux,active-low;
> +		gpios = <&mcu_pio 0>;
> +	};
> +
> +	led@1 {
> +	        compatible = "linux,gpio-led";
> +	        linux,name = "hdd";
> +	        linux,default-trigger = "ide-disk";
> +		linux,active-low;
> +		gpios = <&mcu_pio 1>;
> +	};

[snip]

-- 
Laurent Pinchart
CSE Semaphore Belgium

Chaussee de Bruxelles, 732A
B-1410 Waterloo
Belgium

T +32 (2) 387 42 59
F +32 (2) 387 42 75

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

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

* Re: [RFC POWERPC] booting-without-of: bindings for FHCI USB, GPIO LEDs, MCU, and NAND on UPM
  2008-04-23  9:15 ` Laurent Pinchart
@ 2008-04-23 14:01   ` Anton Vorontsov
  0 siblings, 0 replies; 11+ messages in thread
From: Anton Vorontsov @ 2008-04-23 14:01 UTC (permalink / raw)
  To: Laurent Pinchart; +Cc: linuxppc-dev

On Wed, Apr 23, 2008 at 11:15:35AM +0200, Laurent Pinchart wrote:
> Hi Anton,
> 
> On Tuesday 22 April 2008 21:41, Anton Vorontsov wrote:
> > Hi all,
> > 
> > Here is purposed bindings draft for the new drivers that I would like to
> > send for this or next merge window, depending on results of this RFC. ;-)
> > (The new bindings needs to be in-tree or at least Acked before I could
> > send the drivers.)
> > 
> > Comments and suggestions are highly appreciated.
> > 
> > Thanks.
> > 
> > diff --git a/Documentation/powerpc/booting-without-of.txt 
> b/Documentation/powerpc/booting-without-of.txt
> > index c350623..38fe3e9 100644
> > --- a/Documentation/powerpc/booting-without-of.txt
> > +++ b/Documentation/powerpc/booting-without-of.txt
> > @@ -59,6 +59,11 @@ Table of Contents
> >        p) Freescale Synchronous Serial Interface
> >        q) USB EHCI controllers
> >        r) Freescale General-purpose Timers Module
> > +      s) Freescale USB Parameter RAM:
> > +      t) Freescale QUICC Engine USB Controller
> > +      u) LEDs on GPIOs
> > +      v) Freescale MCU with MPC8349E-mITX compatible firmware
> > +      w) NAND on UPM-driven Freescale Localbus
> >  
> >    VII - Marvell Discovery mv64[345]6x System Controller chips
> >      1) The /system-controller node
> > @@ -2866,6 +2871,139 @@ platforms are moved over to use the 
> flattened-device-tree model.
> >      	clock-frequency = <0>;
> >      };
> >  
> > +    s) Freescale USB Parameter RAM:
> > +
> > +    Required properties:
> > +      - compatible : should be "fsl,<chip>-qe-muram-usb-pram",
> > +        "fsl,qe-muram-usb-pram", "fsl,cpm-muram-usb-pram".
> > +      - reg : should contain USB PRAM location and length.
> > +
> > +    Example:
> > +
> > +	usb-pram@8b00 {
> > +		compatible = "fsl,mpc8360-qe-muram-usb-pram",
> > +			     "fsl,qe-muram-usb-pram",
> > +			     "fsl,cpm-muram-usb-pram";
> > +		reg = <0x8b00 0x100>;
> > +	};
> > +
> > +    t) Freescale QUICC Engine USB Controller
> > +
> > +    Required properties:
> > +      - compatible : should be "fsl,<chip>-qe-usb", "fsl,qe-usb",
> > +        "fsl,usb-fhci"
> > +      - reg : should contain gtm registers location and length.
> > +      - interrupts : should contain USB interrupt.
> > +      - interrupt-parent : interrupt source phandle.
> > +      - fsl,fullspeed-clock : specifies the full speed USB clock source.
> > +      - fsl,lowspeed-clock : specifies the low speed USB clock source.
> > +      - fsl,usb-mode : should be "host".
> > +      - linux,hub-power-budget : optional, USB power budget for the root 
> hub
> > +        in mA.
> > +      - gpios : should specify GPIOs in this order: USBOE, USBTP, USBTN, 
> USBRP,
> > +        USBRN, SPEED (optional), and SUSPEND (optional).
> 
> Suspend should in my opinion be renamed power (or bus power or anything 
> similar), as it controls the USB power and not USB PHY sleep mode.

Thanks, I'll rename it.

> > +    Example:
> > +
> > +	usb@6c0 {
> > +		compatible = "fsl,mpc8360-qe-usb", "fsl,qe-usb",
> > +			     "fsl,usb-fhci";
> > +		reg = <0x6c0 0x40>;
> > +		interrupts = <11>;
> > +		interrupt-parent = <&qeic>;
> > +		fsl,fullspeed-clock = "clk21";
> > +		fsl,usb-mode = "host";
> > +		gpios = <&qe_pio_b  2 0 /* USBOE */
> > +			 &qe_pio_b  3 0 /* USBTP */
> > +			 &qe_pio_b  8 0 /* USBTN */
> > +			 &qe_pio_b  9 0 /* USBRP */
> > +			 &qe_pio_b 11 0 /* USBRN */
> > +			 &qe_pio_e 20 0 /* SPEED */
> > +			 &qe_pio_e 21 0 /* SUSPN */>;
> > +	};
> > +
> > +    u) LEDs on GPIOs
> > +
> > +    Required properties:
> > +      - compatible : should be "linux,gpio-led".
> > +      - linux,name : LED name.
> > +      - linux,active-low : property should be present if LED wired as
> > +        active-low.
> 
> Just thinking out loud, wasn't the third GPIO cell supposed to be used to 
> encode such properties ?

Oh well, yes, origianally I wrote that it `may' encode this information.
Encoding this would be really useful if node is using many gpios that are
wired in some random inverted/not-inverted way...

gpios <&qe_pio 2 1   /* wired active-low */
       &qe_pio 3 0   /* wired active-high */
       &qe_pio 4 1   /* wired active-low */
       &qe_pio 5 0   /* wired active-high */
       &qe_pio 6 1>; /* wired active-low */


But we didn't see this setup yet, and I'm not sure if I want to implement
this support now just for the LEDs. Specifying this information via
gpios = <> property or separate one isn't going to conflict anyhow
and when we'll implement actual flags for GPIOs, we'll easily could
switch to it in backwards compatible way.

Thanks for brining it up though.

> > +      - linux,default-trigger : Linux default trigger for this LED.
> > +      - linux,brightness : default brightness.
> > +      - gpios : should specify LED GPIO.
> > +
> > +    Example:
> > +
> > +	led@0 {
> > +		compatible = "linux,gpio-led";
> > +		linux,name = "pwr";
> > +		linux,brightness = <1>;
> > +		linux,active-low;
> > +		gpios = <&mcu_pio 0>;
> > +	};
> > +
> > +	led@1 {
> > +	        compatible = "linux,gpio-led";
> > +	        linux,name = "hdd";
> > +	        linux,default-trigger = "ide-disk";
> > +		linux,active-low;
> > +		gpios = <&mcu_pio 1>;
> > +	};

-- 
Anton Vorontsov
email: cbouatmailru@gmail.com
irc://irc.freenode.net/bd2

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

* [RFCv2 POWERPC] booting-without-of: bindings for FHCI USB, GPIO LEDs, MCU, and NAND on UPM
  2008-04-22 19:41 [RFC POWERPC] booting-without-of: bindings for FHCI USB, GPIO LEDs, MCU, and NAND on UPM Anton Vorontsov
  2008-04-22 20:08 ` Grant Likely
  2008-04-23  9:15 ` Laurent Pinchart
@ 2008-04-24 17:52 ` Anton Vorontsov
  2 siblings, 0 replies; 11+ messages in thread
From: Anton Vorontsov @ 2008-04-24 17:52 UTC (permalink / raw)
  To: linuxppc-dev; +Cc: Scott Wood

On Tue, Apr 22, 2008 at 11:41:35PM +0400, Anton Vorontsov wrote:
> Hi all,
> 
> Here is purposed bindings draft for the new drivers that I would like to
> send for this or next merge window, depending on results of this RFC. ;-)
> (The new bindings needs to be in-tree or at least Acked before I could
> send the drivers.)
> 
> Comments and suggestions are highly appreciated.

Much thanks for the comments on previous version. Here is the new one,
please speak up if there is anything I could improve.

Thanks in advance.

diff --git a/Documentation/powerpc/booting-without-of.txt b/Documentation/powerpc/booting-without-of.txt
index c350623..b560dc5 100644
--- a/Documentation/powerpc/booting-without-of.txt
+++ b/Documentation/powerpc/booting-without-of.txt
@@ -59,6 +59,10 @@ Table of Contents
       p) Freescale Synchronous Serial Interface
       q) USB EHCI controllers
       r) Freescale General-purpose Timers Module
+      s) Freescale QUICC Engine USB Controller
+      t) LEDs on GPIOs
+      u) Freescale MCU with MPC8349E-mITX compatible firmware
+      v) NAND on UPM-driven Freescale Localbus
 
   VII - Marvell Discovery mv64[345]6x System Controller chips
     1) The /system-controller node
@@ -2866,6 +2870,128 @@ platforms are moved over to use the flattened-device-tree model.
     	clock-frequency = <0>;
     };
 
+    s) Freescale QUICC Engine USB Controller
+
+    Required properties:
+      - compatible : should be "fsl,<chip>-qe-usb", "fsl,mpc8323-qe-usb";
+      - reg : the first two cells should contain gtm registers location and
+        length, the next two two cells should contain PRAM location and
+        length.
+      - interrupts : should contain USB interrupt.
+      - interrupt-parent : interrupt source phandle.
+      - fsl,fullspeed-clock : specifies the full speed USB clock source in
+        "clk<num>" or "brg<num>" format.
+      - fsl,lowspeed-clock : specifies the low speed USB clock source in
+        "clk<num>" or "brg<num>" format.
+      - fsl,usb-mode : should be "host".
+      - linux,hub-power-budget : optional, USB power budget for the root hub
+        in mA.
+      - gpios : should specify GPIOs in this order: USBOE, USBTP, USBTN, USBRP,
+        USBRN, SPEED (optional), and POWER (optional).
+
+    Example:
+
+	usb@6c0 {
+		compatible = "fsl,mpc8360-qe-usb", "fsl,mpc8323-qe-usb";
+		reg = <0x6c0 0x40 0x8b00 0x100>;
+		interrupts = <11>;
+		interrupt-parent = <&qeic>;
+		fsl,fullspeed-clock = "clk21";
+		fsl,usb-mode = "host";
+		gpios = <&qe_pio_b  2 0 /* USBOE */
+			 &qe_pio_b  3 0 /* USBTP */
+			 &qe_pio_b  8 0 /* USBTN */
+			 &qe_pio_b  9 0 /* USBRP */
+			 &qe_pio_b 11 0 /* USBRN */
+			 &qe_pio_e 20 0 /* SPEED */
+			 &qe_pio_e 21 0 /* POWER */>;
+	};
+
+    t) LEDs on GPIOs
+
+    Required properties:
+      - compatible : should be "linux,gpio-led".
+      - linux,name : LED name.
+      - linux,active-low : property should be present if LED wired as
+        active-low.
+      - linux,default-trigger : Linux default trigger for this LED.
+      - linux,brightness : default brightness.
+      - gpios : should specify LED GPIO.
+
+    Example:
+
+	led@0 {
+		compatible = "linux,gpio-led";
+		linux,name = "pwr";
+		linux,brightness = <1>;
+		linux,active-low;
+		gpios = <&mcu_pio 0>;
+	};
+
+	led@1 {
+	        compatible = "linux,gpio-led";
+	        linux,name = "hdd";
+	        linux,default-trigger = "ide-disk";
+		linux,active-low;
+		gpios = <&mcu_pio 1>;
+	};
+
+    u) Freescale MCU with MPC8349E-mITX compatible firmware
+
+    Required properties:
+      - compatible : "fsl,<mcu-chip>-<board>", "fsl,mcu-mpc8349emitx";
+      - reg : should specify I2C address (0x0a).
+      - #address-cells : should be 0.
+      - #size-cells : should be 0.
+      - #gpio-cells : should be 2.
+      - gpio-controller : should be present;
+
+    Example:
+
+	mcu_pio: mcu@0a {
+		#address-cells = <0>;
+		#size-cells = <0>;
+		#gpio-cells = <2>;
+		compatible = "fsl,mc9s08qg8-mpc8349emitx",
+			     "fsl,mcu-mpc8349emitx";
+		reg = <0x0a>;
+		gpio-controller;
+	};
+
+    v) Freescale Localbus UPM programmed to work with NAND flash
+
+      Required properties:
+      - #address-cells : should be 0;
+      - #size-cells : should be 0;
+      - compatible : "fsl,upm-nand".
+      - reg : should specify localbus chip select and size used for the chip.
+      - fsl,upm-addr-offset : UPM pattern offset for the address latch.
+      - fsl,upm-cmd-offset : UPM pattern offset for the command latch.
+      - gpios : may specify optional GPIO connected to the Ready-Not-Busy pin.
+
+      Example:
+
+	upm@1,0 {
+		#address-cells = <0>;
+		#size-cells = <0>;
+		compatible = "fsl,upm-nand";
+		reg = <1 0 1>;
+		fsl,upm-addr-offset = <16>;
+		fsl,upm-cmd-offset = <8>;
+		gpios = <&qe_pio_e 18 0>;
+
+		flash {
+			#address-cells = <1>;
+			#size-cells = <1>;
+			compatible = "stmicro,NAND512W3A2BN6E";
+
+			partition@0 {
+				...
+			};
+		};
+	};
+
 VII - Marvell Discovery mv64[345]6x System Controller chips
 ===========================================================
 

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

end of thread, other threads:[~2008-04-24 17:52 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-04-22 19:41 [RFC POWERPC] booting-without-of: bindings for FHCI USB, GPIO LEDs, MCU, and NAND on UPM Anton Vorontsov
2008-04-22 20:08 ` Grant Likely
2008-04-22 20:20   ` Scott Wood
2008-04-22 20:26     ` Grant Likely
2008-04-22 20:50   ` Josh Boyer
2008-04-23  0:37     ` Anton Vorontsov
2008-04-23  0:37   ` Anton Vorontsov
2008-04-23  3:22     ` Grant Likely
2008-04-23  9:15 ` Laurent Pinchart
2008-04-23 14:01   ` Anton Vorontsov
2008-04-24 17:52 ` [RFCv2 " Anton Vorontsov

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.