[Add mpc5121 support PATCH v2 4/8] Device tree for MPC5121 ADS

Grant Likely grant.likely at secretlab.ca
Fri Jan 18 04:30:19 EST 2008


On 1/16/08, John Rigby <jrigby at freescale.com> wrote:
> Minimal tree for mpc5121 ads.
>
> Signed-off-by: John Rigby <jrigby at freescale.com>
> ---
>  arch/powerpc/boot/dts/mpc5121ads.dts |  116 ++++++++++++++++++++++++++++++++++
>  1 files changed, 116 insertions(+), 0 deletions(-)
>  create mode 100644 arch/powerpc/boot/dts/mpc5121ads.dts
>
> diff --git a/arch/powerpc/boot/dts/mpc5121ads.dts b/arch/powerpc/boot/dts/mpc5121ads.dts
> new file mode 100644
> index 0000000..fac1f15
> --- /dev/null
> +++ b/arch/powerpc/boot/dts/mpc5121ads.dts
> @@ -0,0 +1,116 @@
> +/*
> + * MPC5121E MDS Device Tree Source
> + *
> + * Copyright 2007 Freescale Semiconductor Inc.
> + *
> + * 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 = "MPC5121ADS";

Model should also use the form "fsl,mpc5121ads".  I think lowercase is
also preferred.

> +       compatible = "fsl,mpc5121ads";
> +       #address-cells = <1>;
> +       #size-cells = <1>;
> +
> +       cpus {
> +               #address-cells = <1>;
> +               #size-cells = <0>;
> +
> +               PowerPC,5121 at 0 {
> +                       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 = <d#49500000>; // 49.5 MHz (csb/4)
> +                       bus-frequency = <d#198000000>;  // 198 MHz csb bus
> +                       clock-frequency = <d#396000000>;// 396 MHz ppc core
> +               };
> +       };
> +
> +       memory {
> +               device_type = "memory";
> +               reg = <00000000 10000000>;      // 256MB at 0
> +       };
> +
> +       localbus at 80000020 {
> +               compatible = "fsl,mpc5121ads_localbus";

fsl,mpc5121ads-localbus (use dash instead of underscore)

> +               #address-cells = <2>;
> +               #size-cells = <1>;
> +               reg = <80000020 40>;
> +
> +               ranges = <0 0 fc000000 04000000
> +                         2 0 82000000 00008000>;
> +
> +               flash at 0,0 {
> +                       compatible = "cfi-flash";
> +                       reg = <0 0 4000000>;
> +                       bank-width = <4>;
> +                       device-width = <1>;
> +               };
> +
> +               board-control at 2,0 {
> +                       compatible = "fsl,mpc5121ads-cpld";
> +                       reg = <2 0 8000>;
> +               };
> +       };
> +
> +       soc at 80000000 {
> +               compatible = "fsl,mpc5121-immr";
> +               #address-cells = <1>;
> +               #size-cells = <1>;
> +               #interrupt-cells = <2>;
> +               ranges = <0 80000000 400000>;
> +               reg = <80000000 400000>;
> +               bus-frequency = <d#66000000>;   // 66 MHz ips bus
> +
> +
> +               // IPIC
> +               // interrupts cell = <intr #, sense>
> +               // sense values match linux IORESOURCE_IRQ_* defines:
> +               // sense == 8: Level, low assertion
> +               // sense == 2: Edge, high-to-low change
> +               //
> +               ipic: interrupt-controller at c00 {
> +                       compatible = "fsl,ipic";

for completeness: compatible = "fsl,mpc5121-ipic", "fsl,ipic";

> +                       interrupt-controller;
> +                       #address-cells = <0>;
> +                       #interrupt-cells = <2>;
> +                       reg = <c00 100>;
> +               };
> +
> +               // 512x PSCs are not 52xx PSCs compatible
> +               // PSC3 serial port A aka ttyPSC0
> +               serial at 11300 {
> +                       device_type = "serial";
> +                       compatible = "fsl,mpc5121-psc-uart";
> +                       port-number = <0>;  // Logical port assignment

This should be going away in short order.  I hope to have some code
written soon which will use aliases for assigning the port number.

> +                       cell-index = <3>;
> +                       reg = <11300 100>;
> +                       interrupts = <28 8>; // actually the fifo irq

Hmmm, interesting.  Perhaps it would be better to leave the interrupts
property out of this node and have a fsl,fifo-handle property pointing
to the fifo node.

> +                       interrupt-parent = < &ipic >;
> +               };
> +
> +               // PSC4 serial port B aka ttyPSC1
> +               serial at 11400 {
> +                       device_type = "serial";
> +                       compatible = "fsl,mpc5121-psc-uart";
> +                       port-number = <1>;  // Logical port assignment
> +                       cell-index = <4>;
> +                       reg = <11400 100>;
> +                       interrupts = <28 8>; // actually the fifo irq
> +                       interrupt-parent = < &ipic >;
> +               };
> +
> +               pscsfifo at 11f00 {
> +                       compatible = "fsl,mpc512x-psc-fifo";

fsl,mpc5121-psc-fifo.  mpc512x isn't real, it's a made up wildcard.
It's better to be specific.

> +                       reg = <11f00 100>;
> +                       interrupts = <28 8>;
> +                       interrupt-parent = < &ipic >;
> +               };
> +       };
> +};
> --

Cheers,
g.

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



More information about the Linuxppc-dev mailing list