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