[PATCH] [POWERPC][RFC] MPC8360E-RDK: Device tree and board file
Kumar Gala
galak at kernel.crashing.org
Wed Dec 12 05:42:18 EST 2007
On Dec 10, 2007, at 2:29 PM, Anton Vorontsov wrote:
> This is new board made by Freescale Semiconductor Inc. and
> Logic Product Development.
>
> Currently supported:
> 1. UEC1,2 (UEC2 doesn't work, but I'm sure this is firmware issue)
> 2. I2C
> 3. SPI
> 4. NS16550 serial
>
> Not supported so far:
> 1. StMICRO NAND512W3A2BN6E, 512 Mbit
> 2. UEC3,4
> 3. QE SCCs (slow UCCs)
> 4. PCI
> 5. ADC AD7843
> 6. FHCI USB
> 7. Graphics controller, Fujitsu MB86277
>
> Signed-off-by: Anton Vorontsov <avorontsov at ru.mvista.com>
> ---
>
> Hi all,
>
> That patch is early RFC:
>
> I tend to submit patches just as they are mature enough, thus not bomb
> the list with long queues or huge patches. After I'll fix all upcoming
> issues with that basic support, it would be great if someone will
> merge it, thus I can start do incremental patches supporting this or
> that.
>
> Below is MPC8360E-RDK basic support. I'm following latest fashion,
> so dts is v1. ;-)
>
> Thanks,
>
> p.s. not sending defconfig yet.
>
> arch/powerpc/boot/dts/mpc836x_rdk.dts | 232 ++++++++++++++++++++
> +++++++++
> arch/powerpc/platforms/83xx/Kconfig | 10 +-
> arch/powerpc/platforms/83xx/Makefile | 1 +
> arch/powerpc/platforms/83xx/mpc836x_rdk.c | 109 ++++++++++++++
> 4 files changed, 351 insertions(+), 1 deletions(-)
> create mode 100644 arch/powerpc/boot/dts/mpc836x_rdk.dts
> create mode 100644 arch/powerpc/platforms/83xx/mpc836x_rdk.c
>
> diff --git a/arch/powerpc/boot/dts/mpc836x_rdk.dts b/arch/powerpc/
> boot/dts/mpc836x_rdk.dts
> new file mode 100644
> index 0000000..a3b37e8
> --- /dev/null
> +++ b/arch/powerpc/boot/dts/mpc836x_rdk.dts
> @@ -0,0 +1,232 @@
> +/*
> + * MPC8360E RDK Device Tree Source
> + *
> + * Copyright 2006 Freescale Semiconductor Inc.
> + * Copyright 2007 MontaVista Software, Inc.
> + * Anton Vorontsov <avorontsov at ru.mvista.com>
> + *
> + * 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.
> + */
> +
> +/dts-v1/;
> +
> +/ {
> + model = "MPC8360RDK";
> + compatible = "MPC8360ERDK", "MPC836xRDK", "MPC83xxRDK";
> + #address-cells = <1>;
> + #size-cells = <1>;
> +
let's go ahead w/an aliases node:
aliases {
ethernet0 = &enet0;
ethernet1 = &enet1;
...
serial0 = &serial0;
serial1 = &serial1;
};
>
> + cpus {
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + PowerPC,8360 at 0 {
> + device_type = "cpu";
> + reg = <0>;
> + d-cache-line-size = <32>;
> + i-cache-line-size = <32>;
> + d-cache-size = <32768>;
> + i-cache-size = <32768>;
> + timebase-frequency = <0>; /* filled by u-boot */
> + bus-frequency = <0>; /* filled by u-boot */
> + clock-frequency = <0>; /* filled by u-boot */
> + };
> + };
> +
> + soc8360 at e0000000 {
> + #address-cells = <1>;
> + #size-cells = <1>;
> + device_type = "soc";
> + ranges = <0 0xe0000000 0x00100000>;
> + reg = <0xe0000000 0x00000200>;
> + bus-frequency = <0>; /* filled by u-boot */
> +
> + wdt at 200 {
> + device_type = "watchdog";
> + compatible = "mpc83xx_wdt";
> + reg = <0x200 0x100>;
> + };
> +
> + i2c at 3000 {
> + #address-cells = <1>;
> + #size-cells = <0>;
> + device_type = "i2c";
> + compatible = "fsl-i2c";
> + reg = <0x3000 0x100>;
> + interrupts = <14 8>;
> + interrupt-parent = <&ipic>;
> + dfsrr;
> + };
> +
> + i2c at 3100 {
> + #address-cells = <1>;
> + #size-cells = <0>;
> + device_type = "i2c";
> + compatible = "fsl-i2c";
> + reg = <0x3100 0x100>;
> + interrupts = <16 8>;
> + interrupt-parent = <&ipic>;
> + dfsrr;
> + };
> +
Add serial labels:
serial0: serial at 4500 {...
>
> + serial at 4500 {
> + device_type = "serial";
> + compatible = "ns16550";
> + reg = <0x4500 0x100>;
> + clock-frequency = <0>;
> + interrupts = <9 8>;
> + interrupt-parent = <&ipic>;
> + };
> +
> + serial at 4600 {
> + device_type = "serial";
> + compatible = "ns16550";
> + reg = <0x4600 0x100>;
> + clock-frequency = <0>;
> + interrupts = <10 8>;
> + interrupt-parent = <&ipic>;
> + };
> +
> + crypto at 30000 {
> + device_type = "crypto";
> + model = "SEC2";
> + compatible = "talitos";
> + reg = <0x30000 0x10000>;
> + interrupts = <11 8>;
> + interrupt-parent = <&ipic>;
> + num-channels = <4>;
> + channel-fifo-len = <24>;
> + exec-units-mask = <0x0000007e>;
> + /*
> + * desc mask is for rev1.x, we need runtime fixup
> + * for >=2.x
> + */
> + descriptor-types-mask = <0x01010ebf>;
> + };
> +
> + ipic: pic at 700 {
> + interrupt-controller;
> + #address-cells = <0>;
> + #interrupt-cells = <2>;
> + reg = <0x700 0x100>;
> + device_type = "ipic";
> + };
> +
> + par_io at 1400 {
> + reg = <0x1400 0x100>;
> + num-ports = <7>;
> + };
> + };
> +
> + qe at e0100000 {
> + #address-cells = <1>;
> + #size-cells = <1>;
> + device_type = "qe";
> + model = "QE";
> + ranges = <0 0xe0100000 0x00100000>;
> + reg = <0xe0100000 0x480>;
> + brg-frequency = <0>; /* filled by u-boot */
> + bus-frequency = <0>; /* filled by u-boot */
> +
> + muram at 10000 {
> + device_type = "muram";
> + ranges = <0 0x00010000 0x0000c000>;
> +
> + data-only at 0 {
> + reg = <0 0xc000>;
> + };
> + };
> +
> + spi at 4c0 {
> + device_type = "spi";
> + compatible = "fsl_spi";
> + reg = <0x4c0 0x40>;
> + interrupts = <2>;
> + interrupt-parent = <&qeic>;
> + mode = "cpu";
> + };
> +
> + spi at 500 {
> + device_type = "spi";
> + compatible = "fsl_spi";
> + reg = <0x500 0x40>;
> + interrupts = <1>;
> + interrupt-parent = <&qeic>;
> + mode = "cpu";
> + };
> +
> + usb at 6c0 {
> + device_type = "usb";
> + compatible = "qe_udc";
> + reg = <0x6c0 0x40 0x8b00 0x100>;
> + interrupts = <11>;
> + interrupt-parent = <&qeic>;
> + mode = "slave";
> + };
> +
ethernet labels
>
> + ucc at 2000 {
> + device_type = "network";
> + compatible = "ucc_geth";
> + model = "UCC";
> + device-id = <1>;
> + reg = <0x2000 0x200>;
> + interrupts = <32>;
> + interrupt-parent = <&qeic>;
> + local-mac-address = [ 00 00 00 00 00 00 ];
> + rx-clock = <0>;
> + tx-clock = <25>;
> + phy-handle = <&phy2>;
> + phy-connection-type = "rgmii-id";
> + };
> +
> + ucc at 3000 {
> + device_type = "network";
> + compatible = "ucc_geth";
> + model = "UCC";
> + device-id = <2>;
> + reg = <0x3000 0x200>;
> + interrupts = <33>;
> + interrupt-parent = <&qeic>;
> + local-mac-address = [ 00 00 00 00 00 00 ];
> + rx-clock = <0>;
> + tx-clock = <20>;
> + phy-handle = <&phy4>;
> + phy-connection-type = "rgmii-id";
> + };
> +
> + mdio at 2120 {
> + #address-cells = <1>;
> + #size-cells = <0>;
> + reg = <0x2120 0x18>;
> + device_type = "mdio";
> + compatible = "ucc_geth_phy";
> +
> + phy2: ethernet-phy at 02 {
> + interrupt-parent = <&ipic>;
> + /*interrupts = <17 8>;*/
> + reg = <2>;
> + device_type = "ethernet-phy";
> + };
> + phy4: ethernet-phy at 04 {
> + interrupt-parent = <&ipic>;
> + /*interrupts = <18 8>;*/
> + reg = <4>;
> + device_type = "ethernet-phy";
> + };
> + };
> +
> + qeic: qeic at 80 {
> + interrupt-controller;
> + device_type = "qeic";
> + #address-cells = <0>;
> + #interrupt-cells = <1>;
> + reg = <0x80 0x80>;
> + big-endian;
> + interrupts = <32 8 33 8>;
> + interrupt-parent = <&ipic>;
> + };
> + };
> +};
- k
More information about the Linuxppc-dev
mailing list