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

title: TSN endpoint Ethernet MAC

maintainers:
  - Gerhard Engleder <gerhard@engleder-embedded.com>

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

properties:
  compatible:
    const: engleder,tsnep

  reg:
    maxItems: 1

  interrupts:
    minItems: 1
    maxItems: 8

  interrupt-names:
    minItems: 1
    items:
      - const: mac
      - const: txrx-1
      - const: txrx-2
      - const: txrx-3
      - const: txrx-4
      - const: txrx-5
      - const: txrx-6
      - const: txrx-7
    description:
      The main interrupt for basic MAC features and the first TX/RX queue pair
      is named "mac". "txrx-[1-7]" are the interrupts for additional TX/RX
      queue pairs.

  dma-coherent: true

  local-mac-address: true

  mac-address: true

  nvmem-cells: true

  nvmem-cell-names: true

  phy-connection-type:
    enum:
      - mii
      - gmii
      - rgmii
      - rgmii-id

  phy-mode: true

  phy-handle: true

  mdio:
    type: object
    $ref: mdio.yaml#
    description: optional node for embedded MDIO controller

required:
  - compatible
  - reg
  - interrupts

additionalProperties: false

examples:
  - |
    axi {
        #address-cells = <2>;
        #size-cells = <2>;
        tsnep0: ethernet@a0000000 {
            compatible = "engleder,tsnep";
            reg = <0x0 0xa0000000 0x0 0x10000>;
            interrupts = <0 89 1>;
            interrupt-parent = <&gic>;
            local-mac-address = [00 00 00 00 00 00];
            phy-mode = "rgmii";
            phy-handle = <&phy0>;
            mdio {
                #address-cells = <1>;
                #size-cells = <0>;
                suppress-preamble;
                phy0: ethernet-phy@1 {
                    reg = <1>;
                    rxc-skew-ps = <1080>;
                };
            };
        };

        tsnep1: ethernet@a0010000 {
            compatible = "engleder,tsnep";
            reg = <0x0 0xa0010000 0x0 0x10000>;
            interrupts = <0 93 1>, <0 94 1>, <0 95 1>, <0 96 1>;
            interrupt-names = "mac", "txrx-1", "txrx-2", "txrx-3";
            interrupt-parent = <&gic>;
            local-mac-address = [00 00 00 00 00 00];
            phy-mode = "rgmii";
            phy-handle = <&phy1>;
            mdio {
                #address-cells = <1>;
                #size-cells = <0>;
                suppress-preamble;
                phy1: ethernet-phy@1 {
                    reg = <1>;
                    rxc-skew-ps = <1080>;
                };
            };
        };
    };