GNU Linux-libre 6.1.90-gnu
[releases.git] / Documentation / devicetree / bindings / net / litex,liteeth.yaml
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
7 title: LiteX LiteETH ethernet device
8
9 maintainers:
10   - Joel Stanley <joel@jms.id.au>
11
12 description: |
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
19 allOf:
20   - $ref: ethernet-controller.yaml#
21
22 properties:
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
67 required:
68   - compatible
69   - reg
70   - interrupts
71
72 additionalProperties: false
73
74 examples:
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 :