[RFC POWERPC] booting-without-of: bindings for FHCI USB, GPIO LEDs, MCU, and NAND on UPM
Grant Likely
grant.likely at secretlab.ca
Wed Apr 23 06:08:45 EST 2008
On Tue, Apr 22, 2008 at 1:41 PM, Anton Vorontsov
<avorontsov at 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 at 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 at 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 at 0 {
> + compatible = "linux,gpio-led";
> + linux,name = "pwr";
> + linux,brightness = <1>;
> + linux,active-low;
> + gpios = <&mcu_pio 0>;
> + };
> +
> + led at 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 at 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 at 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.
More information about the Linuxppc-dev
mailing list