# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
# Copyright (C) Sunplus Co., Ltd. 2021
%YAML 1.2
---
$id: http://devicetree.org/schemas/net/sunplus,sp7021-emac.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Sunplus SP7021 Dual Ethernet MAC

maintainers:
  - Wells Lu <wellslutw@gmail.com>

description: |
  Sunplus SP7021 dual 10M/100M Ethernet MAC controller.
  Device node of the controller has following properties.

properties:
  compatible:
    const: sunplus,sp7021-emac

  reg:
    maxItems: 1

  interrupts:
    maxItems: 1

  clocks:
    maxItems: 1

  resets:
    maxItems: 1

  ethernet-ports:
    type: object
    additionalProperties: false
    description: Ethernet ports to PHY

    properties:
      "#address-cells":
        const: 1

      "#size-cells":
        const: 0

    patternProperties:
      "^port@[0-1]$":
        type: object
        additionalProperties: false
        description: Port to PHY

        properties:
          reg:
            minimum: 0
            maximum: 1

          phy-handle:
            maxItems: 1

          phy-mode:
            maxItems: 1

          nvmem-cells:
            items:
              - description: nvmem cell address of MAC address

          nvmem-cell-names:
            description: names corresponding to the nvmem cells
            items:
              - const: mac-address

        required:
          - reg
          - phy-handle
          - phy-mode
          - nvmem-cells
          - nvmem-cell-names

  mdio:
    $ref: mdio.yaml#
    unevaluatedProperties: false

additionalProperties: false

required:
  - compatible
  - reg
  - interrupts
  - clocks
  - resets
  - pinctrl-0
  - pinctrl-names
  - ethernet-ports
  - mdio

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

    ethernet@9c108000 {
        compatible = "sunplus,sp7021-emac";
        reg = <0x9c108000 0x400>;
        interrupt-parent = <&intc>;
        interrupts = <66 IRQ_TYPE_LEVEL_HIGH>;
        clocks = <&clkc 0xa7>;
        resets = <&rstc 0x97>;
        pinctrl-0 = <&emac_demo_board_v3_pins>;
        pinctrl-names = "default";

        ethernet-ports {
            #address-cells = <1>;
            #size-cells = <0>;

            port@0 {
                reg = <0>;
                phy-handle = <&eth_phy0>;
                phy-mode = "rmii";
                nvmem-cells = <&mac_addr0>;
                nvmem-cell-names = "mac-address";
            };

            port@1 {
                reg = <1>;
                phy-handle = <&eth_phy1>;
                phy-mode = "rmii";
                nvmem-cells = <&mac_addr1>;
                nvmem-cell-names = "mac-address";
            };
        };

        mdio {
            #address-cells = <1>;
            #size-cells = <0>;

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

            eth_phy1: ethernet-phy@1 {
                reg = <1>;
            };
        };
    };
...
