Hi Jason,

On Thu, Mar 10, 2011 at 12:59:42PM +0800, Jason Liu wrote:
> Signed-off-by: Jason Liu <jason....@linaro.org>
> Signed-off-by: Jason Liu <r64...@freescale.com>
> Singed-off-by: Rob Herring <robherri...@gmail.com>
> ---
>  arch/arm/boot/dts/babbage.dts |  122 
> +++++++++++++++++++++++++++++++++++++++++
>  1 files changed, 122 insertions(+), 0 deletions(-)
> 
> diff --git a/arch/arm/boot/dts/babbage.dts b/arch/arm/boot/dts/babbage.dts
> new file mode 100644
> index 0000000..ab87a1b
> --- /dev/null
> +++ b/arch/arm/boot/dts/babbage.dts
> @@ -0,0 +1,122 @@
> +/*
> + * Copyright 2011 Linaro Ltd.
> + * Copyright 2011 Freescale Semiconductor, Inc.
> + *
> + * The code contained herein is licensed under the GNU General Public
> + * License. You may obtain a copy of the GNU General Public License
> + * Version 2 or later at the following locations:
> + *
> + * http://www.opensource.org/licenses/gpl-license.html
> + * http://www.gnu.org/copyleft/gpl.html
> + */
> +
> +/dts-v1/;
> +
> +/ {
> +     model = "Freescale i.MX51 Babbage";
> +     compatible = "fsl,mx51-babbage";
> +     #address-cells = <1>;
> +     #size-cells = <1>;
> +     #interrupt-cells = <1>;
> +     interrupt-parent = <&tzic>;
> +
> +     memory {
> +             reg = <0x90000000 0x20000000>;
> +     };
> +
> +     chosen {
> +             bootargs = "console=ttymxc0,115200n8 debug earlyprintk ip=dhcp";
> +     };
> +
> +     soc {
> +             #address-cells = <1>;
> +             #size-cells = <1>;
> +             compatible = "simple-bus";
> +             ranges;
> +
> +             tzic: tz-interrupt-controller {
> +                     #address-cells = <0>;
> +                     #interrupt-cells = <1>;
> +                     interrupt-controller;
> +                     reg = <0xe0000000 0x1000>;
> +                     compatible = "fsl,imx51-tzic";
> +             };
> +     };
> +
> +     clocks {
> +             #address-cells = <1>;
> +             #size-cells = <0>;
> +
> +             uart0_clk: uart0 {
> +                     compatible = "clock";
> +                     clock-outputs = "imx-uart.0";
> +             };
> +
> +             uart1_clk: uart1 {
> +                     compatible = "clock";
> +                     clock-outputs = "imx-uart.1";
> +             };
> +
> +             uart2_clk: uart2 {
> +                     compatible = "clock";
> +                     clock-outputs = "imx-uart.2";
> +             };
> +
> +             fec_clk: fec {
> +                     compatible = "clock";
> +                     clock-outputs = "fec.0";
> +             };
> +     };
> +
> +     aips@73f00000 {
> +             #address-cells = <1>;
> +             #size-cells = <1>;
> +             compatible = "simple-bus";
> +             ranges = <0x0 0x73f00000 0x100000>;
> +
> +             imx-uart@bc000 {
> +                     compatible = "fsl,imx51-uart";
> +                     reg = <0xbc000 0x1000>;
> +                     interrupts = <0x1f>;
> +                     fsl,has-rts-cts;
> +                     uart-clock = <&uart0_clk>, "uart";
> +             };
> +
> +             imx-uart@c0000 {
> +                     compatible = "fsl,imx51-uart";
> +                     reg = <0xc0000 0x1000>;
> +                     interrupts = <0x20>;
> +                     fsl,has-rts-cts;
> +                     uart-clock = <&uart1_clk>, "uart";
> +             };
> +     };
> +
> +     spba@70000000 {
> +             #address-cells = <1>;
> +             #size-cells = <1>;
> +             compatible = "simple-bus";
> +             ranges = <0x0 0x70000000 0x100000>;
> +
> +             imx-uart@c000 {
> +                     compatible = "fsl,imx51-uart";
> +                     reg = <0xc000 0x1000>;
> +                     interrupts = <0x21>;
> +                     fsl,has-rts-cts;
> +                     uart-clock = <&uart2_clk>, "uart";
> +             };
> +     };
> +
Moving spba@70000000 section after aips@73f00000 seems a quick fix to
get console=ttymxc0, but not a right fix to me.

I do not find a real example on mx51, but let's make one, saying
there are two instance of one IP block, xyz1 and xyz2, and xyz1 is on
bus spba@70000000) while xyz2 is on bus apis@73f00000.  Your fix is
broken here, as you need to put spba@70000000 after aips@73f00000 for
uart driver, while xyz driver requires spba@70000000 stays before
aips@73f00000. 

Also this quick fix is working for uart, but will not for some others,
for example, eCSPI and SSI, which requires spba@70000000 even behind
aips@83f00000 with your solution.

> +     aips@83f00000 {
> +             #address-cells = <1>;
> +             #size-cells = <1>;
> +             compatible = "simple-bus";
> +             ranges = <0x0 0x83f00000 0x100000>;
> +
> +             fec@ec000 {
> +                     compatible = "fsl,imx-fec";
> +                     reg = <0xec000 0x1000>;
> +                     interrupts = <0x57>;
> +                     fec_clk-clock = <&fec_clk>, "fec";
> +             };
> +     };
> +};

-- 
Regards,
Shawn

_______________________________________________
devicetree-discuss mailing list
devicetree-discuss@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/devicetree-discuss

Reply via email to