# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) %YAML 1.2 --- $id: http://devicetree.org/schemas/net/dsa/brcm,b53.yaml# $schema: http://devicetree.org/meta-schemas/core.yaml# title: Broadcom BCM53xx Ethernet switches maintainers: - Florian Fainelli description: Broadcom BCM53xx Ethernet switches properties: compatible: oneOf: - const: brcm,bcm5325 - const: brcm,bcm53115 - const: brcm,bcm53125 - const: brcm,bcm53128 - const: brcm,bcm53134 - const: brcm,bcm5365 - const: brcm,bcm5395 - const: brcm,bcm5389 - const: brcm,bcm5397 - const: brcm,bcm5398 - items: - const: brcm,bcm11360-srab - const: brcm,cygnus-srab - items: - enum: - brcm,bcm53010-srab - brcm,bcm53011-srab - brcm,bcm53012-srab - brcm,bcm53018-srab - brcm,bcm53019-srab - const: brcm,bcm5301x-srab - items: - enum: - brcm,bcm11404-srab - brcm,bcm11407-srab - brcm,bcm11409-srab - brcm,bcm58310-srab - brcm,bcm58311-srab - brcm,bcm58313-srab - const: brcm,omega-srab - items: - enum: - brcm,bcm58522-srab - brcm,bcm58523-srab - brcm,bcm58525-srab - brcm,bcm58622-srab - brcm,bcm58623-srab - brcm,bcm58625-srab - brcm,bcm88312-srab - const: brcm,nsp-srab - items: - enum: - brcm,bcm3384-switch - brcm,bcm6318-switch - brcm,bcm6328-switch - brcm,bcm6362-switch - brcm,bcm6368-switch - brcm,bcm63268-switch - const: brcm,bcm63xx-switch required: - compatible - reg allOf: - $ref: dsa.yaml#/$defs/ethernet-ports - if: properties: compatible: contains: enum: - brcm,bcm5325 - brcm,bcm53115 - brcm,bcm53125 - brcm,bcm53128 - brcm,bcm5365 - brcm,bcm5395 - brcm,bcm5397 - brcm,bcm5398 then: $ref: /schemas/spi/spi-peripheral-props.yaml # BCM585xx/586xx/88312 SoCs - if: properties: compatible: contains: enum: - brcm,bcm58522-srab - brcm,bcm58523-srab - brcm,bcm58525-srab - brcm,bcm58622-srab - brcm,bcm58623-srab - brcm,bcm58625-srab - brcm,bcm88312-srab then: properties: reg: minItems: 3 maxItems: 3 reg-names: items: - const: srab - const: mux_config - const: sgmii_config interrupts: minItems: 13 maxItems: 13 interrupt-names: items: - const: link_state_p0 - const: link_state_p1 - const: link_state_p2 - const: link_state_p3 - const: link_state_p4 - const: link_state_p5 - const: link_state_p7 - const: link_state_p8 - const: phy - const: ts - const: imp_sleep_timer_p5 - const: imp_sleep_timer_p7 - const: imp_sleep_timer_p8 required: - interrupts else: properties: reg: maxItems: 1 unevaluatedProperties: false examples: - | mdio { #address-cells = <1>; #size-cells = <0>; ethernet-switch@1e { compatible = "brcm,bcm53125"; reg = <30>; ethernet-ports { #address-cells = <1>; #size-cells = <0>; port@0 { reg = <0>; label = "lan1"; }; port@1 { reg = <1>; label = "lan2"; }; port@5 { reg = <5>; label = "cable-modem"; phy-mode = "rgmii-txid"; fixed-link { speed = <1000>; full-duplex; }; }; port@8 { reg = <8>; phy-mode = "rgmii-txid"; ethernet = <ð0>; fixed-link { speed = <1000>; full-duplex; }; }; }; }; }; - | #include #include axi { #address-cells = <1>; #size-cells = <1>; switch@36000 { compatible = "brcm,bcm58623-srab", "brcm,nsp-srab"; reg = <0x36000 0x1000>, <0x3f308 0x8>, <0x3f410 0xc>; reg-names = "srab", "mux_config", "sgmii_config"; interrupts = , , , , , , , , , , , , ; interrupt-names = "link_state_p0", "link_state_p1", "link_state_p2", "link_state_p3", "link_state_p4", "link_state_p5", "link_state_p7", "link_state_p8", "phy", "ts", "imp_sleep_timer_p5", "imp_sleep_timer_p7", "imp_sleep_timer_p8"; ethernet-ports { #address-cells = <1>; #size-cells = <0>; port@0 { label = "port0"; reg = <0>; }; port@1 { label = "port1"; reg = <1>; }; port@2 { label = "port2"; reg = <2>; }; port@3 { label = "port3"; reg = <3>; }; port@4 { label = "port4"; reg = <4>; }; port@8 { ethernet = <&amac2>; reg = <8>; phy-mode = "internal"; fixed-link { speed = <1000>; full-duplex; }; }; }; }; };