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