185 lines
5.8 KiB
YAML
185 lines
5.8 KiB
YAML
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
|
%YAML 1.2
|
|
---
|
|
$id: http://devicetree.org/schemas/net/mediatek-dwmac.yaml#
|
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
|
|
|
title: MediaTek DWMAC glue layer controller
|
|
|
|
maintainers:
|
|
- Biao Huang <biao.huang@mediatek.com>
|
|
|
|
description:
|
|
This file documents platform glue layer for stmmac.
|
|
|
|
# We need a select here so we don't match all nodes with 'snps,dwmac'
|
|
select:
|
|
properties:
|
|
compatible:
|
|
contains:
|
|
enum:
|
|
- mediatek,mt2712-gmac
|
|
- mediatek,mt8188-gmac
|
|
- mediatek,mt8195-gmac
|
|
required:
|
|
- compatible
|
|
|
|
allOf:
|
|
- $ref: "snps,dwmac.yaml#"
|
|
|
|
properties:
|
|
compatible:
|
|
oneOf:
|
|
- items:
|
|
- enum:
|
|
- mediatek,mt2712-gmac
|
|
- const: snps,dwmac-4.20a
|
|
- items:
|
|
- enum:
|
|
- mediatek,mt8195-gmac
|
|
- const: snps,dwmac-5.10a
|
|
- items:
|
|
- enum:
|
|
- mediatek,mt8188-gmac
|
|
- const: mediatek,mt8195-gmac
|
|
- const: snps,dwmac-5.10a
|
|
|
|
clocks:
|
|
minItems: 5
|
|
items:
|
|
- description: AXI clock
|
|
- description: APB clock
|
|
- description: MAC Main clock
|
|
- description: PTP clock
|
|
- description: RMII reference clock provided by MAC
|
|
- description: MAC clock gate
|
|
|
|
clock-names:
|
|
minItems: 5
|
|
items:
|
|
- const: axi
|
|
- const: apb
|
|
- const: mac_main
|
|
- const: ptp_ref
|
|
- const: rmii_internal
|
|
- const: mac_cg
|
|
|
|
power-domains:
|
|
maxItems: 1
|
|
|
|
mediatek,pericfg:
|
|
$ref: /schemas/types.yaml#/definitions/phandle
|
|
description:
|
|
The phandle to the syscon node that control ethernet
|
|
interface and timing delay.
|
|
|
|
mediatek,tx-delay-ps:
|
|
description:
|
|
The internal TX clock delay (provided by this driver) in nanoseconds.
|
|
For MT2712 RGMII interface, Allowed value need to be a multiple of 170,
|
|
or will round down. Range 0~31*170.
|
|
For MT2712 RMII/MII interface, Allowed value need to be a multiple of 550,
|
|
or will round down. Range 0~31*550.
|
|
For MT8188/MT8195 RGMII/RMII/MII interface, Allowed value need to be a multiple of 290,
|
|
or will round down. Range 0~31*290.
|
|
|
|
mediatek,rx-delay-ps:
|
|
description:
|
|
The internal RX clock delay (provided by this driver) in nanoseconds.
|
|
For MT2712 RGMII interface, Allowed value need to be a multiple of 170,
|
|
or will round down. Range 0~31*170.
|
|
For MT2712 RMII/MII interface, Allowed value need to be a multiple of 550,
|
|
or will round down. Range 0~31*550.
|
|
For MT8188/MT8195 RGMII/RMII/MII interface, Allowed value need to be a multiple
|
|
of 290, or will round down. Range 0~31*290.
|
|
|
|
mediatek,rmii-rxc:
|
|
type: boolean
|
|
description:
|
|
If present, indicates that the RMII reference clock, which is from external
|
|
PHYs, is connected to RXC pin. Otherwise, is connected to TXC pin.
|
|
|
|
mediatek,rmii-clk-from-mac:
|
|
type: boolean
|
|
description:
|
|
If present, indicates that MAC provides the RMII reference clock, which
|
|
outputs to TXC pin only.
|
|
|
|
mediatek,txc-inverse:
|
|
type: boolean
|
|
description:
|
|
If present, indicates that
|
|
1. tx clock will be inversed in MII/RGMII case,
|
|
2. tx clock inside MAC will be inversed relative to reference clock
|
|
which is from external PHYs in RMII case, and it rarely happen.
|
|
3. the reference clock, which outputs to TXC pin will be inversed in RMII case
|
|
when the reference clock is from MAC.
|
|
|
|
mediatek,rxc-inverse:
|
|
type: boolean
|
|
description:
|
|
If present, indicates that
|
|
1. rx clock will be inversed in MII/RGMII case.
|
|
2. reference clock will be inversed when arrived at MAC in RMII case, when
|
|
the reference clock is from external PHYs.
|
|
3. the inside clock, which be sent to MAC, will be inversed in RMII case when
|
|
the reference clock is from MAC.
|
|
|
|
mediatek,mac-wol:
|
|
type: boolean
|
|
description:
|
|
If present, indicates that MAC supports WOL(Wake-On-LAN), and MAC WOL will be enabled.
|
|
Otherwise, PHY WOL is perferred.
|
|
|
|
required:
|
|
- compatible
|
|
- reg
|
|
- interrupts
|
|
- interrupt-names
|
|
- clocks
|
|
- clock-names
|
|
- phy-mode
|
|
- mediatek,pericfg
|
|
|
|
unevaluatedProperties: false
|
|
|
|
examples:
|
|
- |
|
|
#include <dt-bindings/clock/mt2712-clk.h>
|
|
#include <dt-bindings/gpio/gpio.h>
|
|
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
|
#include <dt-bindings/interrupt-controller/irq.h>
|
|
#include <dt-bindings/power/mt2712-power.h>
|
|
|
|
eth: ethernet@1101c000 {
|
|
compatible = "mediatek,mt2712-gmac", "snps,dwmac-4.20a";
|
|
reg = <0x1101c000 0x1300>;
|
|
interrupts = <GIC_SPI 237 IRQ_TYPE_LEVEL_LOW>;
|
|
interrupt-names = "macirq";
|
|
phy-mode ="rgmii-rxid";
|
|
mac-address = [00 55 7b b5 7d f7];
|
|
clock-names = "axi",
|
|
"apb",
|
|
"mac_main",
|
|
"ptp_ref",
|
|
"rmii_internal";
|
|
clocks = <&pericfg CLK_PERI_GMAC>,
|
|
<&pericfg CLK_PERI_GMAC_PCLK>,
|
|
<&topckgen CLK_TOP_ETHER_125M_SEL>,
|
|
<&topckgen CLK_TOP_ETHER_50M_SEL>,
|
|
<&topckgen CLK_TOP_ETHER_50M_RMII_SEL>;
|
|
assigned-clocks = <&topckgen CLK_TOP_ETHER_125M_SEL>,
|
|
<&topckgen CLK_TOP_ETHER_50M_SEL>,
|
|
<&topckgen CLK_TOP_ETHER_50M_RMII_SEL>;
|
|
assigned-clock-parents = <&topckgen CLK_TOP_ETHERPLL_125M>,
|
|
<&topckgen CLK_TOP_APLL1_D3>,
|
|
<&topckgen CLK_TOP_ETHERPLL_50M>;
|
|
power-domains = <&scpsys MT2712_POWER_DOMAIN_AUDIO>;
|
|
mediatek,pericfg = <&pericfg>;
|
|
mediatek,tx-delay-ps = <1530>;
|
|
snps,txpbl = <1>;
|
|
snps,rxpbl = <1>;
|
|
snps,reset-gpio = <&pio 87 GPIO_ACTIVE_LOW>;
|
|
snps,reset-delays-us = <0 10000 10000>;
|
|
};
|