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