| # 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 <neil.armstrong@linaro.org> | |
| - 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 | |
| - amlogic,meson-g12a-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 | |
| - amlogic,meson-g12a-dwmac | |
| then: | |
| properties: | |
| clocks: | |
| minItems: 3 | |
| items: | |
| - description: GMAC main clock | |
| - description: First parent clock of the internal mux | |
| - description: Second parent clock of the internal mux | |
| - description: The clock which drives the timing adjustment logic | |
| clock-names: | |
| minItems: 3 | |
| items: | |
| - const: stmmaceth | |
| - const: clkin0 | |
| - const: clkin1 | |
| - const: timing-adjustment | |
| amlogic,tx-delay-ns: | |
| enum: [0, 2, 4, 6] | |
| default: 2 | |
| description: | |
| The internal RGMII TX clock delay (provided by this driver) | |
| in nanoseconds. When phy-mode is set to "rgmii" then the TX | |
| delay should be explicitly configured. 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". | |
| amlogic,rx-delay-ns: | |
| deprecated: true | |
| enum: | |
| - 0 | |
| - 2 | |
| default: 0 | |
| description: | |
| The internal RGMII RX clock delay in nanoseconds. Deprecated, use | |
| rx-internal-delay-ps instead. | |
| rx-internal-delay-ps: | |
| default: 0 | |
| - if: | |
| properties: | |
| compatible: | |
| contains: | |
| enum: | |
| - amlogic,meson8b-dwmac | |
| - amlogic,meson8m2-dwmac | |
| - amlogic,meson-gxbb-dwmac | |
| - amlogic,meson-axg-dwmac | |
| then: | |
| properties: | |
| rx-internal-delay-ps: | |
| enum: | |
| - 0 | |
| - 2000 | |
| - if: | |
| properties: | |
| compatible: | |
| contains: | |
| enum: | |
| - amlogic,meson-g12a-dwmac | |
| then: | |
| properties: | |
| rx-internal-delay-ps: | |
| enum: | |
| - 0 | |
| - 200 | |
| - 400 | |
| - 600 | |
| - 800 | |
| - 1000 | |
| - 1200 | |
| - 1400 | |
| - 1600 | |
| - 1800 | |
| - 2000 | |
| - 2200 | |
| - 2400 | |
| - 2600 | |
| - 2800 | |
| - 3000 | |
| 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 | |
| - amlogic,meson-g12a-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 for the Amlogic specific configuration | |
| (for example the PRG_ETHERNET register range on Meson8b and newer) | |
| interrupts: | |
| maxItems: 1 | |
| interrupt-names: | |
| const: macirq | |
| required: | |
| - compatible | |
| - reg | |
| - interrupts | |
| - interrupt-names | |
| - clocks | |
| - clock-names | |
| - phy-mode | |
| unevaluatedProperties: false | |
| examples: | |
| - | | |
| ethmac: ethernet@c9410000 { | |
| compatible = "amlogic,meson-gxbb-dwmac", "snps,dwmac"; | |
| reg = <0xc9410000 0x10000>, <0xc8834540 0x8>; | |
| interrupts = <8>; | |
| interrupt-names = "macirq"; | |
| clocks = <&clk_eth>, <&clk_fclk_div2>, <&clk_mpll2>, <&clk_fclk_div2>; | |
| clock-names = "stmmaceth", "clkin0", "clkin1", "timing-adjustment"; | |
| phy-mode = "rgmii"; | |
| }; |