dt-bindings: net: meson-dwmac: convert to yaml
Now that we have the DT validation in place, let's convert the device tree bindings for the Synopsys DWMAC Glue for Amlogic SoCs over to a YAML schemas. Reviewed-by: Rob Herring <robh@kernel.org> Reviewed-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com> Signed-off-by: Neil Armstrong <narmstrong@baylibre.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
57b77df7b7
commit
d5a57e4e31
|
@ -0,0 +1,113 @@
|
||||||
|
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
|
||||||
|
# Copyright 2019 BayLibre, SAS
|
||||||
|
%YAML 1.2
|
||||||
|
---
|
||||||
|
$id: "http://devicetree.org/schemas/net/amlogic,meson-dwmac.yaml#"
|
||||||
|
$schema: "http://devicetree.org/meta-schemas/core.yaml#"
|
||||||
|
|
||||||
|
title: Amlogic Meson DWMAC Ethernet controller
|
||||||
|
|
||||||
|
maintainers:
|
||||||
|
- Neil Armstrong <narmstrong@baylibre.com>
|
||||||
|
- Martin Blumenstingl <martin.blumenstingl@googlemail.com>
|
||||||
|
|
||||||
|
# We need a select here so we don't match all nodes with 'snps,dwmac'
|
||||||
|
select:
|
||||||
|
properties:
|
||||||
|
compatible:
|
||||||
|
contains:
|
||||||
|
enum:
|
||||||
|
- amlogic,meson6-dwmac
|
||||||
|
- amlogic,meson8b-dwmac
|
||||||
|
- amlogic,meson8m2-dwmac
|
||||||
|
- amlogic,meson-gxbb-dwmac
|
||||||
|
- amlogic,meson-axg-dwmac
|
||||||
|
required:
|
||||||
|
- compatible
|
||||||
|
|
||||||
|
allOf:
|
||||||
|
- $ref: "snps,dwmac.yaml#"
|
||||||
|
- if:
|
||||||
|
properties:
|
||||||
|
compatible:
|
||||||
|
contains:
|
||||||
|
enum:
|
||||||
|
- amlogic,meson8b-dwmac
|
||||||
|
- amlogic,meson8m2-dwmac
|
||||||
|
- amlogic,meson-gxbb-dwmac
|
||||||
|
- amlogic,meson-axg-dwmac
|
||||||
|
|
||||||
|
then:
|
||||||
|
properties:
|
||||||
|
clocks:
|
||||||
|
items:
|
||||||
|
- description: GMAC main clock
|
||||||
|
- description: First parent clock of the internal mux
|
||||||
|
- description: Second parent clock of the internal mux
|
||||||
|
|
||||||
|
clock-names:
|
||||||
|
minItems: 3
|
||||||
|
maxItems: 3
|
||||||
|
items:
|
||||||
|
- const: stmmaceth
|
||||||
|
- const: clkin0
|
||||||
|
- const: clkin1
|
||||||
|
|
||||||
|
amlogic,tx-delay-ns:
|
||||||
|
$ref: /schemas/types.yaml#definitions/uint32
|
||||||
|
description:
|
||||||
|
The internal RGMII TX clock delay (provided by this driver) in
|
||||||
|
nanoseconds. Allowed values are 0ns, 2ns, 4ns, 6ns.
|
||||||
|
When phy-mode is set to "rgmii" then the TX delay should be
|
||||||
|
explicitly configured. When not configured a fallback of 2ns is
|
||||||
|
used. When the phy-mode is set to either "rgmii-id" or "rgmii-txid"
|
||||||
|
the TX clock delay is already provided by the PHY. In that case
|
||||||
|
this property should be set to 0ns (which disables the TX clock
|
||||||
|
delay in the MAC to prevent the clock from going off because both
|
||||||
|
PHY and MAC are adding a delay).
|
||||||
|
Any configuration is ignored when the phy-mode is set to "rmii".
|
||||||
|
|
||||||
|
properties:
|
||||||
|
compatible:
|
||||||
|
additionalItems: true
|
||||||
|
maxItems: 3
|
||||||
|
items:
|
||||||
|
- enum:
|
||||||
|
- amlogic,meson6-dwmac
|
||||||
|
- amlogic,meson8b-dwmac
|
||||||
|
- amlogic,meson8m2-dwmac
|
||||||
|
- amlogic,meson-gxbb-dwmac
|
||||||
|
- amlogic,meson-axg-dwmac
|
||||||
|
contains:
|
||||||
|
enum:
|
||||||
|
- snps,dwmac-3.70a
|
||||||
|
- snps,dwmac
|
||||||
|
|
||||||
|
reg:
|
||||||
|
items:
|
||||||
|
- description:
|
||||||
|
The first register range should be the one of the DWMAC controller
|
||||||
|
- description:
|
||||||
|
The second range is is for the Amlogic specific configuration
|
||||||
|
(for example the PRG_ETHERNET register range on Meson8b and newer)
|
||||||
|
|
||||||
|
required:
|
||||||
|
- compatible
|
||||||
|
- reg
|
||||||
|
- interrupts
|
||||||
|
- interrupt-names
|
||||||
|
- clocks
|
||||||
|
- clock-names
|
||||||
|
- phy-mode
|
||||||
|
|
||||||
|
examples:
|
||||||
|
- |
|
||||||
|
ethmac: ethernet@c9410000 {
|
||||||
|
compatible = "amlogic,meson-gxbb-dwmac", "snps,dwmac";
|
||||||
|
reg = <0xc9410000 0x10000>, <0xc8834540 0x8>;
|
||||||
|
interrupts = <8>;
|
||||||
|
interrupt-names = "macirq";
|
||||||
|
clocks = <&clk_eth>, <&clkc_fclk_div2>, <&clk_mpll2>;
|
||||||
|
clock-names = "stmmaceth", "clkin0", "clkin1";
|
||||||
|
phy-mode = "rgmii";
|
||||||
|
};
|
|
@ -1,71 +0,0 @@
|
||||||
* Amlogic Meson DWMAC Ethernet controller
|
|
||||||
|
|
||||||
The device inherits all the properties of the dwmac/stmmac devices
|
|
||||||
described in the file stmmac.txt in the current directory with the
|
|
||||||
following changes.
|
|
||||||
|
|
||||||
Required properties on all platforms:
|
|
||||||
|
|
||||||
- compatible: Depending on the platform this should be one of:
|
|
||||||
- "amlogic,meson6-dwmac"
|
|
||||||
- "amlogic,meson8b-dwmac"
|
|
||||||
- "amlogic,meson8m2-dwmac"
|
|
||||||
- "amlogic,meson-gxbb-dwmac"
|
|
||||||
- "amlogic,meson-axg-dwmac"
|
|
||||||
Additionally "snps,dwmac" and any applicable more
|
|
||||||
detailed version number described in net/stmmac.txt
|
|
||||||
should be used.
|
|
||||||
|
|
||||||
- reg: The first register range should be the one of the DWMAC
|
|
||||||
controller. The second range is is for the Amlogic specific
|
|
||||||
configuration (for example the PRG_ETHERNET register range
|
|
||||||
on Meson8b and newer)
|
|
||||||
|
|
||||||
Required properties on Meson8b, Meson8m2, GXBB and newer:
|
|
||||||
- clock-names: Should contain the following:
|
|
||||||
- "stmmaceth" - see stmmac.txt
|
|
||||||
- "clkin0" - first parent clock of the internal mux
|
|
||||||
- "clkin1" - second parent clock of the internal mux
|
|
||||||
|
|
||||||
Optional properties on Meson8b, Meson8m2, GXBB and newer:
|
|
||||||
- amlogic,tx-delay-ns: The internal RGMII TX clock delay (provided
|
|
||||||
by this driver) in nanoseconds. Allowed values
|
|
||||||
are: 0ns, 2ns, 4ns, 6ns.
|
|
||||||
When phy-mode is set to "rgmii" then the TX
|
|
||||||
delay should be explicitly configured. When
|
|
||||||
not configured a fallback of 2ns is used.
|
|
||||||
When the phy-mode is set to either "rgmii-id"
|
|
||||||
or "rgmii-txid" the TX clock delay is already
|
|
||||||
provided by the PHY. In that case this
|
|
||||||
property should be set to 0ns (which disables
|
|
||||||
the TX clock delay in the MAC to prevent the
|
|
||||||
clock from going off because both PHY and MAC
|
|
||||||
are adding a delay).
|
|
||||||
Any configuration is ignored when the phy-mode
|
|
||||||
is set to "rmii".
|
|
||||||
|
|
||||||
Example for Meson6:
|
|
||||||
|
|
||||||
ethmac: ethernet@c9410000 {
|
|
||||||
compatible = "amlogic,meson6-dwmac", "snps,dwmac";
|
|
||||||
reg = <0xc9410000 0x10000
|
|
||||||
0xc1108108 0x4>;
|
|
||||||
interrupts = <0 8 1>;
|
|
||||||
interrupt-names = "macirq";
|
|
||||||
clocks = <&clk81>;
|
|
||||||
clock-names = "stmmaceth";
|
|
||||||
}
|
|
||||||
|
|
||||||
Example for GXBB:
|
|
||||||
ethmac: ethernet@c9410000 {
|
|
||||||
compatible = "amlogic,meson-gxbb-dwmac", "snps,dwmac";
|
|
||||||
reg = <0x0 0xc9410000 0x0 0x10000>,
|
|
||||||
<0x0 0xc8834540 0x0 0x8>;
|
|
||||||
interrupts = <0 8 1>;
|
|
||||||
interrupt-names = "macirq";
|
|
||||||
clocks = <&clkc CLKID_ETH>,
|
|
||||||
<&clkc CLKID_FCLK_DIV2>,
|
|
||||||
<&clkc CLKID_MPLL2>;
|
|
||||||
clock-names = "stmmaceth", "clkin0", "clkin1";
|
|
||||||
phy-mode = "rgmii";
|
|
||||||
};
|
|
|
@ -50,6 +50,11 @@ properties:
|
||||||
- allwinner,sun8i-r40-emac
|
- allwinner,sun8i-r40-emac
|
||||||
- allwinner,sun8i-v3s-emac
|
- allwinner,sun8i-v3s-emac
|
||||||
- allwinner,sun50i-a64-emac
|
- allwinner,sun50i-a64-emac
|
||||||
|
- amlogic,meson6-dwmac
|
||||||
|
- amlogic,meson8b-dwmac
|
||||||
|
- amlogic,meson8m2-dwmac
|
||||||
|
- amlogic,meson-gxbb-dwmac
|
||||||
|
- amlogic,meson-axg-dwmac
|
||||||
- snps,dwmac
|
- snps,dwmac
|
||||||
- snps,dwmac-3.50a
|
- snps,dwmac-3.50a
|
||||||
- snps,dwmac-3.610
|
- snps,dwmac-3.610
|
||||||
|
|
Loading…
Reference in New Issue