1 # SPDX-License-Identifier: GPL-2.0-only OR BSD 1 # SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause 2 %YAML 1.2 2 %YAML 1.2 3 --- 3 --- 4 $id: http://devicetree.org/schemas/net/mscc,vs 4 $id: http://devicetree.org/schemas/net/mscc,vsc7514-switch.yaml# 5 $schema: http://devicetree.org/meta-schemas/co 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 6 6 7 title: Microchip VSC7514 Ethernet switch contr 7 title: Microchip VSC7514 Ethernet switch controller 8 8 9 maintainers: 9 maintainers: 10 - Vladimir Oltean <vladimir.oltean@nxp.com> 10 - Vladimir Oltean <vladimir.oltean@nxp.com> 11 - Claudiu Manoil <claudiu.manoil@nxp.com> 11 - Claudiu Manoil <claudiu.manoil@nxp.com> 12 - Alexandre Belloni <alexandre.belloni@bootli 12 - Alexandre Belloni <alexandre.belloni@bootlin.com> 13 13 14 description: | 14 description: | 15 Bindings for the Microchip VSC7514 switch dr 15 Bindings for the Microchip VSC7514 switch driver 16 16 17 The VSC7514 switch driver handles up to 11 p 17 The VSC7514 switch driver handles up to 11 ports and can inject/extract 18 packets using CPU. Additionally, PTP is supp 18 packets using CPU. Additionally, PTP is supported as well as FDMA for faster 19 packet extraction/injection. 19 packet extraction/injection. 20 20 21 allOf: << 22 - if: << 23 properties: << 24 compatible: << 25 const: mscc,vsc7514-switch << 26 then: << 27 $ref: ethernet-switch.yaml#/$defs/ethern << 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/e << 43 properties: << 44 reg: << 45 maxItems: 20 << 46 reg-names: << 47 maxItems: 20 << 48 << 49 properties: 21 properties: >> 22 $nodename: >> 23 pattern: "^switch@[0-9a-f]+$" >> 24 50 compatible: 25 compatible: 51 enum: !! 26 const: mscc,vsc7514-switch 52 - mscc,vsc7512-switch << 53 - mscc,vsc7514-switch << 54 27 55 reg: 28 reg: 56 minItems: 20 << 57 items: 29 items: 58 - description: system target 30 - description: system target 59 - description: rewriter target 31 - description: rewriter target 60 - description: qs target 32 - description: qs target 61 - description: PTP target 33 - description: PTP target 62 - description: Port0 target 34 - description: Port0 target 63 - description: Port1 target 35 - description: Port1 target 64 - description: Port2 target 36 - description: Port2 target 65 - description: Port3 target 37 - description: Port3 target 66 - description: Port4 target 38 - description: Port4 target 67 - description: Port5 target 39 - description: Port5 target 68 - description: Port6 target 40 - description: Port6 target 69 - description: Port7 target 41 - description: Port7 target 70 - description: Port8 target 42 - description: Port8 target 71 - description: Port9 target 43 - description: Port9 target 72 - description: Port10 target 44 - description: Port10 target 73 - description: QSystem target 45 - description: QSystem target 74 - description: Analyzer target 46 - description: Analyzer target 75 - description: S0 target 47 - description: S0 target 76 - description: S1 target 48 - description: S1 target 77 - description: S2 target 49 - description: S2 target 78 - description: fdma target 50 - description: fdma target 79 51 80 reg-names: 52 reg-names: 81 minItems: 20 << 82 items: 53 items: 83 - const: sys 54 - const: sys 84 - const: rew 55 - const: rew 85 - const: qs 56 - const: qs 86 - const: ptp 57 - const: ptp 87 - const: port0 58 - const: port0 88 - const: port1 59 - const: port1 89 - const: port2 60 - const: port2 90 - const: port3 61 - const: port3 91 - const: port4 62 - const: port4 92 - const: port5 63 - const: port5 93 - const: port6 64 - const: port6 94 - const: port7 65 - const: port7 95 - const: port8 66 - const: port8 96 - const: port9 67 - const: port9 97 - const: port10 68 - const: port10 98 - const: qsys 69 - const: qsys 99 - const: ana 70 - const: ana 100 - const: s0 71 - const: s0 101 - const: s1 72 - const: s1 102 - const: s2 73 - const: s2 103 - const: fdma 74 - const: fdma 104 75 105 interrupts: 76 interrupts: 106 minItems: 1 77 minItems: 1 107 items: 78 items: 108 - description: PTP ready 79 - description: PTP ready 109 - description: register based extraction 80 - description: register based extraction 110 - description: frame dma based extractio 81 - description: frame dma based extraction 111 82 112 interrupt-names: 83 interrupt-names: 113 minItems: 1 84 minItems: 1 114 items: 85 items: 115 - const: ptp_rdy 86 - const: ptp_rdy 116 - const: xtr 87 - const: xtr 117 - const: fdma 88 - const: fdma 118 89 >> 90 ethernet-ports: >> 91 type: object >> 92 >> 93 properties: >> 94 '#address-cells': >> 95 const: 1 >> 96 '#size-cells': >> 97 const: 0 >> 98 >> 99 additionalProperties: false >> 100 >> 101 patternProperties: >> 102 "^port@[0-9a-f]+$": >> 103 type: object >> 104 description: Ethernet ports handled by the switch >> 105 >> 106 $ref: ethernet-controller.yaml# >> 107 >> 108 unevaluatedProperties: false >> 109 >> 110 properties: >> 111 reg: >> 112 description: Switch port number >> 113 >> 114 phy-handle: true >> 115 >> 116 phy-mode: true >> 117 >> 118 fixed-link: true >> 119 >> 120 mac-address: true >> 121 >> 122 required: >> 123 - reg >> 124 - phy-mode >> 125 >> 126 oneOf: >> 127 - required: >> 128 - phy-handle >> 129 - required: >> 130 - fixed-link >> 131 119 required: 132 required: 120 - compatible 133 - compatible 121 - reg 134 - reg 122 - reg-names 135 - reg-names >> 136 - interrupts >> 137 - interrupt-names 123 - ethernet-ports 138 - ethernet-ports 124 139 125 unevaluatedProperties: false !! 140 additionalProperties: false 126 141 127 examples: 142 examples: 128 # VSC7514 (Switchdev) << 129 - | 143 - | 130 switch@1010000 { 144 switch@1010000 { 131 compatible = "mscc,vsc7514-switch"; 145 compatible = "mscc,vsc7514-switch"; 132 reg = <0x1010000 0x10000>, 146 reg = <0x1010000 0x10000>, 133 <0x1030000 0x10000>, 147 <0x1030000 0x10000>, 134 <0x1080000 0x100>, 148 <0x1080000 0x100>, 135 <0x10e0000 0x10000>, 149 <0x10e0000 0x10000>, 136 <0x11e0000 0x100>, 150 <0x11e0000 0x100>, 137 <0x11f0000 0x100>, 151 <0x11f0000 0x100>, 138 <0x1200000 0x100>, 152 <0x1200000 0x100>, 139 <0x1210000 0x100>, 153 <0x1210000 0x100>, 140 <0x1220000 0x100>, 154 <0x1220000 0x100>, 141 <0x1230000 0x100>, 155 <0x1230000 0x100>, 142 <0x1240000 0x100>, 156 <0x1240000 0x100>, 143 <0x1250000 0x100>, 157 <0x1250000 0x100>, 144 <0x1260000 0x100>, 158 <0x1260000 0x100>, 145 <0x1270000 0x100>, 159 <0x1270000 0x100>, 146 <0x1280000 0x100>, 160 <0x1280000 0x100>, 147 <0x1800000 0x80000>, 161 <0x1800000 0x80000>, 148 <0x1880000 0x10000>, 162 <0x1880000 0x10000>, 149 <0x1040000 0x10000>, 163 <0x1040000 0x10000>, 150 <0x1050000 0x10000>, 164 <0x1050000 0x10000>, 151 <0x1060000 0x10000>, 165 <0x1060000 0x10000>, 152 <0x1a0 0x1c4>; 166 <0x1a0 0x1c4>; 153 reg-names = "sys", "rew", "qs", "ptp", " 167 reg-names = "sys", "rew", "qs", "ptp", "port0", "port1", 154 "port2", "port3", "port4", "port5" 168 "port2", "port3", "port4", "port5", "port6", 155 "port7", "port8", "port9", "port10 169 "port7", "port8", "port9", "port10", "qsys", 156 "ana", "s0", "s1", "s2", "fdma"; 170 "ana", "s0", "s1", "s2", "fdma"; 157 interrupts = <18 21 16>; 171 interrupts = <18 21 16>; 158 interrupt-names = "ptp_rdy", "xtr", "fdm 172 interrupt-names = "ptp_rdy", "xtr", "fdma"; 159 173 160 ethernet-ports { 174 ethernet-ports { 161 #address-cells = <1>; 175 #address-cells = <1>; 162 #size-cells = <0>; 176 #size-cells = <0>; 163 177 164 port0: port@0 { 178 port0: port@0 { 165 reg = <0>; 179 reg = <0>; 166 phy-handle = <&phy0>; 180 phy-handle = <&phy0>; 167 phy-mode = "internal"; 181 phy-mode = "internal"; 168 }; 182 }; 169 port1: port@1 { 183 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", "p << 201 "port2", "port3", "port4", "port5" << 202 "port7", "port8", "port9", "port10 << 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>; 184 reg = <1>; 217 phy-handle = <&phy1>; 185 phy-handle = <&phy1>; 218 phy-mode = "internal"; 186 phy-mode = "internal"; 219 }; 187 }; 220 }; 188 }; 221 }; 189 }; 222 190 223 ... 191 ...
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.