xref: /openbmc/linux/Documentation/devicetree/bindings/net/mediatek-dwmac.yaml (revision c900529f3d9161bfde5cca0754f83b4d3c3e0220)
1150b6addSBiao Huang# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2150b6addSBiao Huang%YAML 1.2
3150b6addSBiao Huang---
4150b6addSBiao Huang$id: http://devicetree.org/schemas/net/mediatek-dwmac.yaml#
5150b6addSBiao Huang$schema: http://devicetree.org/meta-schemas/core.yaml#
6150b6addSBiao Huang
7150b6addSBiao Huangtitle: MediaTek DWMAC glue layer controller
8150b6addSBiao Huang
9150b6addSBiao Huangmaintainers:
10150b6addSBiao Huang  - Biao Huang <biao.huang@mediatek.com>
11150b6addSBiao Huang
12150b6addSBiao Huangdescription:
13150b6addSBiao Huang  This file documents platform glue layer for stmmac.
14150b6addSBiao Huang
15150b6addSBiao Huang# We need a select here so we don't match all nodes with 'snps,dwmac'
16150b6addSBiao Huangselect:
17150b6addSBiao Huang  properties:
18150b6addSBiao Huang    compatible:
19150b6addSBiao Huang      contains:
20150b6addSBiao Huang        enum:
21150b6addSBiao Huang          - mediatek,mt2712-gmac
22c827b7a3SJianguo Zhang          - mediatek,mt8188-gmac
23ee410d51SBiao Huang          - mediatek,mt8195-gmac
24150b6addSBiao Huang  required:
25150b6addSBiao Huang    - compatible
26150b6addSBiao Huang
27150b6addSBiao HuangallOf:
2861ab5a06SKrzysztof Kozlowski  - $ref: snps,dwmac.yaml#
29150b6addSBiao Huang
30150b6addSBiao Huangproperties:
31150b6addSBiao Huang  compatible:
32ee410d51SBiao Huang    oneOf:
33ee410d51SBiao Huang      - items:
34150b6addSBiao Huang          - enum:
35150b6addSBiao Huang              - mediatek,mt2712-gmac
36150b6addSBiao Huang          - const: snps,dwmac-4.20a
37ee410d51SBiao Huang      - items:
38ee410d51SBiao Huang          - enum:
39ee410d51SBiao Huang              - mediatek,mt8195-gmac
40ee410d51SBiao Huang          - const: snps,dwmac-5.10a
41c827b7a3SJianguo Zhang      - items:
42c827b7a3SJianguo Zhang          - enum:
43c827b7a3SJianguo Zhang              - mediatek,mt8188-gmac
44c827b7a3SJianguo Zhang          - const: mediatek,mt8195-gmac
45c827b7a3SJianguo Zhang          - const: snps,dwmac-5.10a
46150b6addSBiao Huang
47150b6addSBiao Huang  clocks:
48ee410d51SBiao Huang    minItems: 5
49150b6addSBiao Huang    items:
50150b6addSBiao Huang      - description: AXI clock
51150b6addSBiao Huang      - description: APB clock
52150b6addSBiao Huang      - description: MAC Main clock
53150b6addSBiao Huang      - description: PTP clock
54150b6addSBiao Huang      - description: RMII reference clock provided by MAC
55ee410d51SBiao Huang      - description: MAC clock gate
56150b6addSBiao Huang
57150b6addSBiao Huang  clock-names:
58ee410d51SBiao Huang    minItems: 5
59150b6addSBiao Huang    items:
60150b6addSBiao Huang      - const: axi
61150b6addSBiao Huang      - const: apb
62150b6addSBiao Huang      - const: mac_main
63150b6addSBiao Huang      - const: ptp_ref
64150b6addSBiao Huang      - const: rmii_internal
65ee410d51SBiao Huang      - const: mac_cg
66150b6addSBiao Huang
670a1e19c8SRob Herring  power-domains:
680a1e19c8SRob Herring    maxItems: 1
690a1e19c8SRob Herring
70150b6addSBiao Huang  mediatek,pericfg:
71150b6addSBiao Huang    $ref: /schemas/types.yaml#/definitions/phandle
72150b6addSBiao Huang    description:
73150b6addSBiao Huang      The phandle to the syscon node that control ethernet
74150b6addSBiao Huang      interface and timing delay.
75150b6addSBiao Huang
76150b6addSBiao Huang  mediatek,tx-delay-ps:
77150b6addSBiao Huang    description:
78150b6addSBiao Huang      The internal TX clock delay (provided by this driver) in nanoseconds.
79150b6addSBiao Huang      For MT2712 RGMII interface, Allowed value need to be a multiple of 170,
80150b6addSBiao Huang      or will round down. Range 0~31*170.
81150b6addSBiao Huang      For MT2712 RMII/MII interface, Allowed value need to be a multiple of 550,
82150b6addSBiao Huang      or will round down. Range 0~31*550.
83c827b7a3SJianguo Zhang      For MT8188/MT8195 RGMII/RMII/MII interface, Allowed value need to be a multiple of 290,
84ee410d51SBiao Huang      or will round down. Range 0~31*290.
85150b6addSBiao Huang
86150b6addSBiao Huang  mediatek,rx-delay-ps:
87150b6addSBiao Huang    description:
88150b6addSBiao Huang      The internal RX clock delay (provided by this driver) in nanoseconds.
89150b6addSBiao Huang      For MT2712 RGMII interface, Allowed value need to be a multiple of 170,
90150b6addSBiao Huang      or will round down. Range 0~31*170.
91150b6addSBiao Huang      For MT2712 RMII/MII interface, Allowed value need to be a multiple of 550,
92150b6addSBiao Huang      or will round down. Range 0~31*550.
93c827b7a3SJianguo Zhang      For MT8188/MT8195 RGMII/RMII/MII interface, Allowed value need to be a multiple
94ee410d51SBiao Huang      of 290, or will round down. Range 0~31*290.
95150b6addSBiao Huang
96150b6addSBiao Huang  mediatek,rmii-rxc:
97150b6addSBiao Huang    type: boolean
98150b6addSBiao Huang    description:
99150b6addSBiao Huang      If present, indicates that the RMII reference clock, which is from external
100150b6addSBiao Huang      PHYs, is connected to RXC pin. Otherwise, is connected to TXC pin.
101150b6addSBiao Huang
102150b6addSBiao Huang  mediatek,rmii-clk-from-mac:
103150b6addSBiao Huang    type: boolean
104150b6addSBiao Huang    description:
105150b6addSBiao Huang      If present, indicates that MAC provides the RMII reference clock, which
106150b6addSBiao Huang      outputs to TXC pin only.
107150b6addSBiao Huang
108150b6addSBiao Huang  mediatek,txc-inverse:
109150b6addSBiao Huang    type: boolean
110150b6addSBiao Huang    description:
111150b6addSBiao Huang      If present, indicates that
112150b6addSBiao Huang      1. tx clock will be inversed in MII/RGMII case,
113150b6addSBiao Huang      2. tx clock inside MAC will be inversed relative to reference clock
114150b6addSBiao Huang         which is from external PHYs in RMII case, and it rarely happen.
115150b6addSBiao Huang      3. the reference clock, which outputs to TXC pin will be inversed in RMII case
116150b6addSBiao Huang         when the reference clock is from MAC.
117150b6addSBiao Huang
118150b6addSBiao Huang  mediatek,rxc-inverse:
119150b6addSBiao Huang    type: boolean
120150b6addSBiao Huang    description:
121150b6addSBiao Huang      If present, indicates that
122150b6addSBiao Huang      1. rx clock will be inversed in MII/RGMII case.
123150b6addSBiao Huang      2. reference clock will be inversed when arrived at MAC in RMII case, when
124150b6addSBiao Huang         the reference clock is from external PHYs.
125150b6addSBiao Huang      3. the inside clock, which be sent to MAC, will be inversed in RMII case when
126150b6addSBiao Huang         the reference clock is from MAC.
127150b6addSBiao Huang
128ee410d51SBiao Huang  mediatek,mac-wol:
129ee410d51SBiao Huang    type: boolean
130ee410d51SBiao Huang    description:
131ee410d51SBiao Huang      If present, indicates that MAC supports WOL(Wake-On-LAN), and MAC WOL will be enabled.
132*47aab533SBjorn Helgaas      Otherwise, PHY WOL is preferred.
133ee410d51SBiao Huang
134150b6addSBiao Huangrequired:
135150b6addSBiao Huang  - compatible
136150b6addSBiao Huang  - reg
137150b6addSBiao Huang  - interrupts
138150b6addSBiao Huang  - interrupt-names
139150b6addSBiao Huang  - clocks
140150b6addSBiao Huang  - clock-names
141150b6addSBiao Huang  - phy-mode
142150b6addSBiao Huang  - mediatek,pericfg
143150b6addSBiao Huang
144150b6addSBiao HuangunevaluatedProperties: false
145150b6addSBiao Huang
146150b6addSBiao Huangexamples:
147150b6addSBiao Huang  - |
148150b6addSBiao Huang    #include <dt-bindings/clock/mt2712-clk.h>
149150b6addSBiao Huang    #include <dt-bindings/gpio/gpio.h>
150150b6addSBiao Huang    #include <dt-bindings/interrupt-controller/arm-gic.h>
151150b6addSBiao Huang    #include <dt-bindings/interrupt-controller/irq.h>
152150b6addSBiao Huang    #include <dt-bindings/power/mt2712-power.h>
153150b6addSBiao Huang
154150b6addSBiao Huang    eth: ethernet@1101c000 {
155150b6addSBiao Huang        compatible = "mediatek,mt2712-gmac", "snps,dwmac-4.20a";
156150b6addSBiao Huang        reg = <0x1101c000 0x1300>;
157150b6addSBiao Huang        interrupts = <GIC_SPI 237 IRQ_TYPE_LEVEL_LOW>;
158150b6addSBiao Huang        interrupt-names = "macirq";
159150b6addSBiao Huang        phy-mode = "rgmii-rxid";
160150b6addSBiao Huang        mac-address = [00 55 7b b5 7d f7];
161150b6addSBiao Huang        clock-names = "axi",
162150b6addSBiao Huang                      "apb",
163150b6addSBiao Huang                      "mac_main",
164150b6addSBiao Huang                      "ptp_ref",
165150b6addSBiao Huang                      "rmii_internal";
166150b6addSBiao Huang        clocks = <&pericfg CLK_PERI_GMAC>,
167150b6addSBiao Huang                 <&pericfg CLK_PERI_GMAC_PCLK>,
168150b6addSBiao Huang                 <&topckgen CLK_TOP_ETHER_125M_SEL>,
169150b6addSBiao Huang                 <&topckgen CLK_TOP_ETHER_50M_SEL>,
170150b6addSBiao Huang                 <&topckgen CLK_TOP_ETHER_50M_RMII_SEL>;
171150b6addSBiao Huang        assigned-clocks = <&topckgen CLK_TOP_ETHER_125M_SEL>,
172150b6addSBiao Huang                          <&topckgen CLK_TOP_ETHER_50M_SEL>,
173150b6addSBiao Huang                          <&topckgen CLK_TOP_ETHER_50M_RMII_SEL>;
174150b6addSBiao Huang        assigned-clock-parents = <&topckgen CLK_TOP_ETHERPLL_125M>,
175150b6addSBiao Huang                                 <&topckgen CLK_TOP_APLL1_D3>,
176150b6addSBiao Huang                                 <&topckgen CLK_TOP_ETHERPLL_50M>;
177150b6addSBiao Huang        power-domains = <&scpsys MT2712_POWER_DOMAIN_AUDIO>;
178150b6addSBiao Huang        mediatek,pericfg = <&pericfg>;
179150b6addSBiao Huang        mediatek,tx-delay-ps = <1530>;
180150b6addSBiao Huang        snps,txpbl = <1>;
181150b6addSBiao Huang        snps,rxpbl = <1>;
182150b6addSBiao Huang        snps,reset-gpio = <&pio 87 GPIO_ACTIVE_LOW>;
183150b6addSBiao Huang        snps,reset-delays-us = <0 10000 10000>;
184150b6addSBiao Huang    };
185