# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/net/brcm,systemport.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Broadcom BCM7xxx Ethernet Systemport Controller (SYSTEMPORT)

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

properties:
  compatible:
    enum:
      - brcm,systemport-v1.00
      - brcm,systemportlite-v1.00
      - brcm,systemport

  reg:
    maxItems: 1

  interrupts:
    minItems: 2
    items:
      - description: interrupt line for RX queues
      - description: interrupt line for TX queues
      - description: interrupt line for Wake-on-LAN

  clocks:
    items:
      - description: main clock
      - description: Wake-on-LAN clock

  clock-names:
    items:
      - const: sw_sysport
      - const: sw_sysportwol

  systemport,num-tier2-arb:
    $ref: /schemas/types.yaml#/definitions/uint32
    description:
      Number of tier 2 arbiters

  systemport,num-tier1-arb:
    $ref: /schemas/types.yaml#/definitions/uint32
    description:
      Number of tier 2 arbiters

  systemport,num-txq:
    $ref: /schemas/types.yaml#/definitions/uint32
    minimum: 1
    maximum: 32
    description:
      Number of HW transmit queues

  systemport,num-rxq:
    $ref: /schemas/types.yaml#/definitions/uint32
    minimum: 1
    maximum: 32
    description:
      Number of HW receive queues

required:
  - reg
  - interrupts
  - phy-mode

allOf:
  - $ref: ethernet-controller.yaml#

unevaluatedProperties: false

examples:
  - |
    ethernet@f04a0000 {
        compatible = "brcm,systemport-v1.00";
        reg = <0xf04a0000 0x4650>;
        local-mac-address = [ 00 11 22 33 44 55 ];
        phy-mode = "gmii";
        interrupts = <0x0 0x16 0x0>,
                     <0x0 0x17 0x0>;
        fixed-link {
            speed = <1000>;
            full-duplex;
        };
    };
