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