blob: ee7a65b528cdac79af1b2031d2d0bcc758fa2773 [file] [log] [blame]
Tom Rini53633a82024-02-29 12:33:36 -05001# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2# Copyright 2019 BayLibre, SAS
3%YAML 1.2
4---
5$id: http://devicetree.org/schemas/net/amlogic,meson-dwmac.yaml#
6$schema: http://devicetree.org/meta-schemas/core.yaml#
7
8title: Amlogic Meson DWMAC Ethernet controller
9
10maintainers:
11 - Neil Armstrong <neil.armstrong@linaro.org>
12 - Martin Blumenstingl <martin.blumenstingl@googlemail.com>
13
14# We need a select here so we don't match all nodes with 'snps,dwmac'
15select:
16 properties:
17 compatible:
18 contains:
19 enum:
20 - amlogic,meson6-dwmac
21 - amlogic,meson8b-dwmac
22 - amlogic,meson8m2-dwmac
23 - amlogic,meson-gxbb-dwmac
24 - amlogic,meson-axg-dwmac
25 - amlogic,meson-g12a-dwmac
26 required:
27 - compatible
28
29allOf:
30 - $ref: snps,dwmac.yaml#
31 - if:
32 properties:
33 compatible:
34 contains:
35 enum:
36 - amlogic,meson8b-dwmac
37 - amlogic,meson8m2-dwmac
38 - amlogic,meson-gxbb-dwmac
39 - amlogic,meson-axg-dwmac
40 - amlogic,meson-g12a-dwmac
41
42 then:
43 properties:
44 clocks:
45 minItems: 3
46 items:
47 - description: GMAC main clock
48 - description: First parent clock of the internal mux
49 - description: Second parent clock of the internal mux
50 - description: The clock which drives the timing adjustment logic
51
52 clock-names:
53 minItems: 3
54 items:
55 - const: stmmaceth
56 - const: clkin0
57 - const: clkin1
58 - const: timing-adjustment
59
60 amlogic,tx-delay-ns:
61 $ref: /schemas/types.yaml#/definitions/uint32
62 description:
63 The internal RGMII TX clock delay (provided by this driver) in
64 nanoseconds. Allowed values are 0ns, 2ns, 4ns, 6ns.
65 When phy-mode is set to "rgmii" then the TX delay should be
66 explicitly configured. When not configured a fallback of 2ns is
67 used. When the phy-mode is set to either "rgmii-id" or "rgmii-txid"
68 the TX clock delay is already provided by the PHY. In that case
69 this property should be set to 0ns (which disables the TX clock
70 delay in the MAC to prevent the clock from going off because both
71 PHY and MAC are adding a delay).
72 Any configuration is ignored when the phy-mode is set to "rmii".
73
74 amlogic,rx-delay-ns:
75 deprecated: true
76 enum:
77 - 0
78 - 2
79 default: 0
80 description:
81 The internal RGMII RX clock delay in nanoseconds. Deprecated, use
82 rx-internal-delay-ps instead.
83
84 rx-internal-delay-ps:
85 default: 0
86
87 - if:
88 properties:
89 compatible:
90 contains:
91 enum:
92 - amlogic,meson8b-dwmac
93 - amlogic,meson8m2-dwmac
94 - amlogic,meson-gxbb-dwmac
95 - amlogic,meson-axg-dwmac
96 then:
97 properties:
98 rx-internal-delay-ps:
99 enum:
100 - 0
101 - 2000
102
103 - if:
104 properties:
105 compatible:
106 contains:
107 enum:
108 - amlogic,meson-g12a-dwmac
109 then:
110 properties:
111 rx-internal-delay-ps:
112 enum:
113 - 0
114 - 200
115 - 400
116 - 600
117 - 800
118 - 1000
119 - 1200
120 - 1400
121 - 1600
122 - 1800
123 - 2000
124 - 2200
125 - 2400
126 - 2600
127 - 2800
128 - 3000
129
130properties:
131 compatible:
132 additionalItems: true
133 maxItems: 3
134 items:
135 - enum:
136 - amlogic,meson6-dwmac
137 - amlogic,meson8b-dwmac
138 - amlogic,meson8m2-dwmac
139 - amlogic,meson-gxbb-dwmac
140 - amlogic,meson-axg-dwmac
141 - amlogic,meson-g12a-dwmac
142 contains:
143 enum:
144 - snps,dwmac-3.70a
145 - snps,dwmac
146
147 reg:
148 items:
149 - description:
150 The first register range should be the one of the DWMAC controller
151 - description:
152 The second range is is for the Amlogic specific configuration
153 (for example the PRG_ETHERNET register range on Meson8b and newer)
154
155required:
156 - compatible
157 - reg
158 - interrupts
159 - interrupt-names
160 - clocks
161 - clock-names
162 - phy-mode
163
164unevaluatedProperties: false
165
166examples:
167 - |
168 ethmac: ethernet@c9410000 {
169 compatible = "amlogic,meson-gxbb-dwmac", "snps,dwmac";
170 reg = <0xc9410000 0x10000>, <0xc8834540 0x8>;
171 interrupts = <8>;
172 interrupt-names = "macirq";
173 clocks = <&clk_eth>, <&clk_fclk_div2>, <&clk_mpll2>, <&clk_fclk_div2>;
174 clock-names = "stmmaceth", "clkin0", "clkin1", "timing-adjustment";
175 phy-mode = "rgmii";
176 };