# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) %YAML 1.2 --- $id: http://devicetree.org/schemas/net/dsa/brcm,sf2.yaml# $schema: http://devicetree.org/meta-schemas/core.yaml# title: Broadcom Starfighter 2 integrated switch maintainers: - Florian Fainelli properties: compatible: items: - enum: - brcm,bcm4908-switch - brcm,bcm7278-switch-v4.0 - brcm,bcm7278-switch-v4.8 - brcm,bcm7445-switch-v4.0 reg: minItems: 6 maxItems: 6 reg-names: items: - const: core - const: reg - const: intrl2_0 - const: intrl2_1 - const: fcb - const: acb interrupts: minItems: 2 maxItems: 2 interrupt-names: items: - const: switch_0 - const: switch_1 resets: maxItems: 1 reset-names: const: switch clocks: minItems: 1 items: - description: switch's main clock - description: dividing of the switch core clock clock-names: minItems: 1 items: - const: sw_switch - const: sw_switch_mdiv brcm,num-gphy: $ref: /schemas/types.yaml#/definitions/uint32 description: maximum number of integrated gigabit PHYs in the switch brcm,num-rgmii-ports: $ref: /schemas/types.yaml#/definitions/uint32 description: maximum number of RGMII interfaces supported by the switch brcm,fcb-pause-override: description: if present indicates that the switch supports Failover Control Block pause override capability type: boolean brcm,acb-packets-inflight: description: if present indicates that the switch Admission Control Block supports reporting the number of packets in-flight in a switch queue type: boolean ports: type: object additionalProperties: true patternProperties: '^port@[0-9a-f]$': $ref: dsa-port.yaml# unevaluatedProperties: false properties: brcm,use-bcm-hdr: description: if present, indicates that the switch port has Broadcom tags enabled (per-packet metadata) type: boolean required: - reg - interrupts allOf: - $ref: dsa.yaml# - if: properties: compatible: contains: enum: - brcm,bcm7278-switch-v4.0 - brcm,bcm7278-switch-v4.8 then: properties: clocks: minItems: 1 maxItems: 1 clock-names: minItems: 1 maxItems: 1 required: - clocks - clock-names - if: properties: compatible: contains: const: brcm,bcm7445-switch-v4.0 then: properties: clocks: minItems: 2 maxItems: 2 clock-names: minItems: 2 maxItems: 2 required: - clocks - clock-names additionalProperties: false examples: - | switch@f0b00000 { compatible = "brcm,bcm7445-switch-v4.0"; reg = <0xf0b00000 0x40000>, <0xf0b40000 0x110>, <0xf0b40340 0x30>, <0xf0b40380 0x30>, <0xf0b40400 0x34>, <0xf0b40600 0x208>; reg-names = "core", "reg", "intrl2_0", "intrl2_1", "fcb", "acb"; interrupts = <0 0x18 0>, <0 0x19 0>; clocks = <&sw_switch>, <&sw_switch_mdiv>; clock-names = "sw_switch", "sw_switch_mdiv"; brcm,num-gphy = <1>; brcm,num-rgmii-ports = <2>; brcm,fcb-pause-override; brcm,acb-packets-inflight; ports { #address-cells = <1>; #size-cells = <0>; port@0 { label = "gphy"; reg = <0>; }; }; };