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