15956d97fSEmmanuel Vadot# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause 25956d97fSEmmanuel Vadot%YAML 1.2 35956d97fSEmmanuel Vadot--- 45956d97fSEmmanuel Vadot$id: http://devicetree.org/schemas/net/microchip,sparx5-switch.yaml# 55956d97fSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml# 65956d97fSEmmanuel Vadot 75956d97fSEmmanuel Vadottitle: Microchip Sparx5 Ethernet switch controller 85956d97fSEmmanuel Vadot 95956d97fSEmmanuel Vadotmaintainers: 105956d97fSEmmanuel Vadot - Steen Hegelund <steen.hegelund@microchip.com> 115956d97fSEmmanuel Vadot - Lars Povlsen <lars.povlsen@microchip.com> 125956d97fSEmmanuel Vadot 135956d97fSEmmanuel Vadotdescription: | 145956d97fSEmmanuel Vadot The SparX-5 Enterprise Ethernet switch family provides a rich set of 155956d97fSEmmanuel Vadot Enterprise switching features such as advanced TCAM-based VLAN and 165956d97fSEmmanuel Vadot QoS processing enabling delivery of differentiated services, and 175956d97fSEmmanuel Vadot security through TCAM-based frame processing using versatile content 185956d97fSEmmanuel Vadot aware processor (VCAP). 195956d97fSEmmanuel Vadot 205956d97fSEmmanuel Vadot IPv4/IPv6 Layer 3 (L3) unicast and multicast routing is supported 215956d97fSEmmanuel Vadot with up to 18K IPv4/9K IPv6 unicast LPM entries and up to 9K IPv4/3K 225956d97fSEmmanuel Vadot IPv6 (S,G) multicast groups. 235956d97fSEmmanuel Vadot 245956d97fSEmmanuel Vadot L3 security features include source guard and reverse path 255956d97fSEmmanuel Vadot forwarding (uRPF) tasks. Additional L3 features include VRF-Lite and 265956d97fSEmmanuel Vadot IP tunnels (IP over GRE/IP). 275956d97fSEmmanuel Vadot 285956d97fSEmmanuel Vadot The SparX-5 switch family targets managed Layer 2 and Layer 3 295956d97fSEmmanuel Vadot equipment in SMB, SME, and Enterprise where high port count 305956d97fSEmmanuel Vadot 1G/2.5G/5G/10G switching with 10G/25G aggregation links is required. 315956d97fSEmmanuel Vadot 325956d97fSEmmanuel Vadotproperties: 335956d97fSEmmanuel Vadot $nodename: 345956d97fSEmmanuel Vadot pattern: "^switch@[0-9a-f]+$" 355956d97fSEmmanuel Vadot 365956d97fSEmmanuel Vadot compatible: 375956d97fSEmmanuel Vadot const: microchip,sparx5-switch 385956d97fSEmmanuel Vadot 395956d97fSEmmanuel Vadot reg: 405956d97fSEmmanuel Vadot items: 415956d97fSEmmanuel Vadot - description: cpu target 425956d97fSEmmanuel Vadot - description: devices target 435956d97fSEmmanuel Vadot - description: general control block target 445956d97fSEmmanuel Vadot 455956d97fSEmmanuel Vadot reg-names: 465956d97fSEmmanuel Vadot items: 475956d97fSEmmanuel Vadot - const: cpu 485956d97fSEmmanuel Vadot - const: devices 495956d97fSEmmanuel Vadot - const: gcb 505956d97fSEmmanuel Vadot 515956d97fSEmmanuel Vadot interrupts: 525956d97fSEmmanuel Vadot minItems: 1 535956d97fSEmmanuel Vadot items: 545956d97fSEmmanuel Vadot - description: register based extraction 555956d97fSEmmanuel Vadot - description: frame dma based extraction 56c9ccf3a3SEmmanuel Vadot - description: ptp interrupt 575956d97fSEmmanuel Vadot 585956d97fSEmmanuel Vadot interrupt-names: 595956d97fSEmmanuel Vadot minItems: 1 605956d97fSEmmanuel Vadot items: 615956d97fSEmmanuel Vadot - const: xtr 625956d97fSEmmanuel Vadot - const: fdma 63c9ccf3a3SEmmanuel Vadot - const: ptp 645956d97fSEmmanuel Vadot 655956d97fSEmmanuel Vadot resets: 665956d97fSEmmanuel Vadot items: 675956d97fSEmmanuel Vadot - description: Reset controller used for switch core reset (soft reset) 685956d97fSEmmanuel Vadot 695956d97fSEmmanuel Vadot reset-names: 705956d97fSEmmanuel Vadot items: 715956d97fSEmmanuel Vadot - const: switch 725956d97fSEmmanuel Vadot 735956d97fSEmmanuel Vadot mac-address: true 745956d97fSEmmanuel Vadot 755956d97fSEmmanuel Vadot ethernet-ports: 765956d97fSEmmanuel Vadot type: object 777ef62cebSEmmanuel Vadot additionalProperties: false 785956d97fSEmmanuel Vadot 795956d97fSEmmanuel Vadot properties: 805956d97fSEmmanuel Vadot '#address-cells': 815956d97fSEmmanuel Vadot const: 1 825956d97fSEmmanuel Vadot '#size-cells': 835956d97fSEmmanuel Vadot const: 0 845956d97fSEmmanuel Vadot 857ef62cebSEmmanuel Vadot patternProperties: 867ef62cebSEmmanuel Vadot "^port@[0-9a-f]+$": 877ef62cebSEmmanuel Vadot $ref: /schemas/net/ethernet-controller.yaml# 887ef62cebSEmmanuel Vadot unevaluatedProperties: false 897ef62cebSEmmanuel Vadot 907ef62cebSEmmanuel Vadot properties: 915956d97fSEmmanuel Vadot reg: 925956d97fSEmmanuel Vadot description: Switch port number 935956d97fSEmmanuel Vadot 945956d97fSEmmanuel Vadot phys: 955956d97fSEmmanuel Vadot maxItems: 1 965956d97fSEmmanuel Vadot description: 975956d97fSEmmanuel Vadot phandle of a Ethernet SerDes PHY. This defines which SerDes 985956d97fSEmmanuel Vadot instance will handle the Ethernet traffic. 995956d97fSEmmanuel Vadot 1005956d97fSEmmanuel Vadot microchip,bandwidth: 1015956d97fSEmmanuel Vadot description: Specifies bandwidth in Mbit/s allocated to the port. 102*fac71e4eSEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/uint32 1035956d97fSEmmanuel Vadot maximum: 25000 1045956d97fSEmmanuel Vadot 1055956d97fSEmmanuel Vadot microchip,sd-sgpio: 1065956d97fSEmmanuel Vadot description: 1075956d97fSEmmanuel Vadot Index of the ports Signal Detect SGPIO in the set of 384 SGPIOs 1085956d97fSEmmanuel Vadot This is optional, and only needed if the default used index is 1095956d97fSEmmanuel Vadot is not correct. 110*fac71e4eSEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/uint32 1115956d97fSEmmanuel Vadot minimum: 0 1125956d97fSEmmanuel Vadot maximum: 383 1135956d97fSEmmanuel Vadot 1145956d97fSEmmanuel Vadot required: 1155956d97fSEmmanuel Vadot - reg 1165956d97fSEmmanuel Vadot - phys 1175956d97fSEmmanuel Vadot - phy-mode 1185956d97fSEmmanuel Vadot - microchip,bandwidth 1195956d97fSEmmanuel Vadot 1205956d97fSEmmanuel Vadot oneOf: 1215956d97fSEmmanuel Vadot - required: 1225956d97fSEmmanuel Vadot - phy-handle 1235956d97fSEmmanuel Vadot - required: 1245956d97fSEmmanuel Vadot - sfp 1255956d97fSEmmanuel Vadot - managed 1265956d97fSEmmanuel Vadot 1275956d97fSEmmanuel Vadotrequired: 1285956d97fSEmmanuel Vadot - compatible 1295956d97fSEmmanuel Vadot - reg 1305956d97fSEmmanuel Vadot - reg-names 1315956d97fSEmmanuel Vadot - interrupts 1325956d97fSEmmanuel Vadot - interrupt-names 1335956d97fSEmmanuel Vadot - ethernet-ports 1345956d97fSEmmanuel Vadot 1355956d97fSEmmanuel VadotadditionalProperties: false 1365956d97fSEmmanuel Vadot 1375956d97fSEmmanuel Vadotexamples: 1385956d97fSEmmanuel Vadot - | 1395956d97fSEmmanuel Vadot #include <dt-bindings/interrupt-controller/arm-gic.h> 1405956d97fSEmmanuel Vadot switch: switch@600000000 { 1415956d97fSEmmanuel Vadot compatible = "microchip,sparx5-switch"; 1425956d97fSEmmanuel Vadot reg = <0 0x401000>, 1435956d97fSEmmanuel Vadot <0x10004000 0x7fc000>, 1445956d97fSEmmanuel Vadot <0x11010000 0xaf0000>; 1455956d97fSEmmanuel Vadot reg-names = "cpu", "devices", "gcb"; 1465956d97fSEmmanuel Vadot interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>; 1475956d97fSEmmanuel Vadot interrupt-names = "xtr"; 1485956d97fSEmmanuel Vadot resets = <&reset 0>; 1495956d97fSEmmanuel Vadot reset-names = "switch"; 1505956d97fSEmmanuel Vadot ethernet-ports { 1515956d97fSEmmanuel Vadot #address-cells = <1>; 1525956d97fSEmmanuel Vadot #size-cells = <0>; 1535956d97fSEmmanuel Vadot 1545956d97fSEmmanuel Vadot port0: port@0 { 1555956d97fSEmmanuel Vadot reg = <0>; 1565956d97fSEmmanuel Vadot microchip,bandwidth = <1000>; 1575956d97fSEmmanuel Vadot phys = <&serdes 13>; 1585956d97fSEmmanuel Vadot phy-handle = <&phy0>; 1595956d97fSEmmanuel Vadot phy-mode = "qsgmii"; 1605956d97fSEmmanuel Vadot }; 1615956d97fSEmmanuel Vadot /* ... */ 1625956d97fSEmmanuel Vadot /* Then the 25G interfaces */ 1635956d97fSEmmanuel Vadot port60: port@60 { 1645956d97fSEmmanuel Vadot reg = <60>; 1655956d97fSEmmanuel Vadot microchip,bandwidth = <25000>; 1665956d97fSEmmanuel Vadot phys = <&serdes 29>; 1675956d97fSEmmanuel Vadot phy-mode = "10gbase-r"; 1685956d97fSEmmanuel Vadot sfp = <&sfp_eth60>; 1695956d97fSEmmanuel Vadot managed = "in-band-status"; 1705956d97fSEmmanuel Vadot microchip,sd-sgpio = <365>; 1715956d97fSEmmanuel Vadot }; 1725956d97fSEmmanuel Vadot port61: port@61 { 1735956d97fSEmmanuel Vadot reg = <61>; 1745956d97fSEmmanuel Vadot microchip,bandwidth = <25000>; 1755956d97fSEmmanuel Vadot phys = <&serdes 30>; 1765956d97fSEmmanuel Vadot phy-mode = "10gbase-r"; 1775956d97fSEmmanuel Vadot sfp = <&sfp_eth61>; 1785956d97fSEmmanuel Vadot managed = "in-band-status"; 1795956d97fSEmmanuel Vadot microchip,sd-sgpio = <369>; 1805956d97fSEmmanuel Vadot }; 1815956d97fSEmmanuel Vadot port62: port@62 { 1825956d97fSEmmanuel Vadot reg = <62>; 1835956d97fSEmmanuel Vadot microchip,bandwidth = <25000>; 1845956d97fSEmmanuel Vadot phys = <&serdes 31>; 1855956d97fSEmmanuel Vadot phy-mode = "10gbase-r"; 1865956d97fSEmmanuel Vadot sfp = <&sfp_eth62>; 1875956d97fSEmmanuel Vadot managed = "in-band-status"; 1885956d97fSEmmanuel Vadot microchip,sd-sgpio = <373>; 1895956d97fSEmmanuel Vadot }; 1905956d97fSEmmanuel Vadot port63: port@63 { 1915956d97fSEmmanuel Vadot reg = <63>; 1925956d97fSEmmanuel Vadot microchip,bandwidth = <25000>; 1935956d97fSEmmanuel Vadot phys = <&serdes 32>; 1945956d97fSEmmanuel Vadot phy-mode = "10gbase-r"; 1955956d97fSEmmanuel Vadot sfp = <&sfp_eth63>; 1965956d97fSEmmanuel Vadot managed = "in-band-status"; 1975956d97fSEmmanuel Vadot microchip,sd-sgpio = <377>; 1985956d97fSEmmanuel Vadot }; 1995956d97fSEmmanuel Vadot /* Finally the Management interface */ 2005956d97fSEmmanuel Vadot port64: port@64 { 2015956d97fSEmmanuel Vadot reg = <64>; 2025956d97fSEmmanuel Vadot microchip,bandwidth = <1000>; 2035956d97fSEmmanuel Vadot phys = <&serdes 0>; 2045956d97fSEmmanuel Vadot phy-handle = <&phy64>; 2055956d97fSEmmanuel Vadot phy-mode = "sgmii"; 2065956d97fSEmmanuel Vadot mac-address = [ 00 00 00 01 02 03 ]; 2075956d97fSEmmanuel Vadot }; 2085956d97fSEmmanuel Vadot }; 2095956d97fSEmmanuel Vadot }; 2105956d97fSEmmanuel Vadot 2115956d97fSEmmanuel Vadot... 2125956d97fSEmmanuel Vadot# vim: set ts=2 sw=2 sts=2 tw=80 et cc=80 ft=yaml : 213