Message ID | 20210825124655.3104348-2-joel@jms.id.au (mailing list archive) |
---|---|
State | Superseded |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | net: Add LiteETH network driver | expand |
Context | Check | Description |
---|---|---|
netdev/cover_letter | success | Link |
netdev/fixes_present | success | Link |
netdev/patch_count | success | Link |
netdev/tree_selection | success | Guessed tree name to be net-next |
netdev/subject_prefix | success | Link |
netdev/cc_maintainers | success | CCed 8 of 8 maintainers |
netdev/source_inline | success | Was 0 now: 0 |
netdev/verify_signedoff | success | Link |
netdev/module_param | success | Was 0 now: 0 |
netdev/build_32bit | success | Errors and warnings before: 0 this patch: 0 |
netdev/kdoc | success | Errors and warnings before: 0 this patch: 0 |
netdev/verify_fixes | success | Link |
netdev/checkpatch | warning | WARNING: added, moved or deleted file(s), does MAINTAINERS need updating? |
netdev/build_allmodconfig_warn | success | Errors and warnings before: 0 this patch: 0 |
netdev/header_inline | success | Link |
On Wed, Aug 25, 2021 at 10:16:54PM +0930, Joel Stanley wrote: > 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> > --- > v2: > - Fix dtschema check warning relating to registers > - Add names to the registers to make it easier to distinguish which is > what region > - Add mdio description > - Include ethernet-controller parent description > v3: > - Define names for reg-names > - update example to match common case > - describe the hardware using slots and slot sizes. This is how the > hardware is pramaterised, and it makes more sense than trying to use > the rx/tx-fifo-size properties > --- > .../bindings/net/litex,liteeth.yaml | 100 ++++++++++++++++++ > 1 file changed, 100 insertions(+) > create mode 100644 Documentation/devicetree/bindings/net/litex,liteeth.yaml > > diff --git a/Documentation/devicetree/bindings/net/litex,liteeth.yaml b/Documentation/devicetree/bindings/net/litex,liteeth.yaml > new file mode 100644 > index 000000000000..62911b8e913c > --- /dev/null > +++ b/Documentation/devicetree/bindings/net/litex,liteeth.yaml > @@ -0,0 +1,100 @@ > +# 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: > + minItems: 3 Don't need minItems if it is equal to 'items' length. > + items: > + - description: MAC registers > + - description: MDIO registers > + - description: Packet buffer > + > + reg-names: > + minItems: 3 And here. With that fixed: Reviewed-by: Rob Herring <robh@kernel.org> > + 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 = <ð_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 : > -- > 2.33.0 > >
diff --git a/Documentation/devicetree/bindings/net/litex,liteeth.yaml b/Documentation/devicetree/bindings/net/litex,liteeth.yaml new file mode 100644 index 000000000000..62911b8e913c --- /dev/null +++ b/Documentation/devicetree/bindings/net/litex,liteeth.yaml @@ -0,0 +1,100 @@ +# 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: + minItems: 3 + items: + - description: MAC registers + - description: MDIO registers + - description: Packet buffer + + reg-names: + minItems: 3 + 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 = <ð_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 :
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> --- v2: - Fix dtschema check warning relating to registers - Add names to the registers to make it easier to distinguish which is what region - Add mdio description - Include ethernet-controller parent description v3: - Define names for reg-names - update example to match common case - describe the hardware using slots and slot sizes. This is how the hardware is pramaterised, and it makes more sense than trying to use the rx/tx-fifo-size properties --- .../bindings/net/litex,liteeth.yaml | 100 ++++++++++++++++++ 1 file changed, 100 insertions(+) create mode 100644 Documentation/devicetree/bindings/net/litex,liteeth.yaml