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