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