summaryrefslogtreecommitdiffstats
path: root/dts/Bindings/net/litex,liteeth.yaml
blob: 76c164a8199a52ac20ba31c38b31dc301925ffc7 (plain)
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
# 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#

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 :