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