1# SPDX-License-Identifier: GPL-2.0-or-later OR BSD-2-Clause
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/net/litex,liteeth.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: LiteX LiteETH ethernet device
8
9maintainers:
10  - Joel Stanley <joel@jms.id.au>
11
12description: |
13  LiteETH is a small footprint and configurable Ethernet core for FPGA based
14  system on chips.
15
16  The hardware source is Open Source and can be found on at
17  https://github.com/enjoy-digital/liteeth/.
18
19allOf:
20  - $ref: ethernet-controller.yaml#
21
22properties:
23  compatible:
24    const: litex,liteeth
25
26  reg:
27    items:
28      - description: MAC registers
29      - description: MDIO registers
30      - description: Packet buffer
31
32  reg-names:
33    items:
34      - const: mac
35      - const: mdio
36      - const: buffer
37
38  interrupts:
39    maxItems: 1
40
41  litex,rx-slots:
42    description: Number of slots in the receive buffer
43    $ref: /schemas/types.yaml#/definitions/uint32
44    minimum: 1
45    default: 2
46
47  litex,tx-slots:
48    description: Number of slots in the transmit buffer
49    $ref: /schemas/types.yaml#/definitions/uint32
50    minimum: 1
51    default: 2
52
53  litex,slot-size:
54    description: Size in bytes of a slot in the tx/rx buffer
55    $ref: /schemas/types.yaml#/definitions/uint32
56    minimum: 0x800
57    default: 0x800
58
59  mac-address: true
60  local-mac-address: true
61  phy-handle: true
62
63  mdio:
64    $ref: mdio.yaml#
65    unevaluatedProperties: false
66
67required:
68  - compatible
69  - reg
70  - interrupts
71
72additionalProperties: false
73
74examples:
75  - |
76    mac: ethernet@8020000 {
77        compatible = "litex,liteeth";
78        reg = <0x8021000 0x100>,
79              <0x8020800 0x100>,
80              <0x8030000 0x2000>;
81        reg-names = "mac", "mdio", "buffer";
82        litex,rx-slots = <2>;
83        litex,tx-slots = <2>;
84        litex,slot-size = <0x800>;
85        interrupts = <0x11 0x1>;
86        phy-handle = <&eth_phy>;
87
88        mdio {
89          #address-cells = <1>;
90          #size-cells = <0>;
91
92          eth_phy: ethernet-phy@0 {
93            reg = <0>;
94          };
95        };
96    };
97...
98
99#  vim: set ts=2 sw=2 sts=2 tw=80 et cc=80 ft=yaml :
100