File Index
Files and directories
Sign in
FILE

mscc,vsc7514-switch.yaml

File preview with syntax highlighting.

linux-6.19.14/Documentation/devicetree/bindings/net/mscc,vsc7514-switch.yaml 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
  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#/$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
 49properties:
 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
119required:
120  - compatible
121  - reg
122  - reg-names
123  - ethernet-ports
124
125unevaluatedProperties: false
126
127examples:
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...
~/ Read-only file preview.