ARM: Kirkwood: Fix DT based DSA.
authorAndrew Lunn <andrew@lunn.ch>
Mon, 1 Sep 2014 17:35:41 +0000 (19:35 +0200)
committerJason Cooper <jason@lakedaemon.net>
Sat, 13 Sep 2014 21:03:48 +0000 (21:03 +0000)
During the conversion of boards to use DT to instantiate Distributed
Switch Architecture, nobody volunteered to test. As to be expected,
the conversion was flawed. Testers and access to hardware has now
become available, and this patch hopefully fixes the problems.

dsa,mii-bus must be a phandle to the top level mdio node, not the port
specific subnode of the mdio device.

dsa,ethernet must be a phandle to the port subnode within the ethernet
DT node, not the ethernet node.

Don't pinctrl hog the card detect gpio for mvsdio.

Rename the .dts files to make it clearer which file is for the Z0
stepping and which for the A0 or later stepping.

Signed-off-by: Andrew Lunn <andrew@lunn.ch>
Cc: seugene@marvell.com
Tested-by: Eugene Sanivsky <seugene@marvell.com>
Fixes: e2eaa339af44: ("ARM: Kirkwood: convert rd88f6281-setup.c to DT.")
Fixes: e7c8f3808be8: ("ARM: kirkwood: Convert mv88f6281gtw_ge switch setup to DT")
Cc: <stable@vger.kernel.org> #v3.15+
Link: https://lkml.kernel.org/r/1409592941-22244-1-git-send-email-andrew@lunn.ch
Signed-off-by: Jason Cooper <jason@lakedaemon.net>
arch/arm/boot/dts/Makefile
arch/arm/boot/dts/kirkwood-mv88f6281gtw-ge.dts
arch/arm/boot/dts/kirkwood-rd88f6281-a.dts [new file with mode: 0644]
arch/arm/boot/dts/kirkwood-rd88f6281-a0.dts [deleted file]
arch/arm/boot/dts/kirkwood-rd88f6281-a1.dts [deleted file]
arch/arm/boot/dts/kirkwood-rd88f6281-z0.dts [new file with mode: 0644]
arch/arm/boot/dts/kirkwood-rd88f6281.dtsi
arch/arm/boot/dts/kirkwood.dtsi

index b8c5cd3ddeb9c0f10e18cff41f8b0aaf33396765..e6aa6e77a3ecbf6cf473cb76ea7d5d55548e4bd4 100644 (file)
@@ -144,8 +144,8 @@ dtb-$(CONFIG_MACH_KIRKWOOD) += kirkwood-b3.dtb \
        kirkwood-openrd-client.dtb \
        kirkwood-openrd-ultimate.dtb \
        kirkwood-rd88f6192.dtb \
-       kirkwood-rd88f6281-a0.dtb \
-       kirkwood-rd88f6281-a1.dtb \
+       kirkwood-rd88f6281-z0.dtb \
+       kirkwood-rd88f6281-a.dtb \
        kirkwood-rs212.dtb \
        kirkwood-rs409.dtb \
        kirkwood-rs411.dtb \
index 8f76d28759a30747d96014bfb8582622d049798b..f82827d6fcff66f93e86b673b7a3f5077ea1bad4 100644 (file)
 
        dsa@0 {
                compatible = "marvell,dsa";
-               #address-cells = <2>;
+               #address-cells = <1>;
                #size-cells = <0>;
 
-               dsa,ethernet = <&eth0>;
-               dsa,mii-bus = <&ethphy0>;
+               dsa,ethernet = <&eth0port>;
+               dsa,mii-bus = <&mdio>;
 
                switch@0 {
                        #address-cells = <1>;
 
 &mdio {
        status = "okay";
-
-       ethphy0: ethernet-phy@ff {
-               reg = <0xff>;   /* No phy attached */
-               speed = <1000>;
-               duplex = <1>;
-       };
 };
 
 &eth0 {
        status = "okay";
+
        ethernet0-port@0 {
-               phy-handle = <&ethphy0>;
+               speed = <1000>;
+               duplex = <1>;
        };
 };
diff --git a/arch/arm/boot/dts/kirkwood-rd88f6281-a.dts b/arch/arm/boot/dts/kirkwood-rd88f6281-a.dts
new file mode 100644 (file)
index 0000000..f2e08b3
--- /dev/null
@@ -0,0 +1,43 @@
+/*
+ * Marvell RD88F6181 A Board descrition
+ *
+ * Andrew Lunn <andrew@lunn.ch>
+ *
+ * This file is licensed under the terms of the GNU General Public
+ * License version 2.  This program is licensed "as is" without any
+ * warranty of any kind, whether express or implied.
+ *
+ * This file contains the definitions for the board with the A0 or
+ * higher stepping of the SoC. The ethernet switch does not have a
+ * "wan" port.
+ */
+
+/dts-v1/;
+#include "kirkwood-rd88f6281.dtsi"
+
+/ {
+       model = "Marvell RD88f6281 Reference design, with A0 or higher SoC";
+       compatible = "marvell,rd88f6281-a", "marvell,rd88f6281","marvell,kirkwood-88f6281", "marvell,kirkwood";
+
+       dsa@0 {
+               switch@0 {
+                       reg = <10 0>;    /* MDIO address 10, switch 0 in tree */
+               };
+       };
+};
+
+&mdio {
+       status = "okay";
+
+       ethphy1: ethernet-phy@11 {
+                reg = <11>;
+       };
+};
+
+&eth1 {
+       status = "okay";
+
+       ethernet1-port@0 {
+                phy-handle = <&ethphy1>;
+       };
+};
diff --git a/arch/arm/boot/dts/kirkwood-rd88f6281-a0.dts b/arch/arm/boot/dts/kirkwood-rd88f6281-a0.dts
deleted file mode 100644 (file)
index a803bbb..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- * Marvell RD88F6181 A0 Board descrition
- *
- * Andrew Lunn <andrew@lunn.ch>
- *
- * This file is licensed under the terms of the GNU General Public
- * License version 2.  This program is licensed "as is" without any
- * warranty of any kind, whether express or implied.
- *
- * This file contains the definitions for the board with the A0 variant of
- * the SoC. The ethernet switch does not have a "wan" port.
- */
-
-/dts-v1/;
-#include "kirkwood-rd88f6281.dtsi"
-
-/ {
-       model = "Marvell RD88f6281 Reference design, with A0 SoC";
-       compatible = "marvell,rd88f6281-a0", "marvell,rd88f6281","marvell,kirkwood-88f6281", "marvell,kirkwood";
-
-       dsa@0 {
-               switch@0 {
-                       reg = <10 0>;    /* MDIO address 10, switch 0 in tree */
-               };
-       };
-};
\ No newline at end of file
diff --git a/arch/arm/boot/dts/kirkwood-rd88f6281-a1.dts b/arch/arm/boot/dts/kirkwood-rd88f6281-a1.dts
deleted file mode 100644 (file)
index baeebbf..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * Marvell RD88F6181 A1 Board descrition
- *
- * Andrew Lunn <andrew@lunn.ch>
- *
- * This file is licensed under the terms of the GNU General Public
- * License version 2.  This program is licensed "as is" without any
- * warranty of any kind, whether express or implied.
- *
- * This file contains the definitions for the board with the A1 variant of
- * the SoC. The ethernet switch has a "wan" port.
- */
-
-/dts-v1/;
-
-#include "kirkwood-rd88f6281.dtsi"
-
-/ {
-       model = "Marvell RD88f6281 Reference design, with A1 SoC";
-       compatible = "marvell,rd88f6281-a1", "marvell,rd88f6281","marvell,kirkwood-88f6281", "marvell,kirkwood";
-
-       dsa@0 {
-               switch@0 {
-                       reg = <0 0>;    /* MDIO address 0, switch 0 in tree */
-                       port@4 {
-                               reg = <4>;
-                               label = "wan";
-                       };
-               };
-       };
-};
\ No newline at end of file
diff --git a/arch/arm/boot/dts/kirkwood-rd88f6281-z0.dts b/arch/arm/boot/dts/kirkwood-rd88f6281-z0.dts
new file mode 100644 (file)
index 0000000..f4272b6
--- /dev/null
@@ -0,0 +1,35 @@
+/*
+ * Marvell RD88F6181 Z0 stepping descrition
+ *
+ * Andrew Lunn <andrew@lunn.ch>
+ *
+ * This file is licensed under the terms of the GNU General Public
+ * License version 2.  This program is licensed "as is" without any
+ * warranty of any kind, whether express or implied.
+ *
+ * This file contains the definitions for the board using the Z0
+ * stepping of the SoC. The ethernet switch has a "wan" port.
+*/
+
+/dts-v1/;
+
+#include "kirkwood-rd88f6281.dtsi"
+
+/ {
+       model = "Marvell RD88f6281 Reference design, with Z0 SoC";
+       compatible = "marvell,rd88f6281-z0", "marvell,rd88f6281","marvell,kirkwood-88f6281", "marvell,kirkwood";
+
+       dsa@0 {
+               switch@0 {
+                       reg = <0 0>;    /* MDIO address 0, switch 0 in tree */
+                       port@4 {
+                               reg = <4>;
+                               label = "wan";
+                       };
+               };
+       };
+};
+
+&eth1 {
+      status = "disabled";
+};
index 26cf0e0ccefd3772f6e194b8102ea751408d3f6f..d195e884b3b529617031250bbe1ecb5184fdd201 100644 (file)
@@ -37,7 +37,6 @@
 
        ocp@f1000000 {
                pinctrl: pin-controller@10000 {
-                       pinctrl-0 = <&pmx_sdio_cd>;
                        pinctrl-names = "default";
 
                        pmx_sdio_cd: pmx-sdio-cd {
@@ -69,8 +68,8 @@
                #address-cells = <2>;
                #size-cells = <0>;
 
-               dsa,ethernet = <&eth0>;
-               dsa,mii-bus = <&ethphy1>;
+               dsa,ethernet = <&eth0port>;
+               dsa,mii-bus = <&mdio>;
 
                switch@0 {
                        #address-cells = <1>;
        };
 
        partition@300000 {
-               label = "data";
+               label = "rootfs";
                reg = <0x0300000 0x500000>;
        };
 };
 
 &mdio {
        status = "okay";
-
-       ethphy0: ethernet-phy@0 {
-               reg = <0>;
-       };
-
-       ethphy1: ethernet-phy@ff {
-               reg = <0xff>; /* No PHY attached */
-               speed = <1000>;
-               duple = <1>;
-       };
 };
 
 &eth0 {
        status = "okay";
        ethernet0-port@0 {
-               phy-handle = <&ethphy0>;
-       };
-};
-
-&eth1 {
-       status = "okay";
-       ethernet1-port@0 {
-               phy-handle = <&ethphy1>;
+               speed = <1000>;
+               duplex = <1>;
        };
 };
index afc640cd80c5f6c6cf561550e3fb9133beb3d523..464f09a1a4a5bffebeb90eafcd0e251f962602c7 100644 (file)
                        marvell,tx-checksum-limit = <1600>;
                        status = "disabled";
 
-                       ethernet0-port@0 {
+                       eth0port: ethernet0-port@0 {
                                compatible = "marvell,kirkwood-eth-port";
                                reg = <0>;
                                interrupts = <11>;
                        pinctrl-names = "default";
                        status = "disabled";
 
-                       ethernet1-port@0 {
+                       eth1port: ethernet1-port@0 {
                                compatible = "marvell,kirkwood-eth-port";
                                reg = <0>;
                                interrupts = <15>;