1f8c63088SSteen Hegelund# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause 2f8c63088SSteen Hegelund%YAML 1.2 3f8c63088SSteen Hegelund--- 4f8c63088SSteen Hegelund$id: http://devicetree.org/schemas/net/microchip,sparx5-switch.yaml# 5f8c63088SSteen Hegelund$schema: http://devicetree.org/meta-schemas/core.yaml# 6f8c63088SSteen Hegelund 7f8c63088SSteen Hegelundtitle: Microchip Sparx5 Ethernet switch controller 8f8c63088SSteen Hegelund 9f8c63088SSteen Hegelundmaintainers: 10f8c63088SSteen Hegelund - Steen Hegelund <steen.hegelund@microchip.com> 11f8c63088SSteen Hegelund - Lars Povlsen <lars.povlsen@microchip.com> 12f8c63088SSteen Hegelund 13f8c63088SSteen Hegelunddescription: | 14f8c63088SSteen Hegelund The SparX-5 Enterprise Ethernet switch family provides a rich set of 15f8c63088SSteen Hegelund Enterprise switching features such as advanced TCAM-based VLAN and 16f8c63088SSteen Hegelund QoS processing enabling delivery of differentiated services, and 17f8c63088SSteen Hegelund security through TCAM-based frame processing using versatile content 18f8c63088SSteen Hegelund aware processor (VCAP). 19f8c63088SSteen Hegelund 20f8c63088SSteen Hegelund IPv4/IPv6 Layer 3 (L3) unicast and multicast routing is supported 21f8c63088SSteen Hegelund with up to 18K IPv4/9K IPv6 unicast LPM entries and up to 9K IPv4/3K 22f8c63088SSteen Hegelund IPv6 (S,G) multicast groups. 23f8c63088SSteen Hegelund 24f8c63088SSteen Hegelund L3 security features include source guard and reverse path 25f8c63088SSteen Hegelund forwarding (uRPF) tasks. Additional L3 features include VRF-Lite and 26f8c63088SSteen Hegelund IP tunnels (IP over GRE/IP). 27f8c63088SSteen Hegelund 28f8c63088SSteen Hegelund The SparX-5 switch family targets managed Layer 2 and Layer 3 29f8c63088SSteen Hegelund equipment in SMB, SME, and Enterprise where high port count 30f8c63088SSteen Hegelund 1G/2.5G/5G/10G switching with 10G/25G aggregation links is required. 31f8c63088SSteen Hegelund 32f8c63088SSteen Hegelundproperties: 33f8c63088SSteen Hegelund $nodename: 34f8c63088SSteen Hegelund pattern: "^switch@[0-9a-f]+$" 35f8c63088SSteen Hegelund 36f8c63088SSteen Hegelund compatible: 37f8c63088SSteen Hegelund const: microchip,sparx5-switch 38f8c63088SSteen Hegelund 39f8c63088SSteen Hegelund reg: 40f8c63088SSteen Hegelund items: 41f8c63088SSteen Hegelund - description: cpu target 42f8c63088SSteen Hegelund - description: devices target 43f8c63088SSteen Hegelund - description: general control block target 44f8c63088SSteen Hegelund 45f8c63088SSteen Hegelund reg-names: 46f8c63088SSteen Hegelund items: 47f8c63088SSteen Hegelund - const: cpu 48f8c63088SSteen Hegelund - const: devices 49f8c63088SSteen Hegelund - const: gcb 50f8c63088SSteen Hegelund 51f8c63088SSteen Hegelund interrupts: 52f8c63088SSteen Hegelund minItems: 1 53f8c63088SSteen Hegelund items: 54f8c63088SSteen Hegelund - description: register based extraction 55f8c63088SSteen Hegelund - description: frame dma based extraction 56b066ad26SHoratiu Vultur - description: ptp interrupt 57f8c63088SSteen Hegelund 58f8c63088SSteen Hegelund interrupt-names: 59f8c63088SSteen Hegelund minItems: 1 60f8c63088SSteen Hegelund items: 61f8c63088SSteen Hegelund - const: xtr 62f8c63088SSteen Hegelund - const: fdma 63b066ad26SHoratiu Vultur - const: ptp 64f8c63088SSteen Hegelund 65f8c63088SSteen Hegelund resets: 66f8c63088SSteen Hegelund items: 67f8c63088SSteen Hegelund - description: Reset controller used for switch core reset (soft reset) 68f8c63088SSteen Hegelund 69f8c63088SSteen Hegelund reset-names: 70f8c63088SSteen Hegelund items: 71f8c63088SSteen Hegelund - const: switch 72f8c63088SSteen Hegelund 73f8c63088SSteen Hegelund mac-address: true 74f8c63088SSteen Hegelund 75f8c63088SSteen Hegelund ethernet-ports: 76f8c63088SSteen Hegelund type: object 77057062adSRob Herring additionalProperties: false 78f8c63088SSteen Hegelund 79f8c63088SSteen Hegelund properties: 80f8c63088SSteen Hegelund '#address-cells': 81f8c63088SSteen Hegelund const: 1 82f8c63088SSteen Hegelund '#size-cells': 83f8c63088SSteen Hegelund const: 0 84f8c63088SSteen Hegelund 85057062adSRob Herring patternProperties: 86057062adSRob Herring "^port@[0-9a-f]+$": 87057062adSRob Herring $ref: /schemas/net/ethernet-controller.yaml# 88057062adSRob Herring unevaluatedProperties: false 89057062adSRob Herring 90057062adSRob Herring properties: 91f8c63088SSteen Hegelund reg: 92f8c63088SSteen Hegelund description: Switch port number 93f8c63088SSteen Hegelund 94f8c63088SSteen Hegelund phys: 95f8c63088SSteen Hegelund maxItems: 1 96f8c63088SSteen Hegelund description: 97f8c63088SSteen Hegelund phandle of a Ethernet SerDes PHY. This defines which SerDes 98f8c63088SSteen Hegelund instance will handle the Ethernet traffic. 99f8c63088SSteen Hegelund 100f8c63088SSteen Hegelund microchip,bandwidth: 101f8c63088SSteen Hegelund description: Specifies bandwidth in Mbit/s allocated to the port. 102*3079bfdbSRob Herring $ref: /schemas/types.yaml#/definitions/uint32 103f8c63088SSteen Hegelund maximum: 25000 104f8c63088SSteen Hegelund 105f8c63088SSteen Hegelund microchip,sd-sgpio: 106f8c63088SSteen Hegelund description: 107f8c63088SSteen Hegelund Index of the ports Signal Detect SGPIO in the set of 384 SGPIOs 108f8c63088SSteen Hegelund This is optional, and only needed if the default used index is 109f8c63088SSteen Hegelund is not correct. 110*3079bfdbSRob Herring $ref: /schemas/types.yaml#/definitions/uint32 111f8c63088SSteen Hegelund minimum: 0 112f8c63088SSteen Hegelund maximum: 383 113f8c63088SSteen Hegelund 114f8c63088SSteen Hegelund required: 115f8c63088SSteen Hegelund - reg 116f8c63088SSteen Hegelund - phys 117f8c63088SSteen Hegelund - phy-mode 118f8c63088SSteen Hegelund - microchip,bandwidth 119f8c63088SSteen Hegelund 120f8c63088SSteen Hegelund oneOf: 121f8c63088SSteen Hegelund - required: 122f8c63088SSteen Hegelund - phy-handle 123f8c63088SSteen Hegelund - required: 124f8c63088SSteen Hegelund - sfp 125f8c63088SSteen Hegelund - managed 126f8c63088SSteen Hegelund 127f8c63088SSteen Hegelundrequired: 128f8c63088SSteen Hegelund - compatible 129f8c63088SSteen Hegelund - reg 130f8c63088SSteen Hegelund - reg-names 131f8c63088SSteen Hegelund - interrupts 132f8c63088SSteen Hegelund - interrupt-names 133f8c63088SSteen Hegelund - ethernet-ports 134f8c63088SSteen Hegelund 135f8c63088SSteen HegelundadditionalProperties: false 136f8c63088SSteen Hegelund 137f8c63088SSteen Hegelundexamples: 138f8c63088SSteen Hegelund - | 139f8c63088SSteen Hegelund #include <dt-bindings/interrupt-controller/arm-gic.h> 140f8c63088SSteen Hegelund switch: switch@600000000 { 141f8c63088SSteen Hegelund compatible = "microchip,sparx5-switch"; 142f8c63088SSteen Hegelund reg = <0 0x401000>, 143f8c63088SSteen Hegelund <0x10004000 0x7fc000>, 144f8c63088SSteen Hegelund <0x11010000 0xaf0000>; 145f8c63088SSteen Hegelund reg-names = "cpu", "devices", "gcb"; 146f8c63088SSteen Hegelund interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>; 147f8c63088SSteen Hegelund interrupt-names = "xtr"; 148f8c63088SSteen Hegelund resets = <&reset 0>; 149f8c63088SSteen Hegelund reset-names = "switch"; 150f8c63088SSteen Hegelund ethernet-ports { 151f8c63088SSteen Hegelund #address-cells = <1>; 152f8c63088SSteen Hegelund #size-cells = <0>; 153f8c63088SSteen Hegelund 154f8c63088SSteen Hegelund port0: port@0 { 155f8c63088SSteen Hegelund reg = <0>; 156f8c63088SSteen Hegelund microchip,bandwidth = <1000>; 157f8c63088SSteen Hegelund phys = <&serdes 13>; 158f8c63088SSteen Hegelund phy-handle = <&phy0>; 159f8c63088SSteen Hegelund phy-mode = "qsgmii"; 160f8c63088SSteen Hegelund }; 161f8c63088SSteen Hegelund /* ... */ 162f8c63088SSteen Hegelund /* Then the 25G interfaces */ 163f8c63088SSteen Hegelund port60: port@60 { 164f8c63088SSteen Hegelund reg = <60>; 165f8c63088SSteen Hegelund microchip,bandwidth = <25000>; 166f8c63088SSteen Hegelund phys = <&serdes 29>; 167f8c63088SSteen Hegelund phy-mode = "10gbase-r"; 168f8c63088SSteen Hegelund sfp = <&sfp_eth60>; 169f8c63088SSteen Hegelund managed = "in-band-status"; 170f8c63088SSteen Hegelund microchip,sd-sgpio = <365>; 171f8c63088SSteen Hegelund }; 172f8c63088SSteen Hegelund port61: port@61 { 173f8c63088SSteen Hegelund reg = <61>; 174f8c63088SSteen Hegelund microchip,bandwidth = <25000>; 175f8c63088SSteen Hegelund phys = <&serdes 30>; 176f8c63088SSteen Hegelund phy-mode = "10gbase-r"; 177f8c63088SSteen Hegelund sfp = <&sfp_eth61>; 178f8c63088SSteen Hegelund managed = "in-band-status"; 179f8c63088SSteen Hegelund microchip,sd-sgpio = <369>; 180f8c63088SSteen Hegelund }; 181f8c63088SSteen Hegelund port62: port@62 { 182f8c63088SSteen Hegelund reg = <62>; 183f8c63088SSteen Hegelund microchip,bandwidth = <25000>; 184f8c63088SSteen Hegelund phys = <&serdes 31>; 185f8c63088SSteen Hegelund phy-mode = "10gbase-r"; 186f8c63088SSteen Hegelund sfp = <&sfp_eth62>; 187f8c63088SSteen Hegelund managed = "in-band-status"; 188f8c63088SSteen Hegelund microchip,sd-sgpio = <373>; 189f8c63088SSteen Hegelund }; 190f8c63088SSteen Hegelund port63: port@63 { 191f8c63088SSteen Hegelund reg = <63>; 192f8c63088SSteen Hegelund microchip,bandwidth = <25000>; 193f8c63088SSteen Hegelund phys = <&serdes 32>; 194f8c63088SSteen Hegelund phy-mode = "10gbase-r"; 195f8c63088SSteen Hegelund sfp = <&sfp_eth63>; 196f8c63088SSteen Hegelund managed = "in-band-status"; 197f8c63088SSteen Hegelund microchip,sd-sgpio = <377>; 198f8c63088SSteen Hegelund }; 199f8c63088SSteen Hegelund /* Finally the Management interface */ 200f8c63088SSteen Hegelund port64: port@64 { 201f8c63088SSteen Hegelund reg = <64>; 202f8c63088SSteen Hegelund microchip,bandwidth = <1000>; 203f8c63088SSteen Hegelund phys = <&serdes 0>; 204f8c63088SSteen Hegelund phy-handle = <&phy64>; 205f8c63088SSteen Hegelund phy-mode = "sgmii"; 206f8c63088SSteen Hegelund mac-address = [ 00 00 00 01 02 03 ]; 207f8c63088SSteen Hegelund }; 208f8c63088SSteen Hegelund }; 209f8c63088SSteen Hegelund }; 210f8c63088SSteen Hegelund 211f8c63088SSteen Hegelund... 212f8c63088SSteen Hegelund# vim: set ts=2 sw=2 sts=2 tw=80 et cc=80 ft=yaml : 213