brintos

brintos / linux-shallow public Read only

0
0
Text · 7.4 KiB · fe02d05 Raw
261 lines · yaml
1# SPDX-License-Identifier: (GPL-2.0 OR MIT)2%YAML 1.23---4$id: http://devicetree.org/schemas/net/dsa/mscc,ocelot.yaml#5$schema: http://devicetree.org/meta-schemas/core.yaml#6 7title: Microchip Ocelot Switch Family8 9maintainers:10  - Vladimir Oltean <vladimir.oltean@nxp.com>11  - Claudiu Manoil <claudiu.manoil@nxp.com>12  - Alexandre Belloni <alexandre.belloni@bootlin.com>13  - UNGLinuxDriver@microchip.com14 15description: |16  There are multiple switches which are either part of the Ocelot-1 family, or17  derivatives of this architecture. These switches can be found embedded in18  various SoCs and accessed using MMIO, or as discrete chips and accessed over19  SPI or PCIe. The present DSA binding shall be used when the host controlling20  them performs packet I/O primarily through an Ethernet port of the switch21  (which is attached to an Ethernet port of the host), rather than through22  Frame DMA or register-based I/O.23 24  VSC9953 (Seville):25 26    This is found in the NXP T1040, where it is a memory-mapped platform27    device.28 29    The following PHY interface types are supported:30 31      - phy-mode = "internal": on ports 8 and 932      - phy-mode = "sgmii": on ports 0, 1, 2, 3, 4, 5, 6, 733      - phy-mode = "qsgmii": on ports 0, 1, 2, 3, 4, 5, 6, 734      - phy-mode = "1000base-x": on ports 0, 1, 2, 3, 4, 5, 6, 735 36  VSC9959 (Felix):37 38    This is found in the NXP LS1028A. It is a PCI device, part of the larger39    enetc root complex. As a result, the ethernet-switch node is a sub-node of40    the PCIe root complex node and its "reg" property conforms to the parent41    node bindings, describing it as PF 5 of device 0, bus 0.42 43    If any external switch port is enabled, the enetc PF2 (enetc_port2) should44    be enabled as well. This is because the internal MDIO bus (exposed through45    EA BAR 0) used to access the MAC PCS registers truly belongs to the enetc46    port 2 and not to Felix.47 48    The following PHY interface types are supported:49 50      - phy-mode = "internal": on ports 4 and 551      - phy-mode = "sgmii": on ports 0, 1, 2, 352      - phy-mode = "qsgmii": on ports 0, 1, 2, 353      - phy-mode = "usxgmii": on ports 0, 1, 2, 354      - phy-mode = "1000base-x": on ports 0, 1, 2, 355      - phy-mode = "2500base-x": on ports 0, 1, 2, 356 57properties:58  compatible:59    enum:60      - mscc,vsc9953-switch61      - pci1957,eef062 63  reg:64    maxItems: 165 66  interrupts:67    maxItems: 168 69    description:70      Used to signal availability of PTP TX timestamps, and state changes of71      the MAC merge layer of ports that support Frame Preemption.72 73  little-endian: true74  big-endian: true75 76required:77  - compatible78  - reg79 80allOf:81  - $ref: dsa.yaml#/$defs/ethernet-ports82  - if:83      properties:84        compatible:85          const: pci1957,eef086    then:87      required:88        - interrupts89 90unevaluatedProperties: false91 92examples:93  # Felix VSC9959 (NXP LS1028A)94  - |95    #include <dt-bindings/interrupt-controller/arm-gic.h>96 97    pcie { /* Integrated Endpoint Root Complex */98        #address-cells = <3>;99        #size-cells = <2>;100 101        ethernet-switch@0,5 {102            compatible = "pci1957,eef0";103            reg = <0x000500 0 0 0 0>;104            interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;105 106            ethernet-ports {107                #address-cells = <1>;108                #size-cells = <0>;109 110                port@0 {111                    reg = <0>;112                    phy-mode = "qsgmii";113                    phy-handle = <&phy0>;114                    managed = "in-band-status";115                };116 117                port@1 {118                    reg = <1>;119                    phy-mode = "qsgmii";120                    phy-handle = <&phy1>;121                    managed = "in-band-status";122                };123 124                port@2 {125                    reg = <2>;126                    phy-mode = "qsgmii";127                    phy-handle = <&phy2>;128                    managed = "in-band-status";129                };130 131                port@3 {132                    reg = <3>;133                    phy-mode = "qsgmii";134                    phy-handle = <&phy3>;135                    managed = "in-band-status";136                };137 138                port@4 {139                    reg = <4>;140                    ethernet = <&enetc_port2>;141                    phy-mode = "internal";142 143                    fixed-link {144                        speed = <2500>;145                        full-duplex;146                        pause;147                    };148                };149 150                port@5 {151                    reg = <5>;152                    ethernet = <&enetc_port3>;153                    phy-mode = "internal";154 155                    fixed-link {156                        speed = <1000>;157                        full-duplex;158                        pause;159                    };160                };161            };162        };163    };164  # Seville VSC9953 (NXP T1040)165  - |166    soc {167        #address-cells = <1>;168        #size-cells = <1>;169 170        ethernet-switch@800000 {171            compatible = "mscc,vsc9953-switch";172            reg = <0x800000 0x290000>;173            little-endian;174 175            ethernet-ports {176                #address-cells = <1>;177                #size-cells = <0>;178 179                port@0 {180                    reg = <0>;181                    phy-mode = "qsgmii";182                    phy-handle = <&phy0>;183                    managed = "in-band-status";184                };185 186                port@1 {187                    reg = <1>;188                    phy-mode = "qsgmii";189                    phy-handle = <&phy1>;190                    managed = "in-band-status";191                };192 193                port@2 {194                    reg = <2>;195                    phy-mode = "qsgmii";196                    phy-handle = <&phy2>;197                    managed = "in-band-status";198                };199 200                port@3 {201                    reg = <3>;202                    phy-mode = "qsgmii";203                    phy-handle = <&phy3>;204                    managed = "in-band-status";205                };206 207                port@4 {208                    reg = <4>;209                    phy-mode = "qsgmii";210                    phy-handle = <&phy4>;211                    managed = "in-band-status";212                };213 214                port@5 {215                    reg = <5>;216                    phy-mode = "qsgmii";217                    phy-handle = <&phy5>;218                    managed = "in-band-status";219                };220 221                port@6 {222                    reg = <6>;223                    phy-mode = "qsgmii";224                    phy-handle = <&phy6>;225                    managed = "in-band-status";226                };227 228                port@7 {229                    reg = <7>;230                    phy-mode = "qsgmii";231                    phy-handle = <&phy7>;232                    managed = "in-band-status";233                };234 235                port@8 {236                    reg = <8>;237                    phy-mode = "internal";238                    ethernet = <&enet0>;239 240                    fixed-link {241                        speed = <2500>;242                        full-duplex;243                        pause;244                    };245                };246 247                port@9 {248                    reg = <9>;249                    phy-mode = "internal";250                    ethernet = <&enet1>;251 252                    fixed-link {253                        speed = <2500>;254                        full-duplex;255                        pause;256                    };257                };258            };259        };260    };261