xref: /openbmc/linux/Documentation/devicetree/bindings/net/mscc,vsc7514-switch.yaml (revision 9a87ffc99ec8eb8d35eed7c4f816d75f5cc9662e)
1b48b5636SClément Léger# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
2b48b5636SClément Léger%YAML 1.2
3b48b5636SClément Léger---
4b48b5636SClément Léger$id: http://devicetree.org/schemas/net/mscc,vsc7514-switch.yaml#
5b48b5636SClément Léger$schema: http://devicetree.org/meta-schemas/core.yaml#
6b48b5636SClément Léger
7b48b5636SClément Légertitle: Microchip VSC7514 Ethernet switch controller
8b48b5636SClément Léger
9b48b5636SClément Légermaintainers:
10b48b5636SClément Léger  - Vladimir Oltean <vladimir.oltean@nxp.com>
11b48b5636SClément Léger  - Claudiu Manoil <claudiu.manoil@nxp.com>
12b48b5636SClément Léger  - Alexandre Belloni <alexandre.belloni@bootlin.com>
13b48b5636SClément Léger
14b48b5636SClément Légerdescription: |
15b48b5636SClément Léger  Bindings for the Microchip VSC7514 switch driver
16b48b5636SClément Léger
17b48b5636SClément Léger  The VSC7514 switch driver handles up to 11 ports and can inject/extract
18b48b5636SClément Léger  packets using CPU. Additionally, PTP is supported as well as FDMA for faster
19b48b5636SClément Léger  packet extraction/injection.
20b48b5636SClément Léger
21*dd43f5e7SColin FosterallOf:
22*dd43f5e7SColin Foster  - if:
231f4d4ad6SColin Foster      properties:
24b48b5636SClément Léger        compatible:
25b48b5636SClément Léger          const: mscc,vsc7514-switch
26*dd43f5e7SColin Foster    then:
27*dd43f5e7SColin Foster      $ref: ethernet-switch.yaml#
28*dd43f5e7SColin Foster      required:
29*dd43f5e7SColin Foster        - interrupts
30*dd43f5e7SColin Foster        - interrupt-names
31*dd43f5e7SColin Foster      properties:
32*dd43f5e7SColin Foster        reg:
33*dd43f5e7SColin Foster          minItems: 21
34*dd43f5e7SColin Foster        reg-names:
35*dd43f5e7SColin Foster          minItems: 21
36*dd43f5e7SColin Foster        ethernet-ports:
37*dd43f5e7SColin Foster          patternProperties:
38*dd43f5e7SColin Foster            "^port@[0-9a-f]+$":
39*dd43f5e7SColin Foster              $ref: ethernet-switch-port.yaml#
40*dd43f5e7SColin Foster              unevaluatedProperties: false
41*dd43f5e7SColin Foster
42*dd43f5e7SColin Foster  - if:
43*dd43f5e7SColin Foster      properties:
44*dd43f5e7SColin Foster        compatible:
45*dd43f5e7SColin Foster          const: mscc,vsc7512-switch
46*dd43f5e7SColin Foster    then:
47*dd43f5e7SColin Foster      $ref: /schemas/net/dsa/dsa.yaml#
48*dd43f5e7SColin Foster      properties:
49*dd43f5e7SColin Foster        reg:
50*dd43f5e7SColin Foster          maxItems: 20
51*dd43f5e7SColin Foster        reg-names:
52*dd43f5e7SColin Foster          maxItems: 20
53*dd43f5e7SColin Foster        ethernet-ports:
54*dd43f5e7SColin Foster          patternProperties:
55*dd43f5e7SColin Foster            "^port@[0-9a-f]+$":
56*dd43f5e7SColin Foster              $ref: /schemas/net/dsa/dsa-port.yaml#
57*dd43f5e7SColin Foster              unevaluatedProperties: false
58*dd43f5e7SColin Foster
59*dd43f5e7SColin Fosterproperties:
60*dd43f5e7SColin Foster  compatible:
61*dd43f5e7SColin Foster    enum:
62*dd43f5e7SColin Foster      - mscc,vsc7512-switch
63*dd43f5e7SColin Foster      - mscc,vsc7514-switch
64b48b5636SClément Léger
65b48b5636SClément Léger  reg:
66*dd43f5e7SColin Foster    minItems: 20
67b48b5636SClément Léger    items:
68b48b5636SClément Léger      - description: system target
69b48b5636SClément Léger      - description: rewriter target
70b48b5636SClément Léger      - description: qs target
71b48b5636SClément Léger      - description: PTP target
72b48b5636SClément Léger      - description: Port0 target
73b48b5636SClément Léger      - description: Port1 target
74b48b5636SClément Léger      - description: Port2 target
75b48b5636SClément Léger      - description: Port3 target
76b48b5636SClément Léger      - description: Port4 target
77b48b5636SClément Léger      - description: Port5 target
78b48b5636SClément Léger      - description: Port6 target
79b48b5636SClément Léger      - description: Port7 target
80b48b5636SClément Léger      - description: Port8 target
81b48b5636SClément Léger      - description: Port9 target
82b48b5636SClément Léger      - description: Port10 target
83b48b5636SClément Léger      - description: QSystem target
84b48b5636SClément Léger      - description: Analyzer target
85b48b5636SClément Léger      - description: S0 target
86b48b5636SClément Léger      - description: S1 target
87b48b5636SClément Léger      - description: S2 target
88b48b5636SClément Léger      - description: fdma target
89b48b5636SClément Léger
90b48b5636SClément Léger  reg-names:
91*dd43f5e7SColin Foster    minItems: 20
92b48b5636SClément Léger    items:
93b48b5636SClément Léger      - const: sys
94b48b5636SClément Léger      - const: rew
95b48b5636SClément Léger      - const: qs
96b48b5636SClément Léger      - const: ptp
97b48b5636SClément Léger      - const: port0
98b48b5636SClément Léger      - const: port1
99b48b5636SClément Léger      - const: port2
100b48b5636SClément Léger      - const: port3
101b48b5636SClément Léger      - const: port4
102b48b5636SClément Léger      - const: port5
103b48b5636SClément Léger      - const: port6
104b48b5636SClément Léger      - const: port7
105b48b5636SClément Léger      - const: port8
106b48b5636SClément Léger      - const: port9
107b48b5636SClément Léger      - const: port10
108b48b5636SClément Léger      - const: qsys
109b48b5636SClément Léger      - const: ana
110b48b5636SClément Léger      - const: s0
111b48b5636SClément Léger      - const: s1
112b48b5636SClément Léger      - const: s2
113b48b5636SClément Léger      - const: fdma
114b48b5636SClément Léger
115b48b5636SClément Léger  interrupts:
116b48b5636SClément Léger    minItems: 1
117b48b5636SClément Léger    items:
118b48b5636SClément Léger      - description: PTP ready
119b48b5636SClément Léger      - description: register based extraction
120b48b5636SClément Léger      - description: frame dma based extraction
121b48b5636SClément Léger
122b48b5636SClément Léger  interrupt-names:
123b48b5636SClément Léger    minItems: 1
124b48b5636SClément Léger    items:
125b48b5636SClément Léger      - const: ptp_rdy
126b48b5636SClément Léger      - const: xtr
127b48b5636SClément Léger      - const: fdma
128b48b5636SClément Léger
129b48b5636SClément Légerrequired:
130b48b5636SClément Léger  - compatible
131b48b5636SClément Léger  - reg
132b48b5636SClément Léger  - reg-names
133b48b5636SClément Léger  - ethernet-ports
134b48b5636SClément Léger
135*dd43f5e7SColin FosterunevaluatedProperties: false
136b48b5636SClément Léger
137b48b5636SClément Légerexamples:
138*dd43f5e7SColin Foster  # VSC7514 (Switchdev)
139b48b5636SClément Léger  - |
140b48b5636SClément Léger    switch@1010000 {
141b48b5636SClément Léger      compatible = "mscc,vsc7514-switch";
142b48b5636SClément Léger      reg = <0x1010000 0x10000>,
143b48b5636SClément Léger            <0x1030000 0x10000>,
144b48b5636SClément Léger            <0x1080000 0x100>,
145b48b5636SClément Léger            <0x10e0000 0x10000>,
146b48b5636SClément Léger            <0x11e0000 0x100>,
147b48b5636SClément Léger            <0x11f0000 0x100>,
148b48b5636SClément Léger            <0x1200000 0x100>,
149b48b5636SClément Léger            <0x1210000 0x100>,
150b48b5636SClément Léger            <0x1220000 0x100>,
151b48b5636SClément Léger            <0x1230000 0x100>,
152b48b5636SClément Léger            <0x1240000 0x100>,
153b48b5636SClément Léger            <0x1250000 0x100>,
154b48b5636SClément Léger            <0x1260000 0x100>,
155b48b5636SClément Léger            <0x1270000 0x100>,
156b48b5636SClément Léger            <0x1280000 0x100>,
157b48b5636SClément Léger            <0x1800000 0x80000>,
158b48b5636SClément Léger            <0x1880000 0x10000>,
159b48b5636SClément Léger            <0x1040000 0x10000>,
160b48b5636SClément Léger            <0x1050000 0x10000>,
161b48b5636SClément Léger            <0x1060000 0x10000>,
162b48b5636SClément Léger            <0x1a0 0x1c4>;
163b48b5636SClément Léger      reg-names = "sys", "rew", "qs", "ptp", "port0", "port1",
164b48b5636SClément Léger            "port2", "port3", "port4", "port5", "port6",
165b48b5636SClément Léger            "port7", "port8", "port9", "port10", "qsys",
166b48b5636SClément Léger            "ana", "s0", "s1", "s2", "fdma";
167b48b5636SClément Léger      interrupts = <18 21 16>;
168b48b5636SClément Léger      interrupt-names = "ptp_rdy", "xtr", "fdma";
169b48b5636SClément Léger
170b48b5636SClément Léger      ethernet-ports {
171b48b5636SClément Léger        #address-cells = <1>;
172b48b5636SClément Léger        #size-cells = <0>;
173b48b5636SClément Léger
174b48b5636SClément Léger        port0: port@0 {
175b48b5636SClément Léger          reg = <0>;
176b48b5636SClément Léger          phy-handle = <&phy0>;
177b48b5636SClément Léger          phy-mode = "internal";
178b48b5636SClément Léger        };
179b48b5636SClément Léger        port1: port@1 {
180b48b5636SClément Léger          reg = <1>;
181b48b5636SClément Léger          phy-handle = <&phy1>;
182b48b5636SClément Léger          phy-mode = "internal";
183b48b5636SClément Léger        };
184b48b5636SClément Léger      };
185b48b5636SClément Léger    };
186*dd43f5e7SColin Foster  # VSC7512 (DSA)
187*dd43f5e7SColin Foster  - |
188*dd43f5e7SColin Foster    ethernet-switch@1{
189*dd43f5e7SColin Foster      compatible = "mscc,vsc7512-switch";
190*dd43f5e7SColin Foster      reg = <0x71010000 0x10000>,
191*dd43f5e7SColin Foster            <0x71030000 0x10000>,
192*dd43f5e7SColin Foster            <0x71080000 0x100>,
193*dd43f5e7SColin Foster            <0x710e0000 0x10000>,
194*dd43f5e7SColin Foster            <0x711e0000 0x100>,
195*dd43f5e7SColin Foster            <0x711f0000 0x100>,
196*dd43f5e7SColin Foster            <0x71200000 0x100>,
197*dd43f5e7SColin Foster            <0x71210000 0x100>,
198*dd43f5e7SColin Foster            <0x71220000 0x100>,
199*dd43f5e7SColin Foster            <0x71230000 0x100>,
200*dd43f5e7SColin Foster            <0x71240000 0x100>,
201*dd43f5e7SColin Foster            <0x71250000 0x100>,
202*dd43f5e7SColin Foster            <0x71260000 0x100>,
203*dd43f5e7SColin Foster            <0x71270000 0x100>,
204*dd43f5e7SColin Foster            <0x71280000 0x100>,
205*dd43f5e7SColin Foster            <0x71800000 0x80000>,
206*dd43f5e7SColin Foster            <0x71880000 0x10000>,
207*dd43f5e7SColin Foster            <0x71040000 0x10000>,
208*dd43f5e7SColin Foster            <0x71050000 0x10000>,
209*dd43f5e7SColin Foster            <0x71060000 0x10000>;
210*dd43f5e7SColin Foster            reg-names = "sys", "rew", "qs", "ptp", "port0", "port1",
211*dd43f5e7SColin Foster            "port2", "port3", "port4", "port5", "port6",
212*dd43f5e7SColin Foster            "port7", "port8", "port9", "port10", "qsys",
213*dd43f5e7SColin Foster            "ana", "s0", "s1", "s2";
214*dd43f5e7SColin Foster
215*dd43f5e7SColin Foster            ethernet-ports {
216*dd43f5e7SColin Foster            #address-cells = <1>;
217*dd43f5e7SColin Foster            #size-cells = <0>;
218*dd43f5e7SColin Foster
219*dd43f5e7SColin Foster           port@0 {
220*dd43f5e7SColin Foster            reg = <0>;
221*dd43f5e7SColin Foster            ethernet = <&mac_sw>;
222*dd43f5e7SColin Foster            phy-handle = <&phy0>;
223*dd43f5e7SColin Foster            phy-mode = "internal";
224*dd43f5e7SColin Foster          };
225*dd43f5e7SColin Foster          port@1 {
226*dd43f5e7SColin Foster            reg = <1>;
227*dd43f5e7SColin Foster            phy-handle = <&phy1>;
228*dd43f5e7SColin Foster            phy-mode = "internal";
229*dd43f5e7SColin Foster          };
230*dd43f5e7SColin Foster        };
231*dd43f5e7SColin Foster      };
232b48b5636SClément Léger
233b48b5636SClément Léger...
234