# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: "http://devicetree.org/schemas/net/toshiba,visconti-dwmac.yaml#"
$schema: "http://devicetree.org/meta-schemas/core.yaml#"

title: Toshiba Visconti DWMAC Ethernet controller

maintainers:
  - Nobuhiro Iwamatsu <nobuhiro1.iwamatsu@toshiba.co.jp>

select:
  properties:
    compatible:
      contains:
        enum:
          - toshiba,visconti-dwmac
  required:
    - compatible

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

properties:
  compatible:
    oneOf:
      - items:
          - enum:
              - toshiba,visconti-dwmac
          - const: snps,dwmac-4.20a

  reg:
    maxItems: 1

  clocks:
    items:
      - description: main clock
      - description: PHY reference clock

  clock-names:
    items:
      - const: stmmaceth
      - const: phy_ref_clk

required:
  - compatible
  - reg
  - clocks
  - clock-names

unevaluatedProperties: false

examples:
  - |
    #include <dt-bindings/interrupt-controller/arm-gic.h>

    soc {
        #address-cells = <2>;
        #size-cells = <2>;

        piether: ethernet@28000000 {
            compatible = "toshiba,visconti-dwmac", "snps,dwmac-4.20a";
            reg = <0 0x28000000 0 0x10000>;
            interrupts = <GIC_SPI 156 IRQ_TYPE_LEVEL_HIGH>;
            interrupt-names = "macirq";
            clocks = <&clk300mhz>, <&clk125mhz>;
            clock-names = "stmmaceth", "phy_ref_clk";
            snps,txpbl = <4>;
            snps,rxpbl = <4>;
            snps,tso;
            phy-mode = "rgmii-id";
            phy-handle = <&phy0>;

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

                phy0: ethernet-phy@1 {
                    device_type = "ethernet-phy";
                    reg = <0x1>;
                };
            };
        };
    };
