net: mscc: jaguar2: Add ethenet nodes for Jaguar2.

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>
This commit is contained in:
Horatiu Vultur 2019-04-03 19:54:47 +02:00 committed by Daniel Schwierzeck
parent 6aa50ae22c
commit 1141176163
5 changed files with 655 additions and 0 deletions

View 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";
@ -72,3 +73,78 @@
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>;
};
};
};

View File

@ -5,6 +5,7 @@
/dts-v1/;
#include "mscc,jr2.dtsi"
#include <dt-bindings/mscc/jr2_data.h>
/ {
model = "Jaguar2 Cu48 PCB111 Reference Board";
@ -72,3 +73,402 @@
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>;
};
};
};

View File

@ -183,5 +183,121 @@
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>;
};
};
};
};

View File

@ -5,6 +5,7 @@
/dts-v1/;
#include "mscc,jr2.dtsi"
#include <dt-bindings/mscc/jr2_data.h>
/ {
model = "Serval2 NID PCB112 Reference Board";
@ -58,3 +59,46 @@
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>;
};
};
};

View File

@ -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