1ab7eff24SKurt Kanzenbach# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2ab7eff24SKurt Kanzenbach%YAML 1.2 3ab7eff24SKurt Kanzenbach--- 4ab7eff24SKurt Kanzenbach$id: http://devicetree.org/schemas/net/dsa/brcm,b53.yaml# 5ab7eff24SKurt Kanzenbach$schema: http://devicetree.org/meta-schemas/core.yaml# 6ab7eff24SKurt Kanzenbach 7ab7eff24SKurt Kanzenbachtitle: Broadcom BCM53xx Ethernet switches 8ab7eff24SKurt Kanzenbach 9ab7eff24SKurt Kanzenbachmaintainers: 10ab7eff24SKurt Kanzenbach - Florian Fainelli <f.fainelli@gmail.com> 11ab7eff24SKurt Kanzenbach 12ab7eff24SKurt Kanzenbachdescription: 13ab7eff24SKurt Kanzenbach Broadcom BCM53xx Ethernet switches 14ab7eff24SKurt Kanzenbach 15ab7eff24SKurt Kanzenbachproperties: 16ab7eff24SKurt Kanzenbach compatible: 17ab7eff24SKurt Kanzenbach oneOf: 18ab7eff24SKurt Kanzenbach - const: brcm,bcm5325 19*dfc4b67dSClaus Stovgaard - const: brcm,bcm53101 20ab7eff24SKurt Kanzenbach - const: brcm,bcm53115 21ab7eff24SKurt Kanzenbach - const: brcm,bcm53125 22ab7eff24SKurt Kanzenbach - const: brcm,bcm53128 23a20869b3SÁlvaro Fernández Rojas - const: brcm,bcm53134 24ab7eff24SKurt Kanzenbach - const: brcm,bcm5365 25ab7eff24SKurt Kanzenbach - const: brcm,bcm5395 26ab7eff24SKurt Kanzenbach - const: brcm,bcm5389 27ab7eff24SKurt Kanzenbach - const: brcm,bcm5397 28ab7eff24SKurt Kanzenbach - const: brcm,bcm5398 29ab7eff24SKurt Kanzenbach - items: 30ab7eff24SKurt Kanzenbach - const: brcm,bcm11360-srab 31ab7eff24SKurt Kanzenbach - const: brcm,cygnus-srab 32ab7eff24SKurt Kanzenbach - items: 33ab7eff24SKurt Kanzenbach - enum: 34ab7eff24SKurt Kanzenbach - brcm,bcm53010-srab 35ab7eff24SKurt Kanzenbach - brcm,bcm53011-srab 36ab7eff24SKurt Kanzenbach - brcm,bcm53012-srab 37ab7eff24SKurt Kanzenbach - brcm,bcm53018-srab 38ab7eff24SKurt Kanzenbach - brcm,bcm53019-srab 39ab7eff24SKurt Kanzenbach - const: brcm,bcm5301x-srab 40ab7eff24SKurt Kanzenbach - items: 41ab7eff24SKurt Kanzenbach - enum: 42ab7eff24SKurt Kanzenbach - brcm,bcm11404-srab 43ab7eff24SKurt Kanzenbach - brcm,bcm11407-srab 44ab7eff24SKurt Kanzenbach - brcm,bcm11409-srab 45ab7eff24SKurt Kanzenbach - brcm,bcm58310-srab 46ab7eff24SKurt Kanzenbach - brcm,bcm58311-srab 47ab7eff24SKurt Kanzenbach - brcm,bcm58313-srab 48ab7eff24SKurt Kanzenbach - const: brcm,omega-srab 49ab7eff24SKurt Kanzenbach - items: 50ab7eff24SKurt Kanzenbach - enum: 51ab7eff24SKurt Kanzenbach - brcm,bcm58522-srab 52ab7eff24SKurt Kanzenbach - brcm,bcm58523-srab 53ab7eff24SKurt Kanzenbach - brcm,bcm58525-srab 54ab7eff24SKurt Kanzenbach - brcm,bcm58622-srab 55ab7eff24SKurt Kanzenbach - brcm,bcm58623-srab 56ab7eff24SKurt Kanzenbach - brcm,bcm58625-srab 57ab7eff24SKurt Kanzenbach - brcm,bcm88312-srab 58ab7eff24SKurt Kanzenbach - const: brcm,nsp-srab 59ab7eff24SKurt Kanzenbach - items: 60ab7eff24SKurt Kanzenbach - enum: 61ab7eff24SKurt Kanzenbach - brcm,bcm3384-switch 623ec5ac31SÁlvaro Fernández Rojas - brcm,bcm6318-switch 63ab7eff24SKurt Kanzenbach - brcm,bcm6328-switch 643ec5ac31SÁlvaro Fernández Rojas - brcm,bcm6362-switch 65ab7eff24SKurt Kanzenbach - brcm,bcm6368-switch 663ec5ac31SÁlvaro Fernández Rojas - brcm,bcm63268-switch 67ab7eff24SKurt Kanzenbach - const: brcm,bcm63xx-switch 68ab7eff24SKurt Kanzenbach 69ab7eff24SKurt Kanzenbachrequired: 70ab7eff24SKurt Kanzenbach - compatible 71ab7eff24SKurt Kanzenbach - reg 72ab7eff24SKurt Kanzenbach 73bbba69efSRob HerringallOf: 743cec368aSColin Foster - $ref: dsa.yaml#/$defs/ethernet-ports 75bbba69efSRob Herring - if: 76bbba69efSRob Herring properties: 77bbba69efSRob Herring compatible: 78bbba69efSRob Herring contains: 79bbba69efSRob Herring enum: 80bbba69efSRob Herring - brcm,bcm5325 81*dfc4b67dSClaus Stovgaard - brcm,bcm53101 82bbba69efSRob Herring - brcm,bcm53115 83bbba69efSRob Herring - brcm,bcm53125 84bbba69efSRob Herring - brcm,bcm53128 85bbba69efSRob Herring - brcm,bcm5365 86bbba69efSRob Herring - brcm,bcm5395 87bbba69efSRob Herring - brcm,bcm5397 88bbba69efSRob Herring - brcm,bcm5398 89bbba69efSRob Herring then: 90bbba69efSRob Herring $ref: /schemas/spi/spi-peripheral-props.yaml 91bbba69efSRob Herring 92ab7eff24SKurt Kanzenbach # BCM585xx/586xx/88312 SoCs 93bbba69efSRob Herring - if: 94ab7eff24SKurt Kanzenbach properties: 95ab7eff24SKurt Kanzenbach compatible: 96ab7eff24SKurt Kanzenbach contains: 97ab7eff24SKurt Kanzenbach enum: 98ab7eff24SKurt Kanzenbach - brcm,bcm58522-srab 99ab7eff24SKurt Kanzenbach - brcm,bcm58523-srab 100ab7eff24SKurt Kanzenbach - brcm,bcm58525-srab 101ab7eff24SKurt Kanzenbach - brcm,bcm58622-srab 102ab7eff24SKurt Kanzenbach - brcm,bcm58623-srab 103ab7eff24SKurt Kanzenbach - brcm,bcm58625-srab 104ab7eff24SKurt Kanzenbach - brcm,bcm88312-srab 105ab7eff24SKurt Kanzenbach then: 106ab7eff24SKurt Kanzenbach properties: 107ab7eff24SKurt Kanzenbach reg: 108ab7eff24SKurt Kanzenbach minItems: 3 109ab7eff24SKurt Kanzenbach maxItems: 3 110ab7eff24SKurt Kanzenbach reg-names: 111ab7eff24SKurt Kanzenbach items: 112ab7eff24SKurt Kanzenbach - const: srab 113ab7eff24SKurt Kanzenbach - const: mux_config 114ab7eff24SKurt Kanzenbach - const: sgmii_config 115ab7eff24SKurt Kanzenbach interrupts: 116ab7eff24SKurt Kanzenbach minItems: 13 117ab7eff24SKurt Kanzenbach maxItems: 13 118ab7eff24SKurt Kanzenbach interrupt-names: 119ab7eff24SKurt Kanzenbach items: 120ab7eff24SKurt Kanzenbach - const: link_state_p0 121ab7eff24SKurt Kanzenbach - const: link_state_p1 122ab7eff24SKurt Kanzenbach - const: link_state_p2 123ab7eff24SKurt Kanzenbach - const: link_state_p3 124ab7eff24SKurt Kanzenbach - const: link_state_p4 125ab7eff24SKurt Kanzenbach - const: link_state_p5 126ab7eff24SKurt Kanzenbach - const: link_state_p7 127ab7eff24SKurt Kanzenbach - const: link_state_p8 128ab7eff24SKurt Kanzenbach - const: phy 129ab7eff24SKurt Kanzenbach - const: ts 130ab7eff24SKurt Kanzenbach - const: imp_sleep_timer_p5 131ab7eff24SKurt Kanzenbach - const: imp_sleep_timer_p7 132ab7eff24SKurt Kanzenbach - const: imp_sleep_timer_p8 133ab7eff24SKurt Kanzenbach required: 134ab7eff24SKurt Kanzenbach - interrupts 135ab7eff24SKurt Kanzenbach else: 136ab7eff24SKurt Kanzenbach properties: 137ab7eff24SKurt Kanzenbach reg: 138ab7eff24SKurt Kanzenbach maxItems: 1 139ab7eff24SKurt Kanzenbach 140ab7eff24SKurt KanzenbachunevaluatedProperties: false 141ab7eff24SKurt Kanzenbach 142ab7eff24SKurt Kanzenbachexamples: 143ab7eff24SKurt Kanzenbach - | 144ab7eff24SKurt Kanzenbach mdio { 145ab7eff24SKurt Kanzenbach #address-cells = <1>; 146ab7eff24SKurt Kanzenbach #size-cells = <0>; 147ab7eff24SKurt Kanzenbach 148ab7eff24SKurt Kanzenbach ethernet-switch@1e { 149ab7eff24SKurt Kanzenbach compatible = "brcm,bcm53125"; 150ab7eff24SKurt Kanzenbach reg = <30>; 151ab7eff24SKurt Kanzenbach 152ab7eff24SKurt Kanzenbach ethernet-ports { 153ab7eff24SKurt Kanzenbach #address-cells = <1>; 154ab7eff24SKurt Kanzenbach #size-cells = <0>; 155ab7eff24SKurt Kanzenbach 156ab7eff24SKurt Kanzenbach port@0 { 157ab7eff24SKurt Kanzenbach reg = <0>; 158ab7eff24SKurt Kanzenbach label = "lan1"; 159ab7eff24SKurt Kanzenbach }; 160ab7eff24SKurt Kanzenbach 161ab7eff24SKurt Kanzenbach port@1 { 162ab7eff24SKurt Kanzenbach reg = <1>; 163ab7eff24SKurt Kanzenbach label = "lan2"; 164ab7eff24SKurt Kanzenbach }; 165ab7eff24SKurt Kanzenbach 166ab7eff24SKurt Kanzenbach port@5 { 167ab7eff24SKurt Kanzenbach reg = <5>; 168ab7eff24SKurt Kanzenbach label = "cable-modem"; 169ab7eff24SKurt Kanzenbach phy-mode = "rgmii-txid"; 170ab7eff24SKurt Kanzenbach fixed-link { 171ab7eff24SKurt Kanzenbach speed = <1000>; 172ab7eff24SKurt Kanzenbach full-duplex; 173ab7eff24SKurt Kanzenbach }; 174ab7eff24SKurt Kanzenbach }; 175ab7eff24SKurt Kanzenbach 176ab7eff24SKurt Kanzenbach port@8 { 177ab7eff24SKurt Kanzenbach reg = <8>; 178ab7eff24SKurt Kanzenbach phy-mode = "rgmii-txid"; 179ab7eff24SKurt Kanzenbach ethernet = <ð0>; 180ab7eff24SKurt Kanzenbach fixed-link { 181ab7eff24SKurt Kanzenbach speed = <1000>; 182ab7eff24SKurt Kanzenbach full-duplex; 183ab7eff24SKurt Kanzenbach }; 184ab7eff24SKurt Kanzenbach }; 185ab7eff24SKurt Kanzenbach }; 186ab7eff24SKurt Kanzenbach }; 187ab7eff24SKurt Kanzenbach }; 188ab7eff24SKurt Kanzenbach - | 189ab7eff24SKurt Kanzenbach #include <dt-bindings/interrupt-controller/arm-gic.h> 190ab7eff24SKurt Kanzenbach #include <dt-bindings/interrupt-controller/irq.h> 191ab7eff24SKurt Kanzenbach 192ab7eff24SKurt Kanzenbach axi { 193ab7eff24SKurt Kanzenbach #address-cells = <1>; 194ab7eff24SKurt Kanzenbach #size-cells = <1>; 195ab7eff24SKurt Kanzenbach 196ab7eff24SKurt Kanzenbach switch@36000 { 197ab7eff24SKurt Kanzenbach compatible = "brcm,bcm58623-srab", "brcm,nsp-srab"; 198ab7eff24SKurt Kanzenbach reg = <0x36000 0x1000>, 199ab7eff24SKurt Kanzenbach <0x3f308 0x8>, 200ab7eff24SKurt Kanzenbach <0x3f410 0xc>; 201ab7eff24SKurt Kanzenbach reg-names = "srab", "mux_config", "sgmii_config"; 202ab7eff24SKurt Kanzenbach interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>, 203ab7eff24SKurt Kanzenbach <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>, 204ab7eff24SKurt Kanzenbach <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>, 205ab7eff24SKurt Kanzenbach <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>, 206ab7eff24SKurt Kanzenbach <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>, 207ab7eff24SKurt Kanzenbach <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>, 208ab7eff24SKurt Kanzenbach <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>, 209ab7eff24SKurt Kanzenbach <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>, 210ab7eff24SKurt Kanzenbach <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>, 211ab7eff24SKurt Kanzenbach <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>, 212ab7eff24SKurt Kanzenbach <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>, 213ab7eff24SKurt Kanzenbach <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>, 214ab7eff24SKurt Kanzenbach <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>; 215ab7eff24SKurt Kanzenbach interrupt-names = "link_state_p0", 216ab7eff24SKurt Kanzenbach "link_state_p1", 217ab7eff24SKurt Kanzenbach "link_state_p2", 218ab7eff24SKurt Kanzenbach "link_state_p3", 219ab7eff24SKurt Kanzenbach "link_state_p4", 220ab7eff24SKurt Kanzenbach "link_state_p5", 221ab7eff24SKurt Kanzenbach "link_state_p7", 222ab7eff24SKurt Kanzenbach "link_state_p8", 223ab7eff24SKurt Kanzenbach "phy", 224ab7eff24SKurt Kanzenbach "ts", 225ab7eff24SKurt Kanzenbach "imp_sleep_timer_p5", 226ab7eff24SKurt Kanzenbach "imp_sleep_timer_p7", 227ab7eff24SKurt Kanzenbach "imp_sleep_timer_p8"; 228ab7eff24SKurt Kanzenbach 229ab7eff24SKurt Kanzenbach ethernet-ports { 230ab7eff24SKurt Kanzenbach #address-cells = <1>; 231ab7eff24SKurt Kanzenbach #size-cells = <0>; 232ab7eff24SKurt Kanzenbach 233ab7eff24SKurt Kanzenbach port@0 { 234ab7eff24SKurt Kanzenbach label = "port0"; 235ab7eff24SKurt Kanzenbach reg = <0>; 236ab7eff24SKurt Kanzenbach }; 237ab7eff24SKurt Kanzenbach 238ab7eff24SKurt Kanzenbach port@1 { 239ab7eff24SKurt Kanzenbach label = "port1"; 240ab7eff24SKurt Kanzenbach reg = <1>; 241ab7eff24SKurt Kanzenbach }; 242ab7eff24SKurt Kanzenbach 243ab7eff24SKurt Kanzenbach port@2 { 244ab7eff24SKurt Kanzenbach label = "port2"; 245ab7eff24SKurt Kanzenbach reg = <2>; 246ab7eff24SKurt Kanzenbach }; 247ab7eff24SKurt Kanzenbach 248ab7eff24SKurt Kanzenbach port@3 { 249ab7eff24SKurt Kanzenbach label = "port3"; 250ab7eff24SKurt Kanzenbach reg = <3>; 251ab7eff24SKurt Kanzenbach }; 252ab7eff24SKurt Kanzenbach 253ab7eff24SKurt Kanzenbach port@4 { 254ab7eff24SKurt Kanzenbach label = "port4"; 255ab7eff24SKurt Kanzenbach reg = <4>; 256ab7eff24SKurt Kanzenbach }; 257ab7eff24SKurt Kanzenbach 258ab7eff24SKurt Kanzenbach port@8 { 259ab7eff24SKurt Kanzenbach ethernet = <&amac2>; 260ab7eff24SKurt Kanzenbach reg = <8>; 261526512f6SVladimir Oltean phy-mode = "internal"; 262526512f6SVladimir Oltean 263ab7eff24SKurt Kanzenbach fixed-link { 264ab7eff24SKurt Kanzenbach speed = <1000>; 265ab7eff24SKurt Kanzenbach full-duplex; 266ab7eff24SKurt Kanzenbach }; 267ab7eff24SKurt Kanzenbach }; 268ab7eff24SKurt Kanzenbach }; 269ab7eff24SKurt Kanzenbach }; 270ab7eff24SKurt Kanzenbach }; 271