Documentation / devicetree / bindings / net / litex,liteeth.yaml


Based on kernel version 6.8. Page generated on 2024-03-11 21:26 EST.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99
# SPDX-License-Identifier: GPL-2.0-or-later OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/net/litex,liteeth.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: LiteX LiteETH ethernet device

maintainers:
  - Joel Stanley <joel@jms.id.au>

description: |
  LiteETH is a small footprint and configurable Ethernet core for FPGA based
  system on chips.
 
  The hardware source is Open Source and can be found on at
  https://github.com/enjoy-digital/liteeth/.

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

properties:
  compatible:
    const: litex,liteeth

  reg:
    items:
      - description: MAC registers
      - description: MDIO registers
      - description: Packet buffer

  reg-names:
    items:
      - const: mac
      - const: mdio
      - const: buffer

  interrupts:
    maxItems: 1

  litex,rx-slots:
    description: Number of slots in the receive buffer
    $ref: /schemas/types.yaml#/definitions/uint32
    minimum: 1
    default: 2

  litex,tx-slots:
    description: Number of slots in the transmit buffer
    $ref: /schemas/types.yaml#/definitions/uint32
    minimum: 1
    default: 2

  litex,slot-size:
    description: Size in bytes of a slot in the tx/rx buffer
    $ref: /schemas/types.yaml#/definitions/uint32
    minimum: 0x800
    default: 0x800

  mac-address: true
  local-mac-address: true
  phy-handle: true

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

required:
  - compatible
  - reg
  - interrupts

additionalProperties: false

examples:
  - |
    mac: ethernet@8020000 {
        compatible = "litex,liteeth";
        reg = <0x8021000 0x100>,
              <0x8020800 0x100>,
              <0x8030000 0x2000>;
        reg-names = "mac", "mdio", "buffer";
        litex,rx-slots = <2>;
        litex,tx-slots = <2>;
        litex,slot-size = <0x800>;
        interrupts = <0x11 0x1>;
        phy-handle = <&eth_phy>;
 
        mdio {
          #address-cells = <1>;
          #size-cells = <0>;

          eth_phy: ethernet-phy@0 {
            reg = <0>;
          };
        };
    };
...
 
#  vim: set ts=2 sw=2 sts=2 tw=80 et cc=80 ft=yaml :