# 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 swich

maintainers:
  - Florian Fainelli <f.fainelli@gmail.com>

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

  "#address-cells":
    const: 1

  "#size-cells":
    const: 0

  ports:
    type: object

    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
  - "#address-cells"
  - "#size-cells"

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";
            #address-cells = <1>;
            #size-cells = <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>;
                    };
            };
    };
