# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
# Copyright (C) 2022 StarFive Technology Co., Ltd.
%YAML 1.2
---
$id: http://devicetree.org/schemas/net/starfive,jh7110-dwmac.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: StarFive JH7110 DWMAC glue layer

maintainers:
  - Emil Renner Berthing <kernel@esmil.dk>
  - Samin Guo <samin.guo@starfivetech.com>

select:
  properties:
    compatible:
      contains:
        enum:
          - starfive,jh7100-dwmac
          - starfive,jh7110-dwmac
  required:
    - compatible

properties:
  compatible:
    oneOf:
      - items:
          - const: starfive,jh7100-dwmac
          - const: snps,dwmac
      - items:
          - const: starfive,jh7110-dwmac
          - const: snps,dwmac-5.20

  reg:
    maxItems: 1

  clocks:
    items:
      - description: GMAC main clock
      - description: GMAC AHB clock
      - description: PTP clock
      - description: TX clock
      - description: GTX clock

  clock-names:
    items:
      - const: stmmaceth
      - const: pclk
      - const: ptp_ref
      - const: tx
      - const: gtx

  starfive,tx-use-rgmii-clk:
    description:
      Tx clock is provided by external rgmii clock.
    type: boolean

  starfive,syscon:
    $ref: /schemas/types.yaml#/definitions/phandle-array
    items:
      - items:
          - description: phandle to syscon that configures phy mode
          - description: Offset of phy mode selection
          - description: Shift of phy mode selection
    description:
      A phandle to syscon with two arguments that configure phy mode.
      The argument one is the offset of phy mode selection, the
      argument two is the shift of phy mode selection.

required:
  - compatible
  - reg
  - clocks
  - clock-names
  - interrupts
  - interrupt-names
  - resets
  - reset-names

allOf:
  - $ref: snps,dwmac.yaml#

  - if:
      properties:
        compatible:
          contains:
            const: starfive,jh7100-dwmac
    then:
      properties:
        interrupts:
          minItems: 2
          maxItems: 2

        interrupt-names:
          minItems: 2
          maxItems: 2

        resets:
          maxItems: 1

        reset-names:
          const: ahb

  - if:
      properties:
        compatible:
          contains:
            const: starfive,jh7110-dwmac
    then:
      properties:
        interrupts:
          minItems: 3
          maxItems: 3

        interrupt-names:
          minItems: 3
          maxItems: 3

        resets:
          minItems: 2

        reset-names:
          minItems: 2

unevaluatedProperties: false

examples:
  - |
    ethernet@16030000 {
        compatible = "starfive,jh7110-dwmac", "snps,dwmac-5.20";
        reg = <0x16030000 0x10000>;
        clocks = <&clk 3>, <&clk 2>, <&clk 109>,
                 <&clk 6>, <&clk 111>;
        clock-names = "stmmaceth", "pclk", "ptp_ref",
                      "tx", "gtx";
        resets = <&rst 1>, <&rst 2>;
        reset-names = "stmmaceth", "ahb";
        interrupts = <7>, <6>, <5>;
        interrupt-names = "macirq", "eth_wake_irq", "eth_lpi";
        phy-mode = "rgmii-id";
        snps,multicast-filter-bins = <64>;
        snps,perfect-filter-entries = <8>;
        rx-fifo-depth = <2048>;
        tx-fifo-depth = <2048>;
        snps,fixed-burst;
        snps,no-pbl-x8;
        snps,tso;
        snps,force_thresh_dma_mode;
        snps,axi-config = <&stmmac_axi_setup>;
        snps,en-tx-lpi-clockgating;
        snps,txpbl = <16>;
        snps,rxpbl = <16>;
        starfive,syscon = <&aon_syscon 0xc 0x12>;
        phy-handle = <&phy0>;

        mdio {
            #address-cells = <1>;
            #size-cells = <0>;
            compatible = "snps,dwmac-mdio";

            phy0: ethernet-phy@0 {
                reg = <0>;
            };
        };

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