net: mscc: jaguar2: Add ethenet nodes for Jaguar2.
authorHoratiu Vultur <horatiu.vultur@microchip.com>
Wed, 3 Apr 2019 17:54:47 +0000 (19:54 +0200)
committerDaniel Schwierzeck <daniel.schwierzeck@gmail.com>
Fri, 12 Apr 2019 15:32:51 +0000 (17:32 +0200)
Add ethernet nodes for Jaguar2 SoCs family. There are 3 pcb in this
family: pcb110, pcb111 and pcb112.

Signed-off-by: Horatiu Vultur <horatiu.vultur@microchip.com>
arch/mips/dts/jr2_pcb110.dts
arch/mips/dts/jr2_pcb111.dts
arch/mips/dts/mscc,jr2.dtsi
arch/mips/dts/serval2_pcb112.dts
include/dt-bindings/mscc/jr2_data.h [new file with mode: 0644]

index ddc30ff76a9b89a775732498ac31a0a5b3bca976..4a5a5848b9f1a841a617dca64afe1b77fa4eaff0 100644 (file)
@@ -5,6 +5,7 @@
 
 /dts-v1/;
 #include "mscc,jr2.dtsi"
+#include <dt-bindings/mscc/jr2_data.h>
 
 / {
        model = "Jaguar2 Cu8-Sfp16 PCB110 Reference Board";
        sgpio-ports = <0x3f00ffff>;
        gpio-ranges = <&sgpio2 0 0 96>;
 };
+
+&mdio1 {
+       status = "okay";
+
+       phy0: ethernet-phy@0 {
+               reg = <0>;
+       };
+       phy1: ethernet-phy@1 {
+               reg = <1>;
+       };
+       phy2: ethernet-phy@2 {
+               reg = <2>;
+       };
+       phy3: ethernet-phy@3 {
+               reg = <3>;
+       };
+       phy4: ethernet-phy@4 {
+               reg = <4>;
+       };
+       phy5: ethernet-phy@5 {
+               reg = <5>;
+       };
+       phy6: ethernet-phy@6 {
+               reg = <6>;
+       };
+       phy7: ethernet-phy@7 {
+               reg = <7>;
+       };
+};
+
+&switch {
+       ethernet-ports {
+
+               port0: port@0 {
+                       reg = <0>;
+                       phy-handle = <&phy0>;
+                       phys = <&serdes_hsio 0 SERDES1G(1) PHY_MODE_SGMII>;
+               };
+               port1: port@1 {
+                       reg = <1>;
+                       phy-handle = <&phy1>;
+                       phys = <&serdes_hsio 1 SERDES1G(2) PHY_MODE_SGMII>;
+               };
+               port2: port@2 {
+                       reg = <2>;
+                       phy-handle = <&phy2>;
+                       phys = <&serdes_hsio 2 SERDES1G(3) PHY_MODE_SGMII>;
+               };
+               port3: port@3 {
+                       reg = <3>;
+                       phy-handle = <&phy3>;
+                       phys = <&serdes_hsio 3 SERDES1G(4) PHY_MODE_SGMII>;
+               };
+               port4: port@4 {
+                       reg = <4>;
+                       phy-handle = <&phy4>;
+                       phys = <&serdes_hsio 4 SERDES1G(5) PHY_MODE_SGMII>;
+               };
+               port5: port@5 {
+                       reg = <5>;
+                       phy-handle = <&phy5>;
+                       phys = <&serdes_hsio 5 SERDES1G(6) PHY_MODE_SGMII>;
+               };
+               port6: port@6 {
+                       reg = <6>;
+                       phy-handle = <&phy6>;
+                       phys = <&serdes_hsio 6 SERDES1G(7) PHY_MODE_SGMII>;
+               };
+               port7: port@7 {
+                       reg = <7>;
+                       phy-handle = <&phy7>;
+                       phys = <&serdes_hsio 7 SERDES1G(8) PHY_MODE_SGMII>;
+               };
+       };
+};
index 4d411b6dc4ea4df18e0c637232ae494e010ed19c..f37ebc760168723749c278b8214c594f02f8ee9c 100644 (file)
@@ -5,6 +5,7 @@
 
 /dts-v1/;
 #include "mscc,jr2.dtsi"
+#include <dt-bindings/mscc/jr2_data.h>
 
 / {
        model = "Jaguar2 Cu48 PCB111 Reference Board";
        sgpio-ports = <0xff000000>;
        gpio-ranges = <&sgpio2 0 0 96>;
 };
+
+&mdio1 {
+       status = "okay";
+
+       phy0: ethernet-phy@0 {
+               reg = <0>;
+       };
+       phy1: ethernet-phy@1 {
+               reg = <1>;
+       };
+       phy2: ethernet-phy@2 {
+               reg = <2>;
+       };
+       phy3: ethernet-phy@3 {
+               reg = <3>;
+       };
+       phy4: ethernet-phy@4 {
+               reg = <4>;
+       };
+       phy5: ethernet-phy@5 {
+               reg = <5>;
+       };
+       phy6: ethernet-phy@6 {
+               reg = <6>;
+       };
+       phy7: ethernet-phy@7 {
+               reg = <7>;
+       };
+       phy8: ethernet-phy@8 {
+               reg = <8>;
+       };
+       phy9: ethernet-phy@9 {
+               reg = <9>;
+       };
+       phy10: ethernet-phy@10 {
+               reg = <10>;
+       };
+       phy11: ethernet-phy@11 {
+               reg = <11>;
+       };
+       phy12: ethernet-phy@12 {
+               reg = <12>;
+       };
+       phy13: ethernet-phy@13 {
+               reg = <13>;
+       };
+       phy14: ethernet-phy@14 {
+               reg = <14>;
+       };
+       phy15: ethernet-phy@15 {
+               reg = <15>;
+       };
+       phy16: ethernet-phy@16 {
+               reg = <16>;
+       };
+       phy17: ethernet-phy@17 {
+               reg = <17>;
+       };
+       phy18: ethernet-phy@18 {
+               reg = <18>;
+       };
+       phy19: ethernet-phy@19 {
+               reg = <19>;
+       };
+       phy20: ethernet-phy@20 {
+               reg = <20>;
+       };
+       phy21: ethernet-phy@21 {
+               reg = <21>;
+       };
+       phy22: ethernet-phy@22 {
+               reg = <22>;
+       };
+       phy23: ethernet-phy@23 {
+               reg = <23>;
+       };
+};
+
+&mdio2 {
+       status = "okay";
+
+       phy24: ethernet-phy@24 {
+               reg = <0>;
+       };
+       phy25: ethernet-phy@25 {
+               reg = <1>;
+       };
+       phy26: ethernet-phy@26 {
+               reg = <2>;
+       };
+       phy27: ethernet-phy@27 {
+               reg = <3>;
+       };
+       phy28: ethernet-phy@28 {
+               reg = <4>;
+       };
+       phy29: ethernet-phy@29 {
+               reg = <5>;
+       };
+       phy30: ethernet-phy@30 {
+               reg = <6>;
+       };
+       phy31: ethernet-phy@31 {
+               reg = <7>;
+       };
+       phy32: ethernet-phy@32 {
+               reg = <8>;
+       };
+       phy33: ethernet-phy@33 {
+               reg = <9>;
+       };
+       phy34: ethernet-phy@34 {
+               reg = <10>;
+       };
+       phy35: ethernet-phy@35 {
+               reg = <11>;
+       };
+       phy36: ethernet-phy@36 {
+               reg = <12>;
+       };
+       phy37: ethernet-phy@37 {
+               reg = <13>;
+       };
+       phy38: ethernet-phy@38 {
+               reg = <14>;
+       };
+       phy39: ethernet-phy@39 {
+               reg = <15>;
+       };
+       phy40: ethernet-phy@40 {
+               reg = <16>;
+       };
+       phy41: ethernet-phy@41 {
+               reg = <17>;
+       };
+       phy42: ethernet-phy@42 {
+               reg = <18>;
+       };
+       phy43: ethernet-phy@43 {
+               reg = <19>;
+       };
+       phy44: ethernet-phy@44 {
+               reg = <20>;
+       };
+       phy45: ethernet-phy@45 {
+               reg = <21>;
+       };
+       phy46: ethernet-phy@46 {
+               reg = <22>;
+       };
+       phy47: ethernet-phy@47 {
+               reg = <23>;
+       };
+};
+
+&switch {
+       ethernet-ports {
+               port0: port@0 {
+                       reg = <0>;
+                       phy-handle = <&phy0>;
+                       phys = <&serdes_hsio 0 SERDES6G(4) PHY_MODE_QSGMII>;
+               };
+               port1: port@1 {
+                       reg = <1>;
+                       phy-handle = <&phy1>;
+                       phys = <&serdes_hsio 1 0xff PHY_MODE_QSGMII>;
+               };
+               port2: port@2 {
+                       reg = <2>;
+                       phy-handle = <&phy2>;
+                       phys = <&serdes_hsio 2 0xff PHY_MODE_QSGMII>;
+               };
+               port3: port@3 {
+                       reg = <3>;
+                       phy-handle = <&phy3>;
+                       phys = <&serdes_hsio 3 0xff PHY_MODE_QSGMII>;
+               };
+               port4: port@4 {
+                       reg = <4>;
+                       phy-handle = <&phy4>;
+                       phys = <&serdes_hsio 4 SERDES6G(5) PHY_MODE_QSGMII>;
+               };
+               port5: port@5 {
+                       reg = <5>;
+                       phy-handle = <&phy5>;
+                       phys = <&serdes_hsio 5 0xff PHY_MODE_QSGMII>;
+               };
+               port6: port@6 {
+                       reg = <6>;
+                       phy-handle = <&phy6>;
+                       phys = <&serdes_hsio 6 0xff PHY_MODE_QSGMII>;
+               };
+               port7: port@7 {
+                       reg = <7>;
+                       phy-handle = <&phy7>;
+                       phys = <&serdes_hsio 7 0xff PHY_MODE_QSGMII>;
+               };
+               port8: port@8 {
+                       reg = <8>;
+                       phy-handle = <&phy8>;
+                       phys = <&serdes_hsio 8 SERDES6G(6) PHY_MODE_QSGMII>;
+               };
+               port9: port@9 {
+                       reg = <9>;
+                       phy-handle = <&phy9>;
+                       phys = <&serdes_hsio 9 0xff PHY_MODE_QSGMII>;
+               };
+               port10: port@10 {
+                       reg = <10>;
+                       phy-handle = <&phy10>;
+                       phys = <&serdes_hsio 10 0xff PHY_MODE_QSGMII>;
+               };
+               port11: port@11 {
+                       reg = <11>;
+                       phy-handle = <&phy11>;
+                       phys = <&serdes_hsio 11 0xff PHY_MODE_QSGMII>;
+               };
+               port12: port@12 {
+                       reg = <12>;
+                       phy-handle = <&phy12>;
+                       phys = <&serdes_hsio 12 SERDES6G(7) PHY_MODE_QSGMII>;
+               };
+               port13: port@13 {
+                       reg = <13>;
+                       phy-handle = <&phy13>;
+                       phys = <&serdes_hsio 13 0xff PHY_MODE_QSGMII>;
+               };
+               port14: port@14 {
+                       reg = <14>;
+                       phy-handle = <&phy14>;
+                       phys = <&serdes_hsio 14 0xff PHY_MODE_QSGMII>;
+               };
+               port15: port@15 {
+                       reg = <15>;
+                       phy-handle = <&phy15>;
+                       phys = <&serdes_hsio 15 0xff PHY_MODE_QSGMII>;
+               };
+               port16: port@16 {
+                       reg = <16>;
+                       phy-handle = <&phy16>;
+                       phys = <&serdes_hsio 16 SERDES6G(8) PHY_MODE_QSGMII>;
+               };
+               port17: port@17 {
+                       reg = <17>;
+                       phy-handle = <&phy17>;
+                       phys = <&serdes_hsio 17 0xff PHY_MODE_QSGMII>;
+               };
+               port18: port@18 {
+                       reg = <18>;
+                       phy-handle = <&phy18>;
+                       phys = <&serdes_hsio 18 0xff PHY_MODE_QSGMII>;
+               };
+               port19: port@19 {
+                       reg = <19>;
+                       phy-handle = <&phy19>;
+                       phys = <&serdes_hsio 19 0xff PHY_MODE_QSGMII>;
+               };
+               port20: port@20 {
+                       reg = <20>;
+                       phy-handle = <&phy20>;
+                       phys = <&serdes_hsio 20 SERDES6G(9) PHY_MODE_QSGMII>;
+               };
+               port21: port@21 {
+                       reg = <21>;
+                       phy-handle = <&phy21>;
+                       phys = <&serdes_hsio 21 0xff PHY_MODE_QSGMII>;
+               };
+               port22: port@22 {
+                       reg = <22>;
+                       phy-handle = <&phy22>;
+                       phys = <&serdes_hsio 22 0xff PHY_MODE_QSGMII>;
+               };
+               port23: port@23 {
+                       reg = <23>;
+                       phy-handle = <&phy23>;
+                       phys = <&serdes_hsio 23 0xff PHY_MODE_QSGMII>;
+               };
+               port24: port@24 {
+                       reg = <24>;
+                       phy-handle = <&phy24>;
+                       phys = <&serdes_hsio 24 SERDES6G(10) PHY_MODE_QSGMII>;
+               };
+               port25: port@25 {
+                       reg = <25>;
+                       phy-handle = <&phy25>;
+                       phys = <&serdes_hsio 25 0xff PHY_MODE_QSGMII>;
+               };
+               port26: port@26 {
+                       reg = <26>;
+                       phy-handle = <&phy26>;
+                       phys = <&serdes_hsio 26 0xff PHY_MODE_QSGMII>;
+               };
+               port27: port@27 {
+                       reg = <27>;
+                       phy-handle = <&phy27>;
+                       phys = <&serdes_hsio 27 0xff PHY_MODE_QSGMII>;
+               };
+               port28: port@28 {
+                       reg = <28>;
+                       phy-handle = <&phy28>;
+                       phys = <&serdes_hsio 28 SERDES6G(11) PHY_MODE_QSGMII>;
+               };
+               port29: port@29 {
+                       reg = <29>;
+                       phy-handle = <&phy29>;
+                       phys = <&serdes_hsio 29 0xff PHY_MODE_QSGMII>;
+               };
+               port30: port@30 {
+                       reg = <30>;
+                       phy-handle = <&phy30>;
+                       phys = <&serdes_hsio 30 0xff PHY_MODE_QSGMII>;
+               };
+               port31: port@31 {
+                       reg = <31>;
+                       phy-handle = <&phy31>;
+                       phys = <&serdes_hsio 31 0xff PHY_MODE_QSGMII>;
+               };
+               port32: port@32 {
+                       reg = <32>;
+                       phy-handle = <&phy32>;
+                       phys = <&serdes_hsio 32 SERDES6G(12) PHY_MODE_QSGMII>;
+               };
+               port33: port@33 {
+                       reg = <33>;
+                       phy-handle = <&phy33>;
+                       phys = <&serdes_hsio 33 0xff PHY_MODE_QSGMII>;
+               };
+               port34: port@34 {
+                       reg = <34>;
+                       phy-handle = <&phy34>;
+                       phys = <&serdes_hsio 34 0xff PHY_MODE_QSGMII>;
+               };
+               port35: port@35 {
+                       reg = <35>;
+                       phy-handle = <&phy35>;
+                       phys = <&serdes_hsio 35 0xff PHY_MODE_QSGMII>;
+               };
+               port36: port@36 {
+                       reg = <36>;
+                       phy-handle = <&phy36>;
+                       phys = <&serdes_hsio 36 SERDES6G(13) PHY_MODE_QSGMII>;
+               };
+               port37: port@37 {
+                       reg = <37>;
+                       phy-handle = <&phy37>;
+                       phys = <&serdes_hsio 37 0xff PHY_MODE_QSGMII>;
+               };
+               port38: port@38 {
+                       reg = <38>;
+                       phy-handle = <&phy38>;
+                       phys = <&serdes_hsio 38 0xff PHY_MODE_QSGMII>;
+               };
+               port39: port@39 {
+                       reg = <39>;
+                       phy-handle = <&phy39>;
+                       phys = <&serdes_hsio 39 0xff PHY_MODE_QSGMII>;
+               };
+               port40: port@40 {
+                       reg = <40>;
+                       phy-handle = <&phy40>;
+                       phys = <&serdes_hsio 40 SERDES6G(14) PHY_MODE_QSGMII>;
+               };
+               port41: port@41 {
+                       reg = <41>;
+                       phy-handle = <&phy41>;
+                       phys = <&serdes_hsio 41 0xff PHY_MODE_QSGMII>;
+               };
+               port42: port@42 {
+                       reg = <42>;
+                       phy-handle = <&phy42>;
+                       phys = <&serdes_hsio 42 0xff PHY_MODE_QSGMII>;
+               };
+               port43: port@43 {
+                       reg = <43>;
+                       phy-handle = <&phy43>;
+                       phys = <&serdes_hsio 43 0xff PHY_MODE_QSGMII>;
+               };
+               port44: port@44 {
+                       reg = <44>;
+                       phy-handle = <&phy44>;
+                       phys = <&serdes_hsio 44 SERDES6G(15) PHY_MODE_QSGMII>;
+               };
+               port45: port@45 {
+                       reg = <45>;
+                       phy-handle = <&phy45>;
+                       phys = <&serdes_hsio 45 0xff PHY_MODE_QSGMII>;
+               };
+               port46: port@46 {
+                       reg = <46>;
+                       phy-handle = <&phy46>;
+                       phys = <&serdes_hsio 46 0xff PHY_MODE_QSGMII>;
+               };
+               port47: port@47 {
+                       reg = <47>;
+                       phy-handle = <&phy47>;
+                       phys = <&serdes_hsio 47 0xff PHY_MODE_QSGMII>;
+               };
+       };
+};
index 090092607b52010247acf05ec0fed439aad6082c..7f5a96fecdc625b307beaed8470d26d404af3c86 100644 (file)
                        gpio-bank-name = "sgpio2_";
                        sgpio-clock = <0x14>;
                };
+
+               switch: switch@1010000 {
+                       compatible = "mscc,vsc7454-switch";
+                       reg = <0x01040000 0x0100>,   // VTSS_TO_DEV_0
+                             <0x01050000 0x0100>,   // VTSS_TO_DEV_1
+                             <0x01060000 0x0100>,   // VTSS_TO_DEV_2
+                             <0x01070000 0x0100>,   // VTSS_TO_DEV_3
+                             <0x01080000 0x0100>,   // VTSS_TO_DEV_4
+                             <0x01090000 0x0100>,   // VTSS_TO_DEV_5
+                             <0x010a0000 0x0100>,   // VTSS_TO_DEV_6
+                             <0x010b0000 0x0100>,   // VTSS_TO_DEV_7
+                             <0x010c0000 0x0100>,   // VTSS_TO_DEV_8
+                             <0x010d0000 0x0100>,   // VTSS_TO_DEV_9
+                             <0x010e0000 0x0100>,   // VTSS_TO_DEV_10
+                             <0x010f0000 0x0100>,   // VTSS_TO_DEV_11
+                             <0x01100000 0x0100>,   // VTSS_TO_DEV_12
+                             <0x01110000 0x0100>,   // VTSS_TO_DEV_13
+                             <0x01120000 0x0100>,   // VTSS_TO_DEV_14
+                             <0x01130000 0x0100>,   // VTSS_TO_DEV_15
+                             <0x01140000 0x0100>,   // VTSS_TO_DEV_16
+                             <0x01150000 0x0100>,   // VTSS_TO_DEV_17
+                             <0x01160000 0x0100>,   // VTSS_TO_DEV_18
+                             <0x01170000 0x0100>,   // VTSS_TO_DEV_19
+                             <0x01180000 0x0100>,   // VTSS_TO_DEV_20
+                             <0x01190000 0x0100>,   // VTSS_TO_DEV_21
+                             <0x011a0000 0x0100>,   // VTSS_TO_DEV_22
+                             <0x011b0000 0x0100>,   // VTSS_TO_DEV_23
+                             <0x011c0000 0x0100>,   // VTSS_TO_DEV_24
+                             <0x011d0000 0x0100>,   // VTSS_TO_DEV_25
+                             <0x011e0000 0x0100>,   // VTSS_TO_DEV_26
+                             <0x011f0000 0x0100>,   // VTSS_TO_DEV_27
+                             <0x01200000 0x0100>,   // VTSS_TO_DEV_28
+                             <0x01210000 0x0100>,   // VTSS_TO_DEV_29
+                             <0x01220000 0x0100>,   // VTSS_TO_DEV_30
+                             <0x01230000 0x0100>,   // VTSS_TO_DEV_31
+                             <0x01240000 0x0100>,   // VTSS_TO_DEV_32
+                             <0x01250000 0x0100>,   // VTSS_TO_DEV_33
+                             <0x01260000 0x0100>,   // VTSS_TO_DEV_34
+                             <0x01270000 0x0100>,   // VTSS_TO_DEV_35
+                             <0x01280000 0x0100>,   // VTSS_TO_DEV_36
+                             <0x01290000 0x0100>,   // VTSS_TO_DEV_37
+                             <0x012a0000 0x0100>,   // VTSS_TO_DEV_38
+                             <0x012b0000 0x0100>,   // VTSS_TO_DEV_39
+                             <0x012c0000 0x0100>,   // VTSS_TO_DEV_40
+                             <0x012d0000 0x0100>,   // VTSS_TO_DEV_41
+                             <0x012e0000 0x0100>,   // VTSS_TO_DEV_42
+                             <0x012f0000 0x0100>,   // VTSS_TO_DEV_43
+                             <0x01300000 0x0100>,   // VTSS_TO_DEV_44
+                             <0x01310000 0x0100>,   // VTSS_TO_DEV_45
+                             <0x01320000 0x0100>,   // VTSS_TO_DEV_46
+                             <0x01330000 0x0100>,   // VTSS_TO_DEV_47
+                             <0x01f00000 0x100000>, // ANA_AC
+                             <0x01d00000 0x100000>, // ANA_CL
+                             <0x01e00000 0x100000>, // ANA_L2
+                             <0x01410000 0x10000>,  // ASM
+                             <0x01460000 0x10000>,  // HSIO
+                             <0x01420000 0x00000>,  // LRN
+                             <0x017d0000 0x10000>,  // QFWD
+                             <0x01020000 0x20000>,  // QS
+                             <0x017e0000 0x10000>,  // QSYS
+                             <0x01b00000 0x80000>;  // REW
+                       reg-names = "port0", "port1", "port2", "port3", "port4",
+                                   "port5", "port6", "port7", "port8", "port9",
+                                   "port10", "port11", "port12", "port13",
+                                   "port14", "port15", "port16", "port17",
+                                   "port18", "port19", "port20", "port21",
+                                   "port22", "port23", "port24", "port25",
+                                   "port26", "port27", "port28", "port29",
+                                   "port30", "port31", "port32", "port33",
+                                   "port34", "port35", "port36", "port37",
+                                   "port38", "port39", "port40", "port41",
+                                   "port42", "port43", "port44", "port45",
+                                   "port46", "port47", "ana_ac", "ana_cl",
+                                   "ana_l2", "asm", "hsio", "lrn", "qfwd",
+                                   "qs", "qsys", "rew";
+                       status = "okay";
+
+                       ethernet-ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                       };
+               };
+
+               mdio0: mdio@010100c8 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       compatible = "mscc,jr2-miim";
+                       reg = <0x010100c8 0x24>;
+                       status = "disabled";
+               };
+
+               mdio1: mdio@010100ec {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       compatible = "mscc,jr2-miim";
+                       reg = <0x010100ec 0x24>;
+                       status = "disabled";
+               };
+
+               mdio2: mdio@01010110 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       compatible = "mscc,jr2-miim";
+                       reg = <0x01010110 0x24>;
+                       status = "disabled";
+               };
+
+               hsio: syscon@10d0000 {
+                       compatible = "mscc,jr2-hsio", "syscon", "simple-mfd";
+                       reg = <0x10d0000 0x10000>;
+
+                       serdes_hsio: serdes_hsio {
+                               compatible = "mscc,vsc7454-serdes";
+                               #phy-cells = <3>;
+                       };
+               };
        };
 };
index fe025f4c42a7185a23155348512785e477063c3d..7a9d595433d347a724b92598138854d1840aaeb9 100644 (file)
@@ -5,6 +5,7 @@
 
 /dts-v1/;
 #include "mscc,jr2.dtsi"
+#include <dt-bindings/mscc/jr2_data.h>
 
 / {
        model = "Serval2 NID PCB112 Reference Board";
        status = "okay";
        sgpio-ports = <0x3fe0ffff>;
 };
+
+&mdio0 {
+       status = "okay";
+
+       phy16: ethernet-phy@16 {
+               reg = <16>;
+       };
+       phy17: ethernet-phy@17 {
+               reg = <17>;
+       };
+       phy18: ethernet-phy@18 {
+               reg = <18>;
+       };
+       phy19: ethernet-phy@19 {
+               reg = <19>;
+       };
+};
+
+&switch {
+       ethernet-ports {
+
+               port0: port@0 {
+                       reg = <24>;
+                       phy-handle = <&phy16>;
+                       phys = <&serdes_hsio 24 SERDES6G(0) PHY_MODE_SGMII>;
+               };
+               port1: port@1 {
+                       reg = <25>;
+                       phy-handle = <&phy17>;
+                       phys = <&serdes_hsio 25 SERDES6G(1) PHY_MODE_SGMII>;
+               };
+               port2: port@2 {
+                       reg = <26>;
+                       phy-handle = <&phy18>;
+                       phys = <&serdes_hsio 26 SERDES6G(2) PHY_MODE_SGMII>;
+               };
+               port3: port@3 {
+                       reg = <27>;
+                       phy-handle = <&phy19>;
+                       phys = <&serdes_hsio 27 SERDES6G(3) PHY_MODE_SGMII>;
+               };
+       };
+};
diff --git a/include/dt-bindings/mscc/jr2_data.h b/include/dt-bindings/mscc/jr2_data.h
new file mode 100644 (file)
index 0000000..2f06fc5
--- /dev/null
@@ -0,0 +1,19 @@
+/* SPDX-License-Identifier: (GPL-2.0+ OR MIT) */
+/*
+ * Copyright (c) 2018 Microsemi Corporation
+ */
+
+#ifndef _JR2_DATA_H_
+#define _JR2_DATA_H_
+
+#define SERDES1G(x)     (x)
+#define SERDES1G_MAX    SERDES1G(10)
+#define SERDES6G(x)     (SERDES1G_MAX + 1 + (x))
+#define SERDES6G_MAX    SERDES6G(17)
+#define SERDES_MAX      (SERDES6G_MAX + 1)
+
+/* similar with phy_interface_t */
+#define PHY_MODE_SGMII  2
+#define PHY_MODE_QSGMII 4
+
+#endif