1*4ccc9851SDaniel Golle# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2*4ccc9851SDaniel Golle%YAML 1.2 3*4ccc9851SDaniel Golle--- 4*4ccc9851SDaniel Golle$id: http://devicetree.org/schemas/net/dsa/maxlinear,mxl862xx.yaml# 5*4ccc9851SDaniel Golle$schema: http://devicetree.org/meta-schemas/core.yaml# 6*4ccc9851SDaniel Golle 7*4ccc9851SDaniel Golletitle: MaxLinear MxL862xx Ethernet Switch Family 8*4ccc9851SDaniel Golle 9*4ccc9851SDaniel Gollemaintainers: 10*4ccc9851SDaniel Golle - Daniel Golle <daniel@makrotopia.org> 11*4ccc9851SDaniel Golle 12*4ccc9851SDaniel Golledescription: 13*4ccc9851SDaniel Golle The MaxLinear MxL862xx switch family are multi-port Ethernet switches with 14*4ccc9851SDaniel Golle integrated 2.5GE PHYs. The MxL86252 has five PHY ports and the MxL86282 15*4ccc9851SDaniel Golle has eight PHY ports. Both models come with two 10 Gigabit/s SerDes 16*4ccc9851SDaniel Golle interfaces to be used to connect external PHYs or SFP cages, or as CPU 17*4ccc9851SDaniel Golle port. 18*4ccc9851SDaniel Golle 19*4ccc9851SDaniel GolleallOf: 20*4ccc9851SDaniel Golle - $ref: dsa.yaml#/$defs/ethernet-ports 21*4ccc9851SDaniel Golle 22*4ccc9851SDaniel Golleproperties: 23*4ccc9851SDaniel Golle compatible: 24*4ccc9851SDaniel Golle enum: 25*4ccc9851SDaniel Golle - maxlinear,mxl86252 26*4ccc9851SDaniel Golle - maxlinear,mxl86282 27*4ccc9851SDaniel Golle 28*4ccc9851SDaniel Golle reg: 29*4ccc9851SDaniel Golle maxItems: 1 30*4ccc9851SDaniel Golle description: MDIO address of the switch 31*4ccc9851SDaniel Golle 32*4ccc9851SDaniel Golle mdio: 33*4ccc9851SDaniel Golle $ref: /schemas/net/mdio.yaml# 34*4ccc9851SDaniel Golle unevaluatedProperties: false 35*4ccc9851SDaniel Golle 36*4ccc9851SDaniel Gollerequired: 37*4ccc9851SDaniel Golle - compatible 38*4ccc9851SDaniel Golle - mdio 39*4ccc9851SDaniel Golle - reg 40*4ccc9851SDaniel Golle 41*4ccc9851SDaniel GolleunevaluatedProperties: false 42*4ccc9851SDaniel Golle 43*4ccc9851SDaniel Golleexamples: 44*4ccc9851SDaniel Golle - | 45*4ccc9851SDaniel Golle mdio { 46*4ccc9851SDaniel Golle #address-cells = <1>; 47*4ccc9851SDaniel Golle #size-cells = <0>; 48*4ccc9851SDaniel Golle 49*4ccc9851SDaniel Golle switch@0 { 50*4ccc9851SDaniel Golle compatible = "maxlinear,mxl86282"; 51*4ccc9851SDaniel Golle reg = <0>; 52*4ccc9851SDaniel Golle 53*4ccc9851SDaniel Golle ethernet-ports { 54*4ccc9851SDaniel Golle #address-cells = <1>; 55*4ccc9851SDaniel Golle #size-cells = <0>; 56*4ccc9851SDaniel Golle 57*4ccc9851SDaniel Golle /* Microcontroller port */ 58*4ccc9851SDaniel Golle port@0 { 59*4ccc9851SDaniel Golle reg = <0>; 60*4ccc9851SDaniel Golle status = "disabled"; 61*4ccc9851SDaniel Golle }; 62*4ccc9851SDaniel Golle 63*4ccc9851SDaniel Golle port@1 { 64*4ccc9851SDaniel Golle reg = <1>; 65*4ccc9851SDaniel Golle phy-handle = <&phy0>; 66*4ccc9851SDaniel Golle phy-mode = "internal"; 67*4ccc9851SDaniel Golle }; 68*4ccc9851SDaniel Golle 69*4ccc9851SDaniel Golle port@2 { 70*4ccc9851SDaniel Golle reg = <2>; 71*4ccc9851SDaniel Golle phy-handle = <&phy1>; 72*4ccc9851SDaniel Golle phy-mode = "internal"; 73*4ccc9851SDaniel Golle }; 74*4ccc9851SDaniel Golle 75*4ccc9851SDaniel Golle port@3 { 76*4ccc9851SDaniel Golle reg = <3>; 77*4ccc9851SDaniel Golle phy-handle = <&phy2>; 78*4ccc9851SDaniel Golle phy-mode = "internal"; 79*4ccc9851SDaniel Golle }; 80*4ccc9851SDaniel Golle 81*4ccc9851SDaniel Golle port@4 { 82*4ccc9851SDaniel Golle reg = <4>; 83*4ccc9851SDaniel Golle phy-handle = <&phy3>; 84*4ccc9851SDaniel Golle phy-mode = "internal"; 85*4ccc9851SDaniel Golle }; 86*4ccc9851SDaniel Golle 87*4ccc9851SDaniel Golle port@5 { 88*4ccc9851SDaniel Golle reg = <5>; 89*4ccc9851SDaniel Golle phy-handle = <&phy4>; 90*4ccc9851SDaniel Golle phy-mode = "internal"; 91*4ccc9851SDaniel Golle }; 92*4ccc9851SDaniel Golle 93*4ccc9851SDaniel Golle port@6 { 94*4ccc9851SDaniel Golle reg = <6>; 95*4ccc9851SDaniel Golle phy-handle = <&phy5>; 96*4ccc9851SDaniel Golle phy-mode = "internal"; 97*4ccc9851SDaniel Golle }; 98*4ccc9851SDaniel Golle 99*4ccc9851SDaniel Golle port@7 { 100*4ccc9851SDaniel Golle reg = <7>; 101*4ccc9851SDaniel Golle phy-handle = <&phy6>; 102*4ccc9851SDaniel Golle phy-mode = "internal"; 103*4ccc9851SDaniel Golle }; 104*4ccc9851SDaniel Golle 105*4ccc9851SDaniel Golle port@8 { 106*4ccc9851SDaniel Golle reg = <8>; 107*4ccc9851SDaniel Golle phy-handle = <&phy7>; 108*4ccc9851SDaniel Golle phy-mode = "internal"; 109*4ccc9851SDaniel Golle }; 110*4ccc9851SDaniel Golle 111*4ccc9851SDaniel Golle port@9 { 112*4ccc9851SDaniel Golle reg = <9>; 113*4ccc9851SDaniel Golle label = "cpu"; 114*4ccc9851SDaniel Golle ethernet = <&gmac0>; 115*4ccc9851SDaniel Golle phy-mode = "usxgmii"; 116*4ccc9851SDaniel Golle 117*4ccc9851SDaniel Golle fixed-link { 118*4ccc9851SDaniel Golle speed = <10000>; 119*4ccc9851SDaniel Golle full-duplex; 120*4ccc9851SDaniel Golle }; 121*4ccc9851SDaniel Golle }; 122*4ccc9851SDaniel Golle }; 123*4ccc9851SDaniel Golle 124*4ccc9851SDaniel Golle mdio { 125*4ccc9851SDaniel Golle #address-cells = <1>; 126*4ccc9851SDaniel Golle #size-cells = <0>; 127*4ccc9851SDaniel Golle 128*4ccc9851SDaniel Golle phy0: ethernet-phy@0 { 129*4ccc9851SDaniel Golle reg = <0>; 130*4ccc9851SDaniel Golle }; 131*4ccc9851SDaniel Golle 132*4ccc9851SDaniel Golle phy1: ethernet-phy@1 { 133*4ccc9851SDaniel Golle reg = <1>; 134*4ccc9851SDaniel Golle }; 135*4ccc9851SDaniel Golle 136*4ccc9851SDaniel Golle phy2: ethernet-phy@2 { 137*4ccc9851SDaniel Golle reg = <2>; 138*4ccc9851SDaniel Golle }; 139*4ccc9851SDaniel Golle 140*4ccc9851SDaniel Golle phy3: ethernet-phy@3 { 141*4ccc9851SDaniel Golle reg = <3>; 142*4ccc9851SDaniel Golle }; 143*4ccc9851SDaniel Golle 144*4ccc9851SDaniel Golle phy4: ethernet-phy@4 { 145*4ccc9851SDaniel Golle reg = <4>; 146*4ccc9851SDaniel Golle }; 147*4ccc9851SDaniel Golle 148*4ccc9851SDaniel Golle phy5: ethernet-phy@5 { 149*4ccc9851SDaniel Golle reg = <5>; 150*4ccc9851SDaniel Golle }; 151*4ccc9851SDaniel Golle 152*4ccc9851SDaniel Golle phy6: ethernet-phy@6 { 153*4ccc9851SDaniel Golle reg = <6>; 154*4ccc9851SDaniel Golle }; 155*4ccc9851SDaniel Golle 156*4ccc9851SDaniel Golle phy7: ethernet-phy@7 { 157*4ccc9851SDaniel Golle reg = <7>; 158*4ccc9851SDaniel Golle }; 159*4ccc9851SDaniel Golle }; 160*4ccc9851SDaniel Golle }; 161*4ccc9851SDaniel Golle }; 162