xref: /linux/Documentation/devicetree/bindings/net/dsa/maxlinear,mxl862xx.yaml (revision 37a93dd5c49b5fda807fd204edf2547c3493319c)
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