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

title: Altera Triple Speed Ethernet MAC driver (TSE)

maintainers:
  - Maxime Chevallier <maxime.chevallier@bootlin.com>

properties:
  compatible:
    oneOf:
      - const: altr,tse-1.0
      - const: ALTR,tse-1.0
        deprecated: true
      - const: altr,tse-msgdma-1.0

  interrupts:
    minItems: 2

  interrupt-names:
    items:
      - const: rx_irq
      - const: tx_irq

  rx-fifo-depth:
    $ref: /schemas/types.yaml#/definitions/uint32
    description:
      Depth in bytes of the RX FIFO

  tx-fifo-depth:
    $ref: /schemas/types.yaml#/definitions/uint32
    description:
      Depth in bytes of the TX FIFO

  altr,has-supplementary-unicast:
    type: boolean
    description:
      If present, TSE supports additional unicast addresses.

  altr,has-hash-multicast-filter:
    type: boolean
    description:
      If present, TSE supports hash based multicast filter.

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

    properties:
      compatible:
        const: altr,tse-mdio

    required:
      - compatible

required:
  - compatible
  - reg
  - interrupts
  - rx-fifo-depth
  - tx-fifo-depth

allOf:
  - $ref: "ethernet-controller.yaml#"
  - if:
      properties:
        compatible:
          contains:
            enum:
              - const: altr,tse-1.0
              - const: ALTR,tse-1.0
    then:
      properties:
        reg:
          minItems: 4
        reg-names:
          items:
            - const: control_port
            - const: rx_csr
            - const: tx_csr
            - const: s1

  - if:
      properties:
        compatible:
          contains:
            enum:
              - altr,tse-msgdma-1.0
    then:
      properties:
        reg:
          minItems: 6
          maxItems: 7
        reg-names:
          minItems: 6
          items:
            - const: control_port
            - const: rx_csr
            - const: rx_desc
            - const: rx_resp
            - const: tx_csr
            - const: tx_desc
            - const: pcs

unevaluatedProperties: false

examples:
  - |
    tse_sub_0: ethernet@c0100000 {
        compatible = "altr,tse-msgdma-1.0";
        reg = <0xc0100000 0x00000400>,
              <0xc0101000 0x00000020>,
              <0xc0102000 0x00000020>,
              <0xc0103000 0x00000008>,
              <0xc0104000 0x00000020>,
              <0xc0105000 0x00000020>,
              <0xc0106000 0x00000100>;
        reg-names = "control_port", "rx_csr", "rx_desc", "rx_resp", "tx_csr", "tx_desc", "pcs";
        interrupt-parent = <&intc>;
        interrupts = <0 44 4>,<0 45 4>;
        interrupt-names = "rx_irq","tx_irq";
        rx-fifo-depth = <2048>;
        tx-fifo-depth = <2048>;
        max-frame-size = <1500>;
        local-mac-address = [ 00 00 00 00 00 00 ];
        altr,has-supplementary-unicast;
        altr,has-hash-multicast-filter;
        sfp = <&sfp0>;
        phy-mode = "sgmii";
        managed = "in-band-status";
    };
  - |
    tse_sub_1_eth_tse_0: ethernet@1,00001000 {
        compatible = "altr,tse-msgdma-1.0";
        reg = <0x00001000 0x00000400>,
              <0x00001460 0x00000020>,
              <0x00001480 0x00000020>,
              <0x000014A0 0x00000008>,
              <0x00001400 0x00000020>,
              <0x00001420 0x00000020>;
        reg-names = "control_port", "rx_csr", "rx_desc", "rx_resp", "tx_csr", "tx_desc";
        interrupt-parent = <&hps_0_arm_gic_0>;
        interrupts = <0 43 4>, <0 42 4>;
        interrupt-names = "rx_irq", "tx_irq";
        rx-fifo-depth = <2048>;
        tx-fifo-depth = <2048>;
        max-frame-size = <1500>;
        local-mac-address = [ 00 00 00 00 00 00 ];
        phy-mode = "gmii";
        altr,has-supplementary-unicast;
        altr,has-hash-multicast-filter;
        phy-handle = <&phy1>;
        mdio {
            compatible = "altr,tse-mdio";
            #address-cells = <1>;
            #size-cells = <0>;
            phy1: ethernet-phy@1 {
                reg = <0x1>;
            };
        };
    };

...
