# SPDX-License-Identifier: GPL-2.0
%YAML 1.2
---
$id: http://devicetree.org/schemas/net/snps,dwmac.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Synopsys DesignWare MAC Device Tree Bindings

maintainers:
  - Alexandre Torgue <alexandre.torgue@foss.st.com>
  - Giuseppe Cavallaro <peppe.cavallaro@st.com>
  - Jose Abreu <joabreu@synopsys.com>

# Select every compatible, including the deprecated ones. This way, we
# will be able to report a warning when we have that compatible, since
# we will validate the node thanks to the select, but won't report it
# as a valid value in the compatible property description
select:
  properties:
    compatible:
      contains:
        enum:
          - snps,dwmac
          - snps,dwmac-3.40a
          - snps,dwmac-3.50a
          - snps,dwmac-3.610
          - snps,dwmac-3.70a
          - snps,dwmac-3.710
          - snps,dwmac-4.00
          - snps,dwmac-4.10a
          - snps,dwmac-4.20a
          - snps,dwmac-5.10a
          - snps,dwxgmac
          - snps,dwxgmac-2.10

          # Deprecated
          - st,spear600-gmac

  required:
    - compatible

properties:

  # We need to include all the compatibles from schemas that will
  # include that schemas, otherwise compatible won't validate for
  # those.
  compatible:
    contains:
      enum:
        - allwinner,sun7i-a20-gmac
        - allwinner,sun8i-a83t-emac
        - allwinner,sun8i-h3-emac
        - allwinner,sun8i-r40-gmac
        - allwinner,sun8i-v3s-emac
        - allwinner,sun50i-a64-emac
        - amlogic,meson6-dwmac
        - amlogic,meson8b-dwmac
        - amlogic,meson8m2-dwmac
        - amlogic,meson-gxbb-dwmac
        - amlogic,meson-axg-dwmac
        - ingenic,jz4775-mac
        - ingenic,x1000-mac
        - ingenic,x1600-mac
        - ingenic,x1830-mac
        - ingenic,x2000-mac
        - loongson,ls2k-dwmac
        - loongson,ls7a-dwmac
        - renesas,r9a06g032-gmac
        - renesas,rzn1-gmac
        - rockchip,px30-gmac
        - rockchip,rk3128-gmac
        - rockchip,rk3228-gmac
        - rockchip,rk3288-gmac
        - rockchip,rk3328-gmac
        - rockchip,rk3366-gmac
        - rockchip,rk3368-gmac
        - rockchip,rk3399-gmac
        - rockchip,rv1108-gmac
        - snps,dwmac
        - snps,dwmac-3.40a
        - snps,dwmac-3.50a
        - snps,dwmac-3.610
        - snps,dwmac-3.70a
        - snps,dwmac-3.710
        - snps,dwmac-4.00
        - snps,dwmac-4.10a
        - snps,dwmac-4.20a
        - snps,dwmac-5.10a
        - snps,dwxgmac
        - snps,dwxgmac-2.10

  reg:
    minItems: 1
    maxItems: 2

  interrupts:
    minItems: 1
    items:
      - description: Combined signal for various interrupt events
      - description: The interrupt to manage the remote wake-up packet detection
      - description: The interrupt that occurs when Rx exits the LPI state

  interrupt-names:
    minItems: 1
    items:
      - const: macirq
      - const: eth_wake_irq
      - const: eth_lpi

  clocks:
    minItems: 1
    maxItems: 8
    additionalItems: true
    items:
      - description: GMAC main clock
      - description: Peripheral registers interface clock
      - description:
          PTP reference clock. This clock is used for programming the
          Timestamp Addend Register. If not passed then the system
          clock will be used and this is fine on some platforms.

  clock-names:
    minItems: 1
    maxItems: 8
    additionalItems: true
    contains:
      enum:
        - stmmaceth
        - pclk
        - ptp_ref

  resets:
    maxItems: 1
    description:
      MAC Reset signal.

  reset-names:
    const: stmmaceth

  power-domains:
    maxItems: 1

  mac-mode:
    $ref: ethernet-controller.yaml#/properties/phy-connection-type
    description:
      The property is identical to 'phy-mode', and assumes that there is mode
      converter in-between the MAC & PHY (e.g. GMII-to-RGMII). This converter
      can be passive (no SW requirement), and requires that the MAC operate
      in a different mode than the PHY in order to function.

  snps,axi-config:
    $ref: /schemas/types.yaml#/definitions/phandle
    description:
      AXI BUS Mode parameters. Phandle to a node that can contain the
      following properties
        * snps,lpi_en, enable Low Power Interface
        * snps,xit_frm, unlock on WoL
        * snps,wr_osr_lmt, max write outstanding req. limit
        * snps,rd_osr_lmt, max read outstanding req. limit
        * snps,kbbe, do not cross 1KiB boundary.
        * snps,blen, this is a vector of supported burst length.
        * snps,fb, fixed-burst
        * snps,mb, mixed-burst
        * snps,rb, rebuild INCRx Burst

  snps,mtl-rx-config:
    $ref: /schemas/types.yaml#/definitions/phandle
    description:
      Multiple RX Queues parameters. Phandle to a node that can
      contain the following properties
        * snps,rx-queues-to-use, number of RX queues to be used in the
          driver
        * Choose one of these RX scheduling algorithms
          * snps,rx-sched-sp, Strict priority
          * snps,rx-sched-wsp, Weighted Strict priority
        * For each RX queue
          * Choose one of these modes
            * snps,dcb-algorithm, Queue to be enabled as DCB
            * snps,avb-algorithm, Queue to be enabled as AVB
          * snps,map-to-dma-channel, Channel to map
          * Specifiy specific packet routing
            * snps,route-avcp, AV Untagged Control packets
            * snps,route-ptp, PTP Packets
            * snps,route-dcbcp, DCB Control Packets
            * snps,route-up, Untagged Packets
            * snps,route-multi-broad, Multicast & Broadcast Packets
          * snps,priority, bitmask of the tagged frames priorities assigned to
            the queue

  snps,mtl-tx-config:
    $ref: /schemas/types.yaml#/definitions/phandle
    description:
      Multiple TX Queues parameters. Phandle to a node that can
      contain the following properties
        * snps,tx-queues-to-use, number of TX queues to be used in the
          driver
        * Choose one of these TX scheduling algorithms
          * snps,tx-sched-wrr, Weighted Round Robin
          * snps,tx-sched-wfq, Weighted Fair Queuing
          * snps,tx-sched-dwrr, Deficit Weighted Round Robin
          * snps,tx-sched-sp, Strict priority
        * For each TX queue
          * snps,weight, TX queue weight (if using a DCB weight
            algorithm)
          * Choose one of these modes
            * snps,dcb-algorithm, TX queue will be working in DCB
            * snps,avb-algorithm, TX queue will be working in AVB
              [Attention] Queue 0 is reserved for legacy traffic
                          and so no AVB is available in this queue.
          * Configure Credit Base Shaper (if AVB Mode selected)
            * snps,send_slope, enable Low Power Interface
            * snps,idle_slope, unlock on WoL
            * snps,high_credit, max write outstanding req. limit
            * snps,low_credit, max read outstanding req. limit
          * snps,priority, bitmask of the priorities assigned to the queue.
            When a PFC frame is received with priorities matching the bitmask,
            the queue is blocked from transmitting for the pause time specified
            in the PFC frame.

  snps,reset-gpio:
    deprecated: true
    maxItems: 1
    description:
      PHY Reset GPIO

  snps,reset-active-low:
    deprecated: true
    $ref: /schemas/types.yaml#/definitions/flag
    description:
      Indicates that the PHY Reset is active low

  snps,reset-delays-us:
    deprecated: true
    description:
      Triplet of delays. The 1st cell is reset pre-delay in micro
      seconds. The 2nd cell is reset pulse in micro seconds. The 3rd
      cell is reset post-delay in micro seconds.
    minItems: 3
    maxItems: 3

  snps,aal:
    $ref: /schemas/types.yaml#/definitions/flag
    description:
      Use Address-Aligned Beats

  snps,fixed-burst:
    $ref: /schemas/types.yaml#/definitions/flag
    description:
      Program the DMA to use the fixed burst mode

  snps,mixed-burst:
    $ref: /schemas/types.yaml#/definitions/flag
    description:
      Program the DMA to use the mixed burst mode

  snps,force_thresh_dma_mode:
    $ref: /schemas/types.yaml#/definitions/flag
    description:
      Force DMA to use the threshold mode for both tx and rx

  snps,force_sf_dma_mode:
    $ref: /schemas/types.yaml#/definitions/flag
    description:
      Force DMA to use the Store and Forward mode for both tx and
      rx. This flag is ignored if force_thresh_dma_mode is set.

  snps,en-tx-lpi-clockgating:
    $ref: /schemas/types.yaml#/definitions/flag
    description:
      Enable gating of the MAC TX clock during TX low-power mode

  snps,multicast-filter-bins:
    $ref: /schemas/types.yaml#/definitions/uint32
    description:
      Number of multicast filter hash bins supported by this device
      instance

  snps,perfect-filter-entries:
    $ref: /schemas/types.yaml#/definitions/uint32
    description:
      Number of perfect filter entries supported by this device
      instance

  snps,ps-speed:
    $ref: /schemas/types.yaml#/definitions/uint32
    description:
      Port selection speed that can be passed to the core when PCS
      is supported. For example, this is used in case of SGMII and
      MAC2MAC connection.

  mdio:
    $ref: mdio.yaml#
    unevaluatedProperties: false
    description:
      Creates and registers an MDIO bus.

    properties:
      compatible:
        const: snps,dwmac-mdio

    required:
      - compatible

required:
  - compatible
  - reg
  - interrupts
  - interrupt-names
  - phy-mode

dependencies:
  snps,reset-active-low: ["snps,reset-gpio"]
  snps,reset-delay-us: ["snps,reset-gpio"]

allOf:
  - $ref: "ethernet-controller.yaml#"
  - if:
      properties:
        compatible:
          contains:
            enum:
              - allwinner,sun7i-a20-gmac
              - allwinner,sun8i-a83t-emac
              - allwinner,sun8i-h3-emac
              - allwinner,sun8i-r40-gmac
              - allwinner,sun8i-v3s-emac
              - allwinner,sun50i-a64-emac
              - ingenic,jz4775-mac
              - ingenic,x1000-mac
              - ingenic,x1600-mac
              - ingenic,x1830-mac
              - ingenic,x2000-mac
              - snps,dwmac-3.50a
              - snps,dwmac-4.10a
              - snps,dwmac-4.20a
              - snps,dwxgmac
              - snps,dwxgmac-2.10
              - st,spear600-gmac

    then:
      properties:
        snps,pbl:
          description:
            Programmable Burst Length (tx and rx)
          $ref: /schemas/types.yaml#/definitions/uint32
          enum: [1, 2, 4, 8, 16, 32]

        snps,txpbl:
          description:
            Tx Programmable Burst Length. If set, DMA tx will use this
            value rather than snps,pbl.
          $ref: /schemas/types.yaml#/definitions/uint32
          enum: [1, 2, 4, 8, 16, 32]

        snps,rxpbl:
          description:
            Rx Programmable Burst Length. If set, DMA rx will use this
            value rather than snps,pbl.
          $ref: /schemas/types.yaml#/definitions/uint32
          enum: [1, 2, 4, 8, 16, 32]

        snps,no-pbl-x8:
          $ref: /schemas/types.yaml#/definitions/flag
          description:
            Don\'t multiply the pbl/txpbl/rxpbl values by 8. For core
            rev < 3.50, don\'t multiply the values by 4.

  - if:
      properties:
        compatible:
          contains:
            enum:
              - allwinner,sun7i-a20-gmac
              - allwinner,sun8i-a83t-emac
              - allwinner,sun8i-h3-emac
              - allwinner,sun8i-r40-gmac
              - allwinner,sun8i-v3s-emac
              - allwinner,sun50i-a64-emac
              - loongson,ls2k-dwmac
              - loongson,ls7a-dwmac
              - ingenic,jz4775-mac
              - ingenic,x1000-mac
              - ingenic,x1600-mac
              - ingenic,x1830-mac
              - ingenic,x2000-mac
              - snps,dwmac-4.00
              - snps,dwmac-4.10a
              - snps,dwmac-4.20a
              - snps,dwmac-5.10a
              - snps,dwxgmac
              - snps,dwxgmac-2.10
              - st,spear600-gmac

    then:
      properties:
        snps,tso:
          $ref: /schemas/types.yaml#/definitions/flag
          description:
            Enables the TSO feature otherwise it will be managed by
            MAC HW capability register.

additionalProperties: true

examples:
  - |
    stmmac_axi_setup: stmmac-axi-config {
        snps,wr_osr_lmt = <0xf>;
        snps,rd_osr_lmt = <0xf>;
        snps,blen = <256 128 64 32 0 0 0>;
    };

    mtl_rx_setup: rx-queues-config {
        snps,rx-queues-to-use = <1>;
        snps,rx-sched-sp;
        queue0 {
            snps,dcb-algorithm;
            snps,map-to-dma-channel = <0x0>;
            snps,priority = <0x0>;
        };
    };

    mtl_tx_setup: tx-queues-config {
        snps,tx-queues-to-use = <2>;
        snps,tx-sched-wrr;
        queue0 {
            snps,weight = <0x10>;
            snps,dcb-algorithm;
            snps,priority = <0x0>;
        };

        queue1 {
            snps,avb-algorithm;
            snps,send_slope = <0x1000>;
            snps,idle_slope = <0x1000>;
            snps,high_credit = <0x3E800>;
            snps,low_credit = <0xFFC18000>;
            snps,priority = <0x1>;
        };
    };

    gmac0: ethernet@e0800000 {
        compatible = "snps,dwxgmac-2.10", "snps,dwxgmac";
        reg = <0xe0800000 0x8000>;
        interrupt-parent = <&vic1>;
        interrupts = <24 23 22>;
        interrupt-names = "macirq", "eth_wake_irq", "eth_lpi";
        mac-address = [000000000000]; /* Filled in by U-Boot */
        max-frame-size = <3800>;
        phy-mode = "gmii";
        snps,multicast-filter-bins = <256>;
        snps,perfect-filter-entries = <128>;
        rx-fifo-depth = <16384>;
        tx-fifo-depth = <16384>;
        clocks = <&clock>;
        clock-names = "stmmaceth";
        snps,axi-config = <&stmmac_axi_setup>;
        snps,mtl-rx-config = <&mtl_rx_setup>;
        snps,mtl-tx-config = <&mtl_tx_setup>;
        mdio0 {
            #address-cells = <1>;
            #size-cells = <0>;
            compatible = "snps,dwmac-mdio";
            phy1: ethernet-phy@0 {
                reg = <0>;
            };
        };
    };

# FIXME: We should set it, but it would report all the generic
# properties as additional properties.
# additionalProperties: false

...
