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... 234