[PATCH 3/7] ARM: mmp: support DT on both dkb and brownstone
Grant Likely
grant.likely at secretlab.ca
Tue Jul 19 15:49:44 EDT 2011
On Tue, Jul 19, 2011 at 09:42:32PM +0800, Mitch Bradley wrote:
> Thanks for doing this work. I'm currently working on a One Laptop
> Per Child product that is based on the Armada 610, so this very
> timely for OLPC.
>
> See my in-line comments on the specification of the soc top-level
> nodes, related to the addressing of their children, and on the
> presence of "#address-cells" and "#size-cells" in the intc nodes.
>
> -- Mitch Bradley
>
> On 7/19/2011 10:24 AM, Haojian Zhuang wrote:
> >Add new boards.c to support both TTC-DKB and MMP2-BROWNSTONE. While
> >CONFIG_MMP_USE_OF is selected, original ttc_dkb.c and brownstone.c won't be
> >compiled.
> >
> >While everything moving to DT in ARCH-MMP, original ttc_dkb.c and brownstone.c
> >will be abandoned.
> >
> >Signed-off-by: Haojian Zhuang<haojian.zhuang at marvell.com>
> >---
> > .../devicetree/bindings/arm/marvell/boards.txt | 7 +
> > arch/arm/boot/dts/mmp2-brownstone.dts | 242 ++++++++++++++++++++
> > arch/arm/boot/dts/ttc-dkb.dts | 80 +++++++
> > arch/arm/mach-mmp/Makefile | 4 +
> > arch/arm/mach-mmp/boards.c | 159 +++++++++++++
> > 5 files changed, 492 insertions(+), 0 deletions(-)
> > create mode 100644 Documentation/devicetree/bindings/arm/marvell/boards.txt
> > create mode 100644 arch/arm/boot/dts/mmp2-brownstone.dts
> > create mode 100644 arch/arm/boot/dts/ttc-dkb.dts
> > create mode 100644 arch/arm/mach-mmp/boards.c
> >
> >diff --git a/Documentation/devicetree/bindings/arm/marvell/boards.txt b/Documentation/devicetree/bindings/arm/marvell/boards.txt
> >new file mode 100644
> >index 0000000..219e134
> >--- /dev/null
> >+++ b/Documentation/devicetree/bindings/arm/marvell/boards.txt
> >@@ -0,0 +1,7 @@
> >+TTC(pxa910) "DKB" evalutation board
> >+Required root node properties:
> >+ - compatible = "mrvl,ttc-dkb", "mrvl,pxa910-dkb";
> >+
> >+mmp2(armada610) "Brownstone" evalutation board
> >+Required root node properties:
> >+ - compatible = "mrvl,mmp2-brownstone", "mrvl,armada610-brownstone";
> >diff --git a/arch/arm/boot/dts/mmp2-brownstone.dts b/arch/arm/boot/dts/mmp2-brownstone.dts
> >new file mode 100644
> >index 0000000..4e14388
> >--- /dev/null
> >+++ b/arch/arm/boot/dts/mmp2-brownstone.dts
> >@@ -0,0 +1,242 @@
> >+/dts-v1/;
> >+
> >+/include/ "skeleton.dtsi"
> >+
> >+/ {
> >+ model = "Marvell MMP2 Brownstone";
> >+ compatible = "mrvl,mmp2-brownstone", "mrvl,armada610-brownstone";
> >+
> >+ memory {
> >+ reg =<0x00000000 0x20000000>;
> >+ };
> >+
> >+ chosen {
> >+ bootargs = "console=ttyS2,38400 root=/dev/nfs nfsroot=192.168.1.100:192.168.1.101::255.255.255.0::eth0:on";
> >+ linux,stdout-path =&uart2;
> >+ };
> >+
> >+ soc at d4000000 {
> >+ compatible = "mrvl,mmp2", "mrvl,armada610", "simple-bus";
> >+ device_type = "soc";
>
> Can someone comment on the use of "device_type" here? I thought
> that device_type was deprecated. Is there some residual use for it
> in Linux?
It is, and device_type should be removed for .dts files.
>
> >+ #address-cells =<1>;
> >+ #size-cells =<1>;
> >+ ranges;
>
> This way of addressing of APB and AXI devices would work, in that
> the empty ranges property specifies no address translation across
> the "soc" node. However, in a case like this, it is unclear to me
> why you need an "soc" node at all. The "soc" node appears to have
> no semantics. You could just move all the subordinate devices up a
> level, making them direct children of the root node. As I
> understand it, the Linux kernel no longer has a problem with devices
> being directly attached to the root node.
>
> If you want to have a bus node at this level, I think it's best to
> go all the way and define it as an AXI/APB bus, exposing some of the
> addressing semantics of that kind of bus. See below for an
> exploration of how that might work, in the comments for the ttc-dkb
> "soc" node.
>
> >+
> >+ mmp_intc: interrupt-controller at d4282000 {
> >+ compatible = "mrvl,mmp-intc";
> >+ #address-cells =<1>;
> >+ #size-cells =<1>;
>
> I believe that this node should not have "#address-cells" and
> "#size-cells" properties. Such properties apply to nodes that have
> child nodes, expressing how those children are addressed. I think
> that the interrupt controller is not intended to have child nodes.
I agree
More information about the linux-arm-kernel
mailing list