blob: 3ef371ca254e816c9c4be836e0c04b4bca20f584 [file] [log] [blame]
Tom Rini53633a82024-02-29 12:33:36 -05001// SPDX-License-Identifier: (GPL-2.0 OR MIT)
2/*
3 * Copyright (C) 2021 MediaTek Inc.
4 * Author: Sam.Shih <sam.shih@mediatek.com>
5 */
6
7/dts-v1/;
8#include <dt-bindings/pinctrl/mt65xx.h>
9
10#include "mt7986a.dtsi"
11
12/ {
13 model = "MediaTek MT7986a RFB";
14 chassis-type = "embedded";
15 compatible = "mediatek,mt7986a-rfb", "mediatek,mt7986a";
16
17 aliases {
18 serial0 = &uart0;
19 };
20
21 chosen {
22 stdout-path = "serial0:115200n8";
23 };
24
25 memory@40000000 {
26 device_type = "memory";
27 reg = <0 0x40000000 0 0x40000000>;
28 };
29
30 reg_1p8v: regulator-1p8v {
31 compatible = "regulator-fixed";
32 regulator-name = "fixed-1.8V";
33 regulator-min-microvolt = <1800000>;
34 regulator-max-microvolt = <1800000>;
35 regulator-boot-on;
36 regulator-always-on;
37 };
38
39 reg_3p3v: regulator-3p3v {
40 compatible = "regulator-fixed";
41 regulator-name = "fixed-3.3V";
42 regulator-min-microvolt = <3300000>;
43 regulator-max-microvolt = <3300000>;
44 regulator-boot-on;
45 regulator-always-on;
46 };
47};
48
49&crypto {
50 status = "okay";
51};
52
53&eth {
54 status = "okay";
55
56 gmac0: mac@0 {
57 compatible = "mediatek,eth-mac";
58 reg = <0>;
59 phy-mode = "2500base-x";
60
61 fixed-link {
62 speed = <2500>;
63 full-duplex;
64 pause;
65 };
66 };
67
68 mdio: mdio-bus {
69 #address-cells = <1>;
70 #size-cells = <0>;
71 };
72};
73
74&mdio {
75 switch: switch@0 {
76 compatible = "mediatek,mt7531";
77 reg = <31>;
78 reset-gpios = <&pio 5 0>;
79 };
80};
81
82&mmc0 {
83 pinctrl-names = "default", "state_uhs";
84 pinctrl-0 = <&mmc0_pins_default>;
85 pinctrl-1 = <&mmc0_pins_uhs>;
86 bus-width = <8>;
87 max-frequency = <200000000>;
88 cap-mmc-highspeed;
89 mmc-hs200-1_8v;
90 mmc-hs400-1_8v;
91 hs400-ds-delay = <0x14014>;
92 vmmc-supply = <&reg_3p3v>;
93 vqmmc-supply = <&reg_1p8v>;
94 non-removable;
95 no-sd;
96 no-sdio;
97};
98
99&pcie {
100 pinctrl-names = "default";
101 pinctrl-0 = <&pcie_pins>;
102 status = "okay";
103};
104
105&pcie_phy {
106 status = "okay";
107};
108
109&pio {
110 mmc0_pins_default: mmc0-pins {
111 mux {
112 function = "emmc";
113 groups = "emmc_51";
114 };
115 conf-cmd-dat {
116 pins = "EMMC_DATA_0", "EMMC_DATA_1", "EMMC_DATA_2",
117 "EMMC_DATA_3", "EMMC_DATA_4", "EMMC_DATA_5",
118 "EMMC_DATA_6", "EMMC_DATA_7", "EMMC_CMD";
119 input-enable;
120 drive-strength = <4>;
121 bias-pull-up = <MTK_PUPD_SET_R1R0_01>; /* pull-up 10K */
122 };
123 conf-clk {
124 pins = "EMMC_CK";
125 drive-strength = <6>;
126 bias-pull-down = <MTK_PUPD_SET_R1R0_10>; /* pull-down 50K */
127 };
128 conf-ds {
129 pins = "EMMC_DSL";
130 bias-pull-down = <MTK_PUPD_SET_R1R0_10>; /* pull-down 50K */
131 };
132 conf-rst {
133 pins = "EMMC_RSTB";
134 drive-strength = <4>;
135 bias-pull-up = <MTK_PUPD_SET_R1R0_01>; /* pull-up 10K */
136 };
137 };
138
139 mmc0_pins_uhs: mmc0-uhs-pins {
140 mux {
141 function = "emmc";
142 groups = "emmc_51";
143 };
144 conf-cmd-dat {
145 pins = "EMMC_DATA_0", "EMMC_DATA_1", "EMMC_DATA_2",
146 "EMMC_DATA_3", "EMMC_DATA_4", "EMMC_DATA_5",
147 "EMMC_DATA_6", "EMMC_DATA_7", "EMMC_CMD";
148 input-enable;
149 drive-strength = <4>;
150 bias-pull-up = <MTK_PUPD_SET_R1R0_01>; /* pull-up 10K */
151 };
152 conf-clk {
153 pins = "EMMC_CK";
154 drive-strength = <6>;
155 bias-pull-down = <MTK_PUPD_SET_R1R0_10>; /* pull-down 50K */
156 };
157 conf-ds {
158 pins = "EMMC_DSL";
159 bias-pull-down = <MTK_PUPD_SET_R1R0_10>; /* pull-down 50K */
160 };
161 conf-rst {
162 pins = "EMMC_RSTB";
163 drive-strength = <4>;
164 bias-pull-up = <MTK_PUPD_SET_R1R0_01>; /* pull-up 10K */
165 };
166 };
167
168 pcie_pins: pcie-pins {
169 mux {
170 function = "pcie";
171 groups = "pcie_clk", "pcie_wake", "pcie_pereset";
172 };
173 };
174
175 spi_flash_pins: spi-flash-pins {
176 mux {
177 function = "spi";
178 groups = "spi0", "spi0_wp_hold";
179 };
180 };
181
182 spic_pins: spic-pins {
183 mux {
184 function = "spi";
185 groups = "spi1_2";
186 };
187 };
188
189 uart1_pins: uart1-pins {
190 mux {
191 function = "uart";
192 groups = "uart1";
193 };
194 };
195
196 uart2_pins: uart2-pins {
197 mux {
198 function = "uart";
199 groups = "uart2";
200 };
201 };
202
203 wf_2g_5g_pins: wf-2g-5g-pins {
204 mux {
205 function = "wifi";
206 groups = "wf_2g", "wf_5g";
207 };
208 conf {
209 pins = "WF0_HB1", "WF0_HB2", "WF0_HB3", "WF0_HB4",
210 "WF0_HB0", "WF0_HB0_B", "WF0_HB5", "WF0_HB6",
211 "WF0_HB7", "WF0_HB8", "WF0_HB9", "WF0_HB10",
212 "WF0_TOP_CLK", "WF0_TOP_DATA", "WF1_HB1",
213 "WF1_HB2", "WF1_HB3", "WF1_HB4", "WF1_HB0",
214 "WF1_HB5", "WF1_HB6", "WF1_HB7", "WF1_HB8",
215 "WF1_TOP_CLK", "WF1_TOP_DATA";
216 drive-strength = <4>;
217 };
218 };
219
220 wf_dbdc_pins: wf-dbdc-pins {
221 mux {
222 function = "wifi";
223 groups = "wf_dbdc";
224 };
225 conf {
226 pins = "WF0_HB1", "WF0_HB2", "WF0_HB3", "WF0_HB4",
227 "WF0_HB0", "WF0_HB0_B", "WF0_HB5", "WF0_HB6",
228 "WF0_HB7", "WF0_HB8", "WF0_HB9", "WF0_HB10",
229 "WF0_TOP_CLK", "WF0_TOP_DATA";
230 drive-strength = <4>;
231 };
232 };
233};
234
235&spi0 {
236 pinctrl-names = "default";
237 pinctrl-0 = <&spi_flash_pins>;
238 cs-gpios = <0>, <0>;
239 status = "okay";
240 spi_nand: spi_nand@0 {
241 compatible = "spi-nand";
242 reg = <0>;
243 spi-max-frequency = <10000000>;
244 spi-tx-buswidth = <4>;
245 spi-rx-buswidth = <4>;
246 };
247};
248
249&spi1 {
250 pinctrl-names = "default";
251 pinctrl-0 = <&spic_pins>;
252 cs-gpios = <0>, <0>;
253 status = "okay";
254};
255
256&ssusb {
257 status = "okay";
258};
259
260&switch {
261 ports {
262 #address-cells = <1>;
263 #size-cells = <0>;
264
265 port@0 {
266 reg = <0>;
267 label = "lan0";
268 };
269
270 port@1 {
271 reg = <1>;
272 label = "lan1";
273 };
274
275 port@2 {
276 reg = <2>;
277 label = "lan2";
278 };
279
280 port@3 {
281 reg = <3>;
282 label = "lan3";
283 };
284
285 port@4 {
286 reg = <4>;
287 label = "lan4";
288 };
289
290 port@6 {
291 reg = <6>;
292 label = "cpu";
293 ethernet = <&gmac0>;
294 phy-mode = "2500base-x";
295
296 fixed-link {
297 speed = <2500>;
298 full-duplex;
299 pause;
300 };
301 };
302 };
303};
304
305&uart0 {
306 status = "okay";
307};
308
309&uart1 {
310 pinctrl-names = "default";
311 pinctrl-0 = <&uart1_pins>;
312 status = "okay";
313};
314
315&uart2 {
316 pinctrl-names = "default";
317 pinctrl-0 = <&uart2_pins>;
318 status = "okay";
319};
320
321&usb_phy {
322 status = "okay";
323};
324
325&wifi {
326 status = "okay";
327 pinctrl-names = "default", "dbdc";
328 pinctrl-0 = <&wf_2g_5g_pins>;
329 pinctrl-1 = <&wf_dbdc_pins>;
330};