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

title: AXI 1G/2.5G Ethernet Subsystem

description: |
  Also called  AXI 1G/2.5G Ethernet Subsystem, the xilinx axi ethernet IP core
  provides connectivity to an external ethernet PHY supporting different
  interfaces: MII, GMII, RGMII, SGMII, 1000BaseX. It also includes two
  segments of memory for buffering TX and RX, as well as the capability of
  offloading TX/RX checksum calculation off the processor.

  Management configuration is done through the AXI interface, while payload is
  sent and received through means of an AXI DMA controller. This driver
  includes the DMA driver code, so this driver is incompatible with AXI DMA
  driver.

maintainers:
  - Radhey Shyam Pandey <radhey.shyam.pandey@xilinx.com>

properties:
  compatible:
    enum:
      - xlnx,axi-ethernet-1.00.a
      - xlnx,axi-ethernet-1.01.a
      - xlnx,axi-ethernet-2.01.a

  reg:
    description:
      Address and length of the IO space, as well as the address
      and length of the AXI DMA controller IO space, unless
      axistream-connected is specified, in which case the reg
      attribute of the node referenced by it is used.
    maxItems: 2

  interrupts:
    items:
      - description: Ethernet core interrupt
      - description: Tx DMA interrupt
      - description: Rx DMA interrupt
    description:
      Ethernet core interrupt is optional. If axistream-connected property is
      present DMA node should contains TX/RX DMA interrupts else DMA interrupt
      resources are mentioned on ethernet node.
    minItems: 1

  phy-handle: true

  xlnx,rxmem:
    description:
      Set to allocated memory buffer for Rx/Tx in the hardware.
    $ref: /schemas/types.yaml#/definitions/uint32

  phy-mode:
    enum:
      - mii
      - gmii
      - rgmii
      - sgmii
      - 1000BaseX

  xlnx,phy-type:
    description:
      Do not use, but still accepted in preference to phy-mode.
    deprecated: true
    $ref: /schemas/types.yaml#/definitions/uint32

  xlnx,txcsum:
    description:
      TX checksum offload. 0 or empty for disabling TX checksum offload,
      1 to enable partial TX checksum offload and 2 to enable full TX
      checksum offload.
    $ref: /schemas/types.yaml#/definitions/uint32
    enum: [0, 1, 2]

  xlnx,rxcsum:
    description:
      RX checksum offload. 0 or empty for disabling RX checksum offload,
      1 to enable partial RX checksum offload and 2 to enable full RX
      checksum offload.
    $ref: /schemas/types.yaml#/definitions/uint32
    enum: [0, 1, 2]

  xlnx,switch-x-sgmii:
    type: boolean
    description:
      Indicate the Ethernet core is configured to support both 1000BaseX and
      SGMII modes. If set, the phy-mode should be set to match the mode
      selected on core reset (i.e. by the basex_or_sgmii core input line).

  clocks:
    items:
      - description: Clock for AXI register slave interface.
      - description: AXI4-Stream clock for TXD RXD TXC and RXS interfaces.
      - description: Ethernet reference clock, used by signal delay primitives
                     and transceivers.
      - description: MGT reference clock (used by optional internal PCS/PMA PHY)

  clock-names:
    items:
      - const: s_axi_lite_clk
      - const: axis_clk
      - const: ref_clk
      - const: mgt_clk

  axistream-connected:
    $ref: /schemas/types.yaml#/definitions/phandle
    description: Phandle of AXI DMA controller which contains the resources
      used by this device. If this is specified, the DMA-related resources
      from that device (DMA registers and DMA TX/RX interrupts) rather than
      this one will be used.

  mdio:
    type: object

  pcs-handle:
    description: Phandle to the internal PCS/PMA PHY in SGMII or 1000Base-X
      modes, where "pcs-handle" should be used to point to the PCS/PMA PHY,
      and "phy-handle" should point to an external PHY if exists.
    maxItems: 1

required:
  - compatible
  - interrupts
  - reg
  - xlnx,rxmem
  - phy-handle

allOf:
  - $ref: /schemas/net/ethernet-controller.yaml#

additionalProperties: false

examples:
  - |
    axi_ethernet_eth: ethernet@40c00000 {
        compatible = "xlnx,axi-ethernet-1.00.a";
        interrupts = <2 0 1>;
        clock-names = "s_axi_lite_clk", "axis_clk", "ref_clk", "mgt_clk";
        clocks = <&axi_clk>, <&axi_clk>, <&pl_enet_ref_clk>, <&mgt_clk>;
        phy-mode = "mii";
        reg = <0x40c00000 0x40000>,<0x50c00000 0x40000>;
        xlnx,rxcsum = <0x2>;
        xlnx,rxmem = <0x800>;
        xlnx,txcsum = <0x2>;
        phy-handle = <&phy0>;

        mdio {
            #address-cells = <1>;
            #size-cells = <0>;
            phy0: ethernet-phy@1 {
                device_type = "ethernet-phy";
                reg = <1>;
            };
        };
    };

  - |
    axi_ethernet_eth1: ethernet@40000000 {
        compatible = "xlnx,axi-ethernet-1.00.a";
        interrupts = <0>;
        clock-names = "s_axi_lite_clk", "axis_clk", "ref_clk", "mgt_clk";
        clocks = <&axi_clk>, <&axi_clk>, <&pl_enet_ref_clk>, <&mgt_clk>;
        phy-mode = "mii";
        reg = <0x00 0x40000000 0x00 0x40000>;
        xlnx,rxcsum = <0x2>;
        xlnx,rxmem = <0x800>;
        xlnx,txcsum = <0x2>;
        phy-handle = <&phy1>;
        axistream-connected = <&dma>;

        mdio {
            #address-cells = <1>;
            #size-cells = <0>;
            phy1: ethernet-phy@1 {
                device_type = "ethernet-phy";
                reg = <1>;
            };
        };
    };
