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