# 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

  dmas:
    minItems: 2
    maxItems: 32
    description: TX and RX DMA channel phandle

  dma-names:
    items:
      pattern: "^[tr]x_chan([0-9]|1[0-5])$"
    description:
      Should be "tx_chan0", "tx_chan1" ... "tx_chan15" for DMA Tx channel
      Should be "rx_chan0", "rx_chan1" ... "rx_chan15" for DMA Rx channel
    minItems: 2
    maxItems: 32

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>;
        dmas = <&xilinx_dma 0>, <&xilinx_dma 1>;
        dma-names = "tx_chan0", "rx_chan0";
        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>;
            };
        };
    };
