| # SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause | |
| %YAML 1.2 | |
| --- | |
| $id: http://devicetree.org/schemas/net/mscc,vsc7514-switch.yaml# | |
| $schema: http://devicetree.org/meta-schemas/core.yaml# | |
| title: Microchip VSC7514 Ethernet switch controller | |
| maintainers: | |
| - Vladimir Oltean <vladimir.oltean@nxp.com> | |
| - Claudiu Manoil <claudiu.manoil@nxp.com> | |
| - Alexandre Belloni <alexandre.belloni@bootlin.com> | |
| description: | | |
| Bindings for the Microchip VSC7514 switch driver | |
| The VSC7514 switch driver handles up to 11 ports and can inject/extract | |
| packets using CPU. Additionally, PTP is supported as well as FDMA for faster | |
| packet extraction/injection. | |
| allOf: | |
| - if: | |
| properties: | |
| compatible: | |
| const: mscc,vsc7514-switch | |
| then: | |
| $ref: ethernet-switch.yaml#/$defs/ethernet-ports | |
| required: | |
| - interrupts | |
| - interrupt-names | |
| properties: | |
| reg: | |
| minItems: 21 | |
| reg-names: | |
| minItems: 21 | |
| - if: | |
| properties: | |
| compatible: | |
| const: mscc,vsc7512-switch | |
| then: | |
| $ref: /schemas/net/dsa/dsa.yaml#/$defs/ethernet-ports | |
| properties: | |
| reg: | |
| maxItems: 20 | |
| reg-names: | |
| maxItems: 20 | |
| properties: | |
| compatible: | |
| enum: | |
| - mscc,vsc7512-switch | |
| - mscc,vsc7514-switch | |
| reg: | |
| minItems: 20 | |
| items: | |
| - description: system target | |
| - description: rewriter target | |
| - description: qs target | |
| - description: PTP target | |
| - description: Port0 target | |
| - description: Port1 target | |
| - description: Port2 target | |
| - description: Port3 target | |
| - description: Port4 target | |
| - description: Port5 target | |
| - description: Port6 target | |
| - description: Port7 target | |
| - description: Port8 target | |
| - description: Port9 target | |
| - description: Port10 target | |
| - description: QSystem target | |
| - description: Analyzer target | |
| - description: S0 target | |
| - description: S1 target | |
| - description: S2 target | |
| - description: fdma target | |
| reg-names: | |
| minItems: 20 | |
| items: | |
| - const: sys | |
| - const: rew | |
| - const: qs | |
| - const: ptp | |
| - const: port0 | |
| - const: port1 | |
| - const: port2 | |
| - const: port3 | |
| - const: port4 | |
| - const: port5 | |
| - const: port6 | |
| - const: port7 | |
| - const: port8 | |
| - const: port9 | |
| - const: port10 | |
| - const: qsys | |
| - const: ana | |
| - const: s0 | |
| - const: s1 | |
| - const: s2 | |
| - const: fdma | |
| interrupts: | |
| minItems: 1 | |
| items: | |
| - description: PTP ready | |
| - description: register based extraction | |
| - description: frame dma based extraction | |
| interrupt-names: | |
| minItems: 1 | |
| items: | |
| - const: ptp_rdy | |
| - const: xtr | |
| - const: fdma | |
| required: | |
| - compatible | |
| - reg | |
| - reg-names | |
| - ethernet-ports | |
| unevaluatedProperties: false | |
| examples: | |
| # VSC7514 (Switchdev) | |
| - | | |
| switch@1010000 { | |
| compatible = "mscc,vsc7514-switch"; | |
| reg = <0x1010000 0x10000>, | |
| <0x1030000 0x10000>, | |
| <0x1080000 0x100>, | |
| <0x10e0000 0x10000>, | |
| <0x11e0000 0x100>, | |
| <0x11f0000 0x100>, | |
| <0x1200000 0x100>, | |
| <0x1210000 0x100>, | |
| <0x1220000 0x100>, | |
| <0x1230000 0x100>, | |
| <0x1240000 0x100>, | |
| <0x1250000 0x100>, | |
| <0x1260000 0x100>, | |
| <0x1270000 0x100>, | |
| <0x1280000 0x100>, | |
| <0x1800000 0x80000>, | |
| <0x1880000 0x10000>, | |
| <0x1040000 0x10000>, | |
| <0x1050000 0x10000>, | |
| <0x1060000 0x10000>, | |
| <0x1a0 0x1c4>; | |
| reg-names = "sys", "rew", "qs", "ptp", "port0", "port1", | |
| "port2", "port3", "port4", "port5", "port6", | |
| "port7", "port8", "port9", "port10", "qsys", | |
| "ana", "s0", "s1", "s2", "fdma"; | |
| interrupts = <18 21 16>; | |
| interrupt-names = "ptp_rdy", "xtr", "fdma"; | |
| ethernet-ports { | |
| #address-cells = <1>; | |
| #size-cells = <0>; | |
| port0: port@0 { | |
| reg = <0>; | |
| phy-handle = <&phy0>; | |
| phy-mode = "internal"; | |
| }; | |
| port1: port@1 { | |
| reg = <1>; | |
| phy-handle = <&phy1>; | |
| phy-mode = "internal"; | |
| }; | |
| }; | |
| }; | |
| # VSC7512 (DSA) | |
| - | | |
| ethernet-switch@1 { | |
| compatible = "mscc,vsc7512-switch"; | |
| reg = <0x71010000 0x10000>, | |
| <0x71030000 0x10000>, | |
| <0x71080000 0x100>, | |
| <0x710e0000 0x10000>, | |
| <0x711e0000 0x100>, | |
| <0x711f0000 0x100>, | |
| <0x71200000 0x100>, | |
| <0x71210000 0x100>, | |
| <0x71220000 0x100>, | |
| <0x71230000 0x100>, | |
| <0x71240000 0x100>, | |
| <0x71250000 0x100>, | |
| <0x71260000 0x100>, | |
| <0x71270000 0x100>, | |
| <0x71280000 0x100>, | |
| <0x71800000 0x80000>, | |
| <0x71880000 0x10000>, | |
| <0x71040000 0x10000>, | |
| <0x71050000 0x10000>, | |
| <0x71060000 0x10000>; | |
| reg-names = "sys", "rew", "qs", "ptp", "port0", "port1", | |
| "port2", "port3", "port4", "port5", "port6", | |
| "port7", "port8", "port9", "port10", "qsys", | |
| "ana", "s0", "s1", "s2"; | |
| ethernet-ports { | |
| #address-cells = <1>; | |
| #size-cells = <0>; | |
| port@0 { | |
| reg = <0>; | |
| ethernet = <&mac_sw>; | |
| phy-handle = <&phy0>; | |
| phy-mode = "internal"; | |
| }; | |
| port@1 { | |
| reg = <1>; | |
| phy-handle = <&phy1>; | |
| phy-mode = "internal"; | |
| }; | |
| }; | |
| }; | |
| ... |