ARM: dts: BCM5301X: Describe switch ports in the main DTS
authorRafał Miłecki <rafal@milecki.pl>
Mon, 5 Jun 2023 13:21:09 +0000 (15:21 +0200)
committerFlorian Fainelli <florian.fainelli@broadcom.com>
Thu, 8 Jun 2023 22:05:43 +0000 (15:05 -0700)
All Northstar SoCs have BCM5301x switches (BCM53011, BCM53012) with 8
ports (0-8 without 6). By design 3 switch ports (5, 7 and 8) are
hardwired to 3 on-SoC Ethernet interfaces. Switch port 8 requires
forcing link state.

It seems that global Northstar .dtsi file is the best place to describe
those hw details. Only device specific bits (like labels) should go to
device .dts files.

This seems to fit well with a tiny exception of Asus RT-AC88U which
somehow was designed to have switch 5 connected to an extra switch. This
case was simply handled with a /delete-property/.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
Reviewed-by: Christian Lamparter <chunkeey@gmail.com> (MR32+MR26)
Link: https://lore.kernel.org/r/20230605132109.7933-1-zajec5@gmail.com
Signed-off-by: Florian Fainelli <florian.fainelli@broadcom.com>
22 files changed:
arch/arm/boot/dts/bcm-ns.dtsi
arch/arm/boot/dts/bcm4708-buffalo-wzr-1166dhp-common.dtsi
arch/arm/boot/dts/bcm4708-luxul-xap-1510.dts
arch/arm/boot/dts/bcm4708-luxul-xwc-1000.dts
arch/arm/boot/dts/bcm4708-netgear-r6250.dts
arch/arm/boot/dts/bcm4708-smartrg-sr400ac.dts
arch/arm/boot/dts/bcm47081-buffalo-wzr-600dhp2.dts
arch/arm/boot/dts/bcm47081-luxul-xap-1410.dts
arch/arm/boot/dts/bcm47081-luxul-xwr-1200.dts
arch/arm/boot/dts/bcm4709-netgear-r8000.dts
arch/arm/boot/dts/bcm47094-asus-rt-ac88u.dts
arch/arm/boot/dts/bcm47094-dlink-dir-885l.dts
arch/arm/boot/dts/bcm47094-dlink-dir-890l.dts
arch/arm/boot/dts/bcm47094-linksys-panamera.dts
arch/arm/boot/dts/bcm47094-luxul-abr-4500.dts
arch/arm/boot/dts/bcm47094-luxul-xap-1610.dts
arch/arm/boot/dts/bcm47094-luxul-xbr-4500.dts
arch/arm/boot/dts/bcm47094-luxul-xwc-2000.dts
arch/arm/boot/dts/bcm47094-luxul-xwr-3100.dts
arch/arm/boot/dts/bcm47094-luxul-xwr-3150-v1.dts
arch/arm/boot/dts/bcm53015-meraki-mr26.dts
arch/arm/boot/dts/bcm53016-meraki-mr32.dts

index d9455b33adeea62694f0afbe36e6a66edcc7e550..53472d376a2c05da35d76fa7f13c16a76362a4ed 100644 (file)
 
                status = "disabled";
 
-               /* ports are defined in board DTS */
                ports {
                        #address-cells = <1>;
                        #size-cells = <0>;
+
+                       port@0 {
+                               reg = <0>;
+                       };
+
+                       port@1 {
+                               reg = <1>;
+                       };
+
+                       port@2 {
+                               reg = <2>;
+                       };
+
+                       port@3 {
+                               reg = <3>;
+                       };
+
+                       port@4 {
+                               reg = <4>;
+                       };
+
+                       port@5 {
+                               reg = <5>;
+                               ethernet = <&gmac0>;
+                       };
+
+                       port@7 {
+                               reg = <7>;
+                               ethernet = <&gmac1>;
+                       };
+
+                       port@8 {
+                               reg = <8>;
+                               ethernet = <&gmac2>;
+
+                               fixed-link {
+                                       speed = <1000>;
+                                       full-duplex;
+                               };
+                       };
                };
        };
 
index 0846887ba144de4af2f9558d30e70381ab39242b..42bcbf10957c408b48365d2b5a388db39051f542 100644 (file)
 
        ports {
                port@0 {
-                       reg = <0>;
                        label = "lan1";
                };
 
                port@1 {
-                       reg = <1>;
                        label = "lan2";
                };
 
                port@2 {
-                       reg = <2>;
                        label = "lan3";
                };
 
                port@3 {
-                       reg = <3>;
                        label = "lan4";
                };
 
                port@4 {
-                       reg = <4>;
                        label = "wan";
                };
 
                port@5 {
-                       reg = <5>;
                        label = "cpu";
-                       ethernet = <&gmac0>;
                };
        };
 };
index 5d0549855978d50242fd89d05365589c01cc19ca..e04d2e5ea51aa479569baddd2a9d1ec8be2cd738 100644 (file)
 
        ports {
                port@0 {
-                       reg = <0>;
                        label = "poe";
                };
 
                port@4 {
-                       reg = <4>;
                        label = "lan";
                };
 
                port@5 {
-                       reg = <5>;
                        label = "cpu";
-                       ethernet = <&gmac0>;
                };
        };
 };
index 4ca348c06b51f97aa835cf20f8cae48fc18646d4..a399800139d9ce9c8f90fdfd26321eeee88606e2 100644 (file)
 
        ports {
                port@4 {
-                       reg = <4>;
                        label = "lan";
                };
 
                port@5 {
-                       reg = <5>;
                        label = "cpu";
-                       ethernet = <&gmac0>;
                };
        };
 };
index 8661ec94ca672a858988ee5364c284e6c9da0fbc..fad3473810a2e58d471339c69d1cf9c32bc26227 100644 (file)
 
        ports {
                port@0 {
-                       reg = <0>;
                        label = "lan4";
                };
 
                port@1 {
-                       reg = <1>;
                        label = "lan3";
                };
 
                port@2 {
-                       reg = <2>;
                        label = "lan2";
                };
 
                port@3 {
-                       reg = <3>;
                        label = "lan1";
                };
 
                port@4 {
-                       reg = <4>;
                        label = "wan";
                };
 
                port@5 {
-                       reg = <5>;
                        label = "cpu";
-                       ethernet = <&gmac0>;
                };
        };
 };
index 26cdeb5cc33773b796a55e408730a99dcdd739bb..5b2b7b8b3b123f5d864f4f2176cd6424eb9f56ad 100644 (file)
 
        ports {
                port@0 {
-                       reg = <0>;
                        label = "lan4";
                };
 
                port@1 {
-                       reg = <1>;
                        label = "lan3";
                };
 
                port@2 {
-                       reg = <2>;
                        label = "lan2";
                };
 
                port@3 {
-                       reg = <3>;
                        label = "lan1";
                };
 
                port@4 {
-                       reg = <4>;
                        label = "wan";
                };
 
                port@5 {
-                       reg = <5>;
                        label = "cpu";
-                       ethernet = <&gmac0>;
                };
        };
 };
index a2b7644eaf393cacc8d1ca6b8ef21f12e13afa76..d0a26b643b82feb7c6672b89472dc8a88ea412e4 100644 (file)
 
        ports {
                port@0 {
-                       reg = <0>;
                        label = "lan1";
                };
 
                port@1 {
-                       reg = <1>;
                        label = "lan2";
                };
 
                port@2 {
-                       reg = <2>;
                        label = "lan3";
                };
 
                port@3 {
-                       reg = <3>;
                        label = "lan4";
                };
 
                port@4 {
-                       reg = <4>;
                        label = "wan";
                };
 
                port@5 {
-                       reg = <5>;
                        label = "cpu";
-                       ethernet = <&gmac0>;
                };
        };
 };
index 7e042928fd40e9c368561faa30a97313983a2004..9f21d6d6d35b7599cb96325ab4f40d7f6e97c1c9 100644 (file)
 
        ports {
                port@4 {
-                       reg = <4>;
                        label = "poe";
                };
 
                port@5 {
-                       reg = <5>;
                        label = "cpu";
-                       ethernet = <&gmac0>;
                };
        };
 };
index 231d437408d8bb2f49d69b330eb749e2951c679f..2561072917021cb8efd479710ea1090544c10c47 100644 (file)
 
        ports {
                port@0 {
-                       reg = <0>;
                        label = "lan4";
                };
 
                port@1 {
-                       reg = <1>;
                        label = "lan3";
                };
 
                port@2 {
-                       reg = <2>;
                        label = "lan2";
                };
 
                port@3 {
-                       reg = <3>;
                        label = "lan1";
                };
 
                port@4 {
-                       reg = <4>;
                        label = "wan";
                        nvmem-cells = <&et0macaddr 5>;
                        nvmem-cell-names = "mac-address";
                };
 
                port@5 {
-                       reg = <5>;
                        label = "cpu";
-                       ethernet = <&gmac0>;
                };
        };
 };
index 14303ab521ea49cf446aa31e24dddaa40738b02b..dae3c7d2f0466823261f46f6f5467dc1e6d5088b 100644 (file)
 
        ports {
                port@0 {
-                       reg = <0>;
                        label = "lan1";
                };
 
                port@1 {
-                       reg = <1>;
                        label = "lan2";
                };
 
                port@2 {
-                       reg = <2>;
                        label = "lan3";
                };
 
                port@3 {
-                       reg = <3>;
                        label = "lan4";
                };
 
                port@4 {
-                       reg = <4>;
                        label = "wan";
                };
 
                port@8 {
-                       reg = <8>;
                        label = "cpu";
-                       ethernet = <&gmac2>;
-
-                       fixed-link {
-                               speed = <1000>;
-                               full-duplex;
-                       };
                };
        };
 };
index a50ff686b557edb39df1f5c2c3da2d3c9a21e128..4d5747aa5dc828df123e42468733c2e3fea6f374 100644 (file)
 
        ports {
                port@0 {
-                       reg = <0>;
                        label = "lan4";
                };
 
                port@1 {
-                       reg = <1>;
                        label = "lan3";
                };
 
                port@2 {
-                       reg = <2>;
                        label = "lan2";
                };
 
                port@3 {
-                       reg = <3>;
                        label = "lan1";
                };
 
                port@4 {
-                       reg = <4>;
                        label = "wan";
                };
 
                sw0_p5: port@5 {
-                       reg = <5>;
+                       /delete-property/ethernet;
+
                        label = "extsw";
                        phy-mode = "rgmii";
 
                };
 
                port@7 {
-                       reg = <7>;
-                       ethernet = <&gmac1>;
                        label = "cpu";
 
                        fixed-link {
                };
 
                port@8 {
-                       reg = <8>;
-                       ethernet = <&gmac2>;
                        label = "cpu";
-
-                       fixed-link {
-                               speed = <1000>;
-                               full-duplex;
-                       };
                };
        };
 };
index 555fbe41dd8fe551490e364ef9a7c0a2c9604a23..51ce510b3e3a0147ccd71bdcf47f350cdea02b15 100644 (file)
 
        ports {
                port@0 {
-                       reg = <0>;
                        label = "lan4";
                };
 
                port@1 {
-                       reg = <1>;
                        label = "lan3";
                };
 
                port@2 {
-                       reg = <2>;
                        label = "lan2";
                };
 
                port@3 {
-                       reg = <3>;
                        label = "lan1";
                };
 
                port@4 {
-                       reg = <4>;
                        label = "wan";
                };
 
                port@8 {
-                       reg = <8>;
                        label = "cpu";
-                       ethernet = <&gmac2>;
-
-                       fixed-link {
-                               speed = <1000>;
-                               full-duplex;
-                       };
                };
        };
 };
index d945a20b06e07a1d90f45cc428cf9ab5bdeeb1a8..60744f82c2b71a76a2d93e827347feb4fd001684 100644 (file)
 
        ports {
                port@0 {
-                       reg = <0>;
                        label = "lan1";
                };
 
                port@1 {
-                       reg = <1>;
                        label = "lan2";
                };
 
                port@2 {
-                       reg = <2>;
                        label = "lan3";
                };
 
                port@3 {
-                       reg = <3>;
                        label = "lan4";
                };
 
                port@4 {
-                       reg = <4>;
                        label = "wan";
                };
 
                port@8 {
-                       reg = <8>;
                        label = "cpu";
-                       ethernet = <&gmac2>;
                        phy-mode = "rgmii";
-
-                       fixed-link {
-                               speed = <1000>;
-                               full-duplex;
-                       };
                };
        };
 };
index d9a16a820e7f902e3d23cb71f07c5f83452dd985..8036c04d81cbf53e3044abc25f0b1add9175b31f 100644 (file)
        dsa,member = <0 0>;
 
        ports {
+               sw0_p0: port@0 {
+                       label = "extsw";
+
+                       fixed-link {
+                               speed = <1000>;
+                               full-duplex;
+                       };
+               };
+
                port@1 {
-                       reg = <1>;
                        label = "lan7";
                };
 
                port@2 {
-                       reg = <2>;
                        label = "lan4";
                };
 
                port@3 {
-                       reg = <3>;
                        label = "lan8";
                };
 
                port@4 {
-                       reg = <4>;
                        label = "wan";
                };
 
                port@5 {
-                       reg = <5>;
-                       ethernet = <&gmac0>;
                        label = "cpu";
                        status = "disabled";
 
                };
 
                port@7 {
-                       reg = <7>;
-                       ethernet = <&gmac1>;
                        label = "cpu";
                        status = "disabled";
 
                };
 
                port@8 {
-                       reg = <8>;
-                       ethernet = <&gmac2>;
                        label = "cpu";
-
-                       fixed-link {
-                               speed = <1000>;
-                               full-duplex;
-                       };
-               };
-
-               sw0_p0: port@0 {
-                       reg = <0>;
-                       label = "extsw";
-
-                       fixed-link {
-                               speed = <1000>;
-                               full-duplex;
-                       };
                };
        };
 };
index ae552387085429a11c2b7772e9e5942de9d415a8..e8991d4e248ce2851a8e4bcecfcccc91c27522d7 100644 (file)
 
        ports {
                port@0 {
-                       reg = <0>;
                        label = "wan";
                        nvmem-cells = <&et0macaddr 1>;
                        nvmem-cell-names = "mac-address";
                };
 
                port@1 {
-                       reg = <1>;
                        label = "lan4";
                };
 
                port@2 {
-                       reg = <2>;
                        label = "lan3";
                };
 
                port@3 {
-                       reg = <3>;
                        label = "lan2";
                };
 
                port@4 {
-                       reg = <4>;
                        label = "lan1";
                };
 
                port@5 {
-                       reg = <5>;
                        label = "cpu";
-                       ethernet = <&gmac0>;
                };
        };
 };
index 9220f193499e7b084cedb988a5a8b1b4f6267845..6875625869d9c8e23a9acd869e51d664a581828e 100644 (file)
 
        ports {
                port@0 {
-                       reg = <0>;
                        label = "poe";
                };
 
                port@1 {
-                       reg = <1>;
                        label = "lan";
                };
 
                port@5 {
-                       reg = <5>;
                        label = "cpu";
-                       ethernet = <&gmac0>;
                };
        };
 };
index 2bd64dcd43535696b6ea714ff7022fcfd7a91744..7cfa4607ef311fb1b4bb97a548bbb1a177f3faf6 100644 (file)
 
        ports {
                port@0 {
-                       reg = <0>;
                        label = "wan";
                        nvmem-cells = <&et0macaddr 1>;
                        nvmem-cell-names = "mac-address";
                };
 
                port@1 {
-                       reg = <1>;
                        label = "lan4";
                };
 
                port@2 {
-                       reg = <2>;
                        label = "lan3";
                };
 
                port@3 {
-                       reg = <3>;
                        label = "lan2";
                };
 
                port@4 {
-                       reg = <4>;
                        label = "lan1";
                };
 
                port@5 {
-                       reg = <5>;
                        label = "cpu";
-                       ethernet = <&gmac0>;
                };
        };
 };
index 8a6d19f985c13bf8b7823e6087f11267f2e3fe5c..d55e10095eae79c27412bb311575864d11211dd3 100644 (file)
 
        ports {
                port@0 {
-                       reg = <0>;
                        label = "lan";
                };
 
                port@5 {
-                       reg = <5>;
                        label = "cpu";
-                       ethernet = <&gmac0>;
                };
        };
 };
index 52783a4b6f999526ab9d28d70d3bfa28644e5fb5..ccf031c0e276d6b45d1fd1220643845b3a063713 100644 (file)
 
        ports {
                port@0 {
-                       reg = <0>;
                        label = "lan4";
                };
 
                port@1 {
-                       reg = <1>;
                        label = "lan3";
                };
 
                port@2 {
-                       reg = <2>;
                        label = "lan2";
                };
 
                port@3 {
-                       reg = <3>;
                        label = "lan1";
                };
 
                port@4 {
-                       reg = <4>;
                        label = "wan";
                        nvmem-cells = <&et0macaddr 5>;
                        nvmem-cell-names = "mac-address";
                };
 
                port@5 {
-                       reg = <5>;
                        label = "cpu";
-                       ethernet = <&gmac0>;
                };
        };
 };
index 2dd05f4dce92a0b8896d9af50fb4c22ea8a09e46..789dd2a3d22638f0315c9e7b4f2e10f6a4c16fda 100644 (file)
 
        ports {
                port@0 {
-                       reg = <0>;
                        label = "lan4";
                };
 
                port@1 {
-                       reg = <1>;
                        label = "lan3";
                };
 
                port@2 {
-                       reg = <2>;
                        label = "lan2";
                };
 
                port@3 {
-                       reg = <3>;
                        label = "lan1";
                };
 
                port@4 {
-                       reg = <4>;
                        label = "wan";
                        nvmem-cells = <&et0macaddr 5>;
                        nvmem-cell-names = "mac-address";
                };
 
                port@5 {
-                       reg = <5>;
                        label = "cpu";
-                       ethernet = <&gmac0>;
                };
        };
 };
index 071f2cb97251a402b0b5456aee448d181e552f96..24ba467c67b914db436df8aa2947b4dcbe621588 100644 (file)
 
        ports {
                port@0 {
-                       reg = <0>;
                        label = "poe";
                };
 
                port@5 {
-                       reg = <5>;
                        label = "cpu";
-                       ethernet = <&gmac0>;
 
                        fixed-link {
                                speed = <1000>;
index 46c2c93b01d88ca4a2a16ffe1ed96c9446ad24dd..559d6c371d67abb26401127292c6aab425229c55 100644 (file)
 
        ports {
                port@0 {
-                       reg = <0>;
                        label = "poe";
                };
 
                port@5 {
-                       reg = <5>;
                        label = "cpu";
-                       ethernet = <&gmac0>;
 
                        fixed-link {
                                speed = <1000>;