On Thu, Dec 20, 2007 at 09:54:31AM -0500, Paul Gortmaker wrote:
> This adds the device tree source for the Wind River SBC8560 board.  The
> biggest difference between this and the MPC8560ADS reference platform
> is the use of an external 16550 compatible UART instead of the CPM2.
> 
> Signed-off-by: Paul Gortmaker <[EMAIL PROTECTED]>
> ---
>  arch/powerpc/boot/dts/sbc8560.dts |  202 
> +++++++++++++++++++++++++++++++++++++
>  1 files changed, 202 insertions(+), 0 deletions(-)
> 
> diff --git a/arch/powerpc/boot/dts/sbc8560.dts 
> b/arch/powerpc/boot/dts/sbc8560.dts
> new file mode 100644
> index 0000000..85fc488
> --- /dev/null
> +++ b/arch/powerpc/boot/dts/sbc8560.dts
> @@ -0,0 +1,202 @@
> +/*
> + * SBC8560 Device Tree Source
> + *
> + * Copyright 2007 Wind River Systems Inc.
> + *
> + * Paul Gortmaker (see MAINTAINERS for contact information)
> + *
> + * This program is free software; you can redistribute  it and/or modify it
> + * under  the terms of  the GNU General  Public License as published by the
> + * Free Software Foundation;  either version 2 of the  License, or (at your
> + * option) any later version.
> + */
> +
> +
> +/ {
> +     model = "SBC8560";
> +     compatible = "SBC8560";
> +     #address-cells = <1>;
> +     #size-cells = <1>;
> +
> +     cpus {
> +             #address-cells = <1>;
> +             #size-cells = <0>;
> +
> +             PowerPC,[EMAIL PROTECTED] {
> +                     device_type = "cpu";
> +                     reg = <0>;
> +                     d-cache-line-size = <20>;       // 32 bytes
> +                     i-cache-line-size = <20>;       // 32 bytes
> +                     d-cache-size = <8000>;          // L1, 32K
> +                     i-cache-size = <8000>;          // L1, 32K
> +                     timebase-frequency = <0>;       // From uboot
> +                     bus-frequency = <0>;
> +                     clock-frequency = <0>;
> +                     32-bit;

Drop the "32-bit".  It was created in analogy with the "64-bit"
property, but nothing ever actually specified it.

> +             };
> +     };
> +
> +     memory {
> +             device_type = "memory";
> +             reg = <00000000 20000000>;
> +     };
> +
> +     [EMAIL PROTECTED] {

I believe we're trying to call these "[EMAIL PROTECTED]" now rather than
"[EMAIL PROTECTED]".

> +             #address-cells = <1>;
> +             #size-cells = <1>;
> +             #interrupt-cells = <2>;
> +             device_type = "soc";
> +             ranges = <0 ff700000 00100000>;
> +             reg = <ff700000 00100000>;
> +             bus-frequency = <0>;

This should be "clock-frequency" not "bus-frequency" although I don't
know if you can fix this within your code, or if it's a pre-existing
brokenness.

[snip]
> +             [EMAIL PROTECTED] {
> +                     device_type = "i2c";

Drop this device_type.

> +                     compatible = "fsl-i2c";
> +                     reg = <3000 100>;
> +                     interrupts = <2b 2>;
> +                     interrupt-parent = <&mpic>;
> +                     dfsrr;
> +             };
> +
> +             [EMAIL PROTECTED] {
> +                     #address-cells = <1>;
> +                     #size-cells = <0>;
> +                     device_type = "mdio";
> +                     compatible = "gianfar";

And this one, and change the compatible.  The gianfar driver has
recently been updated to change this.

[snip]
> +             [EMAIL PROTECTED] {
> +                     #address-cells = <1>;
> +                     #size-cells = <0>;
> +                     device_type = "network";
> +                     model = "TSEC";
> +                     compatible = "gianfar";

Likewise here.

> +                     reg = <24000 1000>;
> +                     local-mac-address = [ 00 00 00 00 00 00 ];
> +                     interrupts = <1d 2 1e 2 22 2>;
> +                     interrupt-parent = <&mpic>;
> +                     phy-handle = <&phy0>;
> +             };

[snip]
> +             mpic: [EMAIL PROTECTED] {
> +                     clock-frequency = <0>;

The mpic has a clock-frequency??

> +                     interrupt-controller;
> +                     #address-cells = <0>;

Should have #size-cells = <0> too.

> +                     #interrupt-cells = <2>;
> +                     reg = <40000 40000>;
> +                     built-in;
> +                     compatible = "chrp,open-pic";
> +                     device_type = "open-pic";
> +                     big-endian;
> +             };
> +
> +             [EMAIL PROTECTED] {
> +                     compatible = "fsl,mpc8560-guts";
> +                     reg = <e0000 1000>;
> +                     fsl,has-rstcr;
> +             };
> +     };
> +
> +     [EMAIL PROTECTED] {
> +             #address-cells = <1>;
> +             #size-cells = <1>;
> +             #interrupt-cells = <2>;

This is neither an interrupt-controller nor an interrupt-nexus, so it
shouldn't have #interrupt-cells.

> +             device_type = "soc";            // console checks for this!

!?  If console checks this (whatever that means), then console is
doing crap...

This is clearly *not* a SoC, and should have a proper compatible, not
this crap device type.  Come to that, is this really an independent
device or does it belong within the soc or on the localbus or
something?

> +             ranges = <0 fc700000 00200000>;
> +             reg = <fc700000 00200000>;

Ranges and reg should not overlap like this, except in very unusal
cases.  I'm really not sure what this duart node is support to
represent, in any case.

> +             [EMAIL PROTECTED] {

No leading zeroes on the unit address part of the name

> +                     device_type = "serial";
> +                     compatible = "ns16550";
> +                     reg = <000000 100>;
> +                     clock-frequency = <1C2000>;
> +                     interrupts = <9 2>;
> +                     interrupt-parent = <&mpic>;
> +             };
> +
> +             [EMAIL PROTECTED] {
> +                     device_type = "serial";
> +                     compatible = "ns16550";
> +                     reg = <100000 100>;
> +                     clock-frequency = <1C2000>;
> +                     interrupts = <a 2>;
> +                     interrupt-parent = <&mpic>;
> +             };
> +     };
> +
> +     [EMAIL PROTECTED] {

Again, it looks very much like the duart and rtc belong off some
external bus controller, not directly on the CPU bus (which is what
the top-level of the device tree represents).

> +             #address-cells = <1>;
> +             #size-cells = <1>;

This has no child nodes, so no need for #address-cells and #size-cells.

> +             device_type = "rtc";

Drop device_type, we're trying to avoid them.

> +             compatible = "m48t59";
> +             reg = <fc900000 2000>;
> +     };
> +};

-- 
David Gibson                    | I'll have my music baroque, and my code
david AT gibson.dropbear.id.au  | minimalist, thank you.  NOT _the_ _other_
                                | _way_ _around_!
http://www.ozlabs.org/~dgibson
_______________________________________________
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev

Reply via email to