Skip to content

Commit

Permalink
dt-bindings: net: Add bindings for LiteETH
Browse files Browse the repository at this point in the history
LiteETH is a small footprint and configurable Ethernet core for FPGA
based system on chips.

The hardware is parametrised by the size and number of the slots in it's
receive and send buffers. These are described as properties, with the
commonly used values set as the default.

Signed-off-by: Joel Stanley <joel@jms.id.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
Joel Stanley authored and David S. Miller committed Aug 26, 2021
1 parent bc8e05d commit b0f8d30
Showing 1 changed file with 98 additions and 0 deletions.
98 changes: 98 additions & 0 deletions Documentation/devicetree/bindings/net/litex,liteeth.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,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 :

0 comments on commit b0f8d30

Please sign in to comment.