arm64: dts: qcom: sm8550: add TRNG node
[linux-modified.git] / Documentation / devicetree / 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 ...