[PATCH 1/9] ARM: PRIMA2: add CSR SiRFmarco device tree .dts

Mark Rutland mark.rutland at arm.com
Wed Jan 2 07:19:43 EST 2013


On Thu, Dec 20, 2012 at 12:13:51PM +0000, Barry Song wrote:
> From: Barry Song <Baohua.Song at csr.com>
> 
> SiRFmarco is a dual-core cortex-a9 SMP SoC from CSR. this patch
> adds the .dtsi and a basic evb board .dts for it.
> 
> Signed-off-by: Barry Song <Baohua.Song at csr.com>
> ---
>  arch/arm/boot/dts/marco-evb.dts |   51 +++
>  arch/arm/boot/dts/marco.dtsi    |  749 +++++++++++++++++++++++++++++++++++++++
>  2 files changed, 800 insertions(+), 0 deletions(-)
>  create mode 100644 arch/arm/boot/dts/marco-evb.dts
>  create mode 100644 arch/arm/boot/dts/marco.dtsi

[...]

> diff --git a/arch/arm/boot/dts/marco.dtsi b/arch/arm/boot/dts/marco.dtsi
> new file mode 100644
> index 0000000..00b5eb7
> --- /dev/null
> +++ b/arch/arm/boot/dts/marco.dtsi
> @@ -0,0 +1,749 @@
> +/*
> + * DTS file for CSR SiRFmarco SoC
> + *
> + * Copyright (c) 2012 Cambridge Silicon Radio Limited, a CSR plc group company.
> + *
> + * Licensed under GPLv2 or later.
> + */
> +
> +/include/ "skeleton.dtsi"
> +/ {
> +       compatible = "sirf,marco";
> +       #address-cells = <1>;
> +       #size-cells = <1>;
> +       interrupt-parent = <&gic>;
> +
> +       cpus {
> +               cpu at 0 {
> +                       compatible = "arm,cortex-a9";
> +               };
> +               cpu at 1 {
> +                       compatible = "arm,cortex-a9";
> +               };
> +       };

It would be good if the cpu nodes had their reg property set, so the logical
map can be populated. They should also have their device_type set to "cpu".

> +
> +       axi {
> +               compatible = "simple-bus";
> +               #address-cells = <1>;
> +               #size-cells = <1>;
> +               ranges = <0x40000000 0x40000000 0xa0000000>;
> +
> +               l2-cache-controller at c0030000 {
> +                       compatible = "arm,pl310-cache", "sirf,marco-pl310-cache";

I believe the order of these should be swapped such that the most specific
match comes first.

> +                       reg = <0xc0030000 0x1000>;
> +                       interrupts = <0 59 0>;
> +                       arm,tag-latency = <1 1 1>;
> +                       arm,data-latency = <1 1 1>;
> +                       arm,filter-ranges = <0x40000000 0x80000000>;
> +               };

[...]

> +               peri-iobg {
> +                       compatible = "simple-bus";
> +                       #address-cells = <1>;
> +                       #size-cells = <1>;
> +                       ranges = <0xcc000000 0xcc000000 0x2000000>;
> +
> +                       timer at cc020000 {
> +                               compatible = "sirf,marco-tick";
> +                               reg = <0xcc020000 0x1000>;
> +                               interrupts = <0 0 0
> +                                             0 1 0
> +                                             0 2 0
> +                                             0 49 0
> +                                             0 50 0
> +                                             0 51 0>;

Small nit: could we have these individually bracketed as below? We're doing
this fairly consistently across platforms now.

[...]

> +                       gpio: pinctrl at cc120000 {
> +                               #gpio-cells = <2>;
> +                               #interrupt-cells = <2>;
> +                               compatible = "sirf,marco-pinctrl";
> +                               reg = <0xcc120000 0x10000>;
> +                               interrupts = <0 43 0>,
> +                                          <0 44 0>,
> +                                          <0 45 0>,
> +                                          <0 46 0>,
> +                                          <0 47 0>;

>From this point on you seem to bracket interrupts individually consistently.

Thanks,
Mark.




More information about the linux-arm-kernel mailing list