xref: /linux/Documentation/devicetree/bindings/net/mscc,vsc7514-switch.yaml (revision 0ea5c948cb64bab5bc7a5516774eb8536f05aa0d)
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
21dd43f5e7SColin FosterallOf:
22dd43f5e7SColin Foster  - if:
231f4d4ad6SColin Foster      properties:
24b48b5636SClément Léger        compatible:
25b48b5636SClément Léger          const: mscc,vsc7514-switch
26dd43f5e7SColin Foster    then:
27*7c93392dSRob Herring      $ref: ethernet-switch.yaml#/$defs/ethernet-ports
28dd43f5e7SColin Foster      required:
29dd43f5e7SColin Foster        - interrupts
30dd43f5e7SColin Foster        - interrupt-names
31dd43f5e7SColin Foster      properties:
32dd43f5e7SColin Foster        reg:
33dd43f5e7SColin Foster          minItems: 21
34dd43f5e7SColin Foster        reg-names:
35dd43f5e7SColin Foster          minItems: 21
36dd43f5e7SColin Foster
37dd43f5e7SColin Foster  - if:
38dd43f5e7SColin Foster      properties:
39dd43f5e7SColin Foster        compatible:
40dd43f5e7SColin Foster          const: mscc,vsc7512-switch
41dd43f5e7SColin Foster    then:
42*7c93392dSRob Herring      $ref: /schemas/net/dsa/dsa.yaml#/$defs/ethernet-ports
43dd43f5e7SColin Foster      properties:
44dd43f5e7SColin Foster        reg:
45dd43f5e7SColin Foster          maxItems: 20
46dd43f5e7SColin Foster        reg-names:
47dd43f5e7SColin Foster          maxItems: 20
48dd43f5e7SColin Foster
49dd43f5e7SColin Fosterproperties:
50dd43f5e7SColin Foster  compatible:
51dd43f5e7SColin Foster    enum:
52dd43f5e7SColin Foster      - mscc,vsc7512-switch
53dd43f5e7SColin Foster      - mscc,vsc7514-switch
54b48b5636SClément Léger
55b48b5636SClément Léger  reg:
56dd43f5e7SColin Foster    minItems: 20
57b48b5636SClément Léger    items:
58b48b5636SClément Léger      - description: system target
59b48b5636SClément Léger      - description: rewriter target
60b48b5636SClément Léger      - description: qs target
61b48b5636SClément Léger      - description: PTP target
62b48b5636SClément Léger      - description: Port0 target
63b48b5636SClément Léger      - description: Port1 target
64b48b5636SClément Léger      - description: Port2 target
65b48b5636SClément Léger      - description: Port3 target
66b48b5636SClément Léger      - description: Port4 target
67b48b5636SClément Léger      - description: Port5 target
68b48b5636SClément Léger      - description: Port6 target
69b48b5636SClément Léger      - description: Port7 target
70b48b5636SClément Léger      - description: Port8 target
71b48b5636SClément Léger      - description: Port9 target
72b48b5636SClément Léger      - description: Port10 target
73b48b5636SClément Léger      - description: QSystem target
74b48b5636SClément Léger      - description: Analyzer target
75b48b5636SClément Léger      - description: S0 target
76b48b5636SClément Léger      - description: S1 target
77b48b5636SClément Léger      - description: S2 target
78b48b5636SClément Léger      - description: fdma target
79b48b5636SClément Léger
80b48b5636SClément Léger  reg-names:
81dd43f5e7SColin Foster    minItems: 20
82b48b5636SClément Léger    items:
83b48b5636SClément Léger      - const: sys
84b48b5636SClément Léger      - const: rew
85b48b5636SClément Léger      - const: qs
86b48b5636SClément Léger      - const: ptp
87b48b5636SClément Léger      - const: port0
88b48b5636SClément Léger      - const: port1
89b48b5636SClément Léger      - const: port2
90b48b5636SClément Léger      - const: port3
91b48b5636SClément Léger      - const: port4
92b48b5636SClément Léger      - const: port5
93b48b5636SClément Léger      - const: port6
94b48b5636SClément Léger      - const: port7
95b48b5636SClément Léger      - const: port8
96b48b5636SClément Léger      - const: port9
97b48b5636SClément Léger      - const: port10
98b48b5636SClément Léger      - const: qsys
99b48b5636SClément Léger      - const: ana
100b48b5636SClément Léger      - const: s0
101b48b5636SClément Léger      - const: s1
102b48b5636SClément Léger      - const: s2
103b48b5636SClément Léger      - const: fdma
104b48b5636SClément Léger
105b48b5636SClément Léger  interrupts:
106b48b5636SClément Léger    minItems: 1
107b48b5636SClément Léger    items:
108b48b5636SClément Léger      - description: PTP ready
109b48b5636SClément Léger      - description: register based extraction
110b48b5636SClément Léger      - description: frame dma based extraction
111b48b5636SClément Léger
112b48b5636SClément Léger  interrupt-names:
113b48b5636SClément Léger    minItems: 1
114b48b5636SClément Léger    items:
115b48b5636SClément Léger      - const: ptp_rdy
116b48b5636SClément Léger      - const: xtr
117b48b5636SClément Léger      - const: fdma
118b48b5636SClément Léger
119b48b5636SClément Légerrequired:
120b48b5636SClément Léger  - compatible
121b48b5636SClément Léger  - reg
122b48b5636SClément Léger  - reg-names
123b48b5636SClément Léger  - ethernet-ports
124b48b5636SClément Léger
125dd43f5e7SColin FosterunevaluatedProperties: false
126b48b5636SClément Léger
127b48b5636SClément Légerexamples:
128dd43f5e7SColin Foster  # VSC7514 (Switchdev)
129b48b5636SClément Léger  - |
130b48b5636SClément Léger    switch@1010000 {
131b48b5636SClément Léger      compatible = "mscc,vsc7514-switch";
132b48b5636SClément Léger      reg = <0x1010000 0x10000>,
133b48b5636SClément Léger            <0x1030000 0x10000>,
134b48b5636SClément Léger            <0x1080000 0x100>,
135b48b5636SClément Léger            <0x10e0000 0x10000>,
136b48b5636SClément Léger            <0x11e0000 0x100>,
137b48b5636SClément Léger            <0x11f0000 0x100>,
138b48b5636SClément Léger            <0x1200000 0x100>,
139b48b5636SClément Léger            <0x1210000 0x100>,
140b48b5636SClément Léger            <0x1220000 0x100>,
141b48b5636SClément Léger            <0x1230000 0x100>,
142b48b5636SClément Léger            <0x1240000 0x100>,
143b48b5636SClément Léger            <0x1250000 0x100>,
144b48b5636SClément Léger            <0x1260000 0x100>,
145b48b5636SClément Léger            <0x1270000 0x100>,
146b48b5636SClément Léger            <0x1280000 0x100>,
147b48b5636SClément Léger            <0x1800000 0x80000>,
148b48b5636SClément Léger            <0x1880000 0x10000>,
149b48b5636SClément Léger            <0x1040000 0x10000>,
150b48b5636SClément Léger            <0x1050000 0x10000>,
151b48b5636SClément Léger            <0x1060000 0x10000>,
152b48b5636SClément Léger            <0x1a0 0x1c4>;
153b48b5636SClément Léger      reg-names = "sys", "rew", "qs", "ptp", "port0", "port1",
154b48b5636SClément Léger            "port2", "port3", "port4", "port5", "port6",
155b48b5636SClément Léger            "port7", "port8", "port9", "port10", "qsys",
156b48b5636SClément Léger            "ana", "s0", "s1", "s2", "fdma";
157b48b5636SClément Léger      interrupts = <18 21 16>;
158b48b5636SClément Léger      interrupt-names = "ptp_rdy", "xtr", "fdma";
159b48b5636SClément Léger
160b48b5636SClément Léger      ethernet-ports {
161b48b5636SClément Léger        #address-cells = <1>;
162b48b5636SClément Léger        #size-cells = <0>;
163b48b5636SClément Léger
164b48b5636SClément Léger        port0: port@0 {
165b48b5636SClément Léger          reg = <0>;
166b48b5636SClément Léger          phy-handle = <&phy0>;
167b48b5636SClément Léger          phy-mode = "internal";
168b48b5636SClément Léger        };
169b48b5636SClément Léger        port1: port@1 {
170b48b5636SClément Léger          reg = <1>;
171b48b5636SClément Léger          phy-handle = <&phy1>;
172b48b5636SClément Léger          phy-mode = "internal";
173b48b5636SClément Léger        };
174b48b5636SClément Léger      };
175b48b5636SClément Léger    };
176dd43f5e7SColin Foster  # VSC7512 (DSA)
177dd43f5e7SColin Foster  - |
178dd43f5e7SColin Foster    ethernet-switch@1 {
179dd43f5e7SColin Foster      compatible = "mscc,vsc7512-switch";
180dd43f5e7SColin Foster      reg = <0x71010000 0x10000>,
181dd43f5e7SColin Foster            <0x71030000 0x10000>,
182dd43f5e7SColin Foster            <0x71080000 0x100>,
183dd43f5e7SColin Foster            <0x710e0000 0x10000>,
184dd43f5e7SColin Foster            <0x711e0000 0x100>,
185dd43f5e7SColin Foster            <0x711f0000 0x100>,
186dd43f5e7SColin Foster            <0x71200000 0x100>,
187dd43f5e7SColin Foster            <0x71210000 0x100>,
188dd43f5e7SColin Foster            <0x71220000 0x100>,
189dd43f5e7SColin Foster            <0x71230000 0x100>,
190dd43f5e7SColin Foster            <0x71240000 0x100>,
191dd43f5e7SColin Foster            <0x71250000 0x100>,
192dd43f5e7SColin Foster            <0x71260000 0x100>,
193dd43f5e7SColin Foster            <0x71270000 0x100>,
194dd43f5e7SColin Foster            <0x71280000 0x100>,
195dd43f5e7SColin Foster            <0x71800000 0x80000>,
196dd43f5e7SColin Foster            <0x71880000 0x10000>,
197dd43f5e7SColin Foster            <0x71040000 0x10000>,
198dd43f5e7SColin Foster            <0x71050000 0x10000>,
199dd43f5e7SColin Foster            <0x71060000 0x10000>;
200dd43f5e7SColin Foster            reg-names = "sys", "rew", "qs", "ptp", "port0", "port1",
201dd43f5e7SColin Foster            "port2", "port3", "port4", "port5", "port6",
202dd43f5e7SColin Foster            "port7", "port8", "port9", "port10", "qsys",
203dd43f5e7SColin Foster            "ana", "s0", "s1", "s2";
204dd43f5e7SColin Foster
205dd43f5e7SColin Foster      ethernet-ports {
206dd43f5e7SColin Foster        #address-cells = <1>;
207dd43f5e7SColin Foster        #size-cells = <0>;
208dd43f5e7SColin Foster
209dd43f5e7SColin Foster        port@0 {
210dd43f5e7SColin Foster          reg = <0>;
211dd43f5e7SColin Foster          ethernet = <&mac_sw>;
212dd43f5e7SColin Foster          phy-handle = <&phy0>;
213dd43f5e7SColin Foster          phy-mode = "internal";
214dd43f5e7SColin Foster        };
215dd43f5e7SColin Foster        port@1 {
216dd43f5e7SColin Foster          reg = <1>;
217dd43f5e7SColin Foster          phy-handle = <&phy1>;
218dd43f5e7SColin Foster          phy-mode = "internal";
219dd43f5e7SColin Foster        };
220dd43f5e7SColin Foster      };
221dd43f5e7SColin Foster    };
222b48b5636SClément Léger
223b48b5636SClément Léger...
224