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