blob: 2d57c6f5709b57871b96d5bd4576c98888fb7018 [file] [log] [blame]
developerf596c1a2023-07-19 17:17:49 +08001// SPDX-License-Identifier: GPL-2.0
2/*
3 * Copyright (c) 2022 MediaTek Inc.
4 * Author: Sam Shih <sam.shih@mediatek.com>
5 */
6
7#include <dt-bindings/interrupt-controller/irq.h>
8#include <dt-bindings/interrupt-controller/arm-gic.h>
9#include <dt-bindings/clock/mt7988-clk.h>
10#include <dt-bindings/reset/mt7988-reset.h>
11#include <dt-bindings/gpio/gpio.h>
developer4c813af2024-01-22 10:07:54 +080012#include <dt-bindings/pinctrl/mt65xx.h>
Frank Wunderlich7950d172023-08-03 20:00:01 +020013#include <dt-bindings/phy/phy.h>
developerf596c1a2023-07-19 17:17:49 +080014
15/ {
16 compatible = "mediatek,mt7988-rfb";
17 interrupt-parent = <&gic>;
18 #address-cells = <2>;
19 #size-cells = <2>;
20
21 cpus {
22 #address-cells = <1>;
23 #size-cells = <0>;
24
25 cpu0: cpu@0 {
26 device_type = "cpu";
27 compatible = "arm,cortex-a73";
28 reg = <0x0>;
29 mediatek,hwver = <&hwver>;
30 };
31
32 cpu1: cpu@1 {
33 device_type = "cpu";
34 compatible = "arm,cortex-a73";
35 reg = <0x1>;
36 mediatek,hwver = <&hwver>;
37 };
38
39 cpu2: cpu@2 {
40 device_type = "cpu";
41 compatible = "arm,cortex-a73";
42 reg = <0x2>;
43 mediatek,hwver = <&hwver>;
44 };
45
46 cpu3: cpu@3 {
47 device_type = "cpu";
48 compatible = "arm,cortex-a73";
49 reg = <0x3>;
50 mediatek,hwver = <&hwver>;
51 };
52 };
53
54 system_clk: dummy40m {
55 compatible = "fixed-clock";
56 clock-frequency = <40000000>;
57 #clock-cells = <0>;
58 };
59
60 spi_clk: dummy208m {
61 compatible = "fixed-clock";
62 clock-frequency = <208000000>;
63 #clock-cells = <0>;
64 };
65
66 hwver: hwver {
67 compatible = "mediatek,hwver", "syscon";
68 reg = <0 0x8000000 0 0x1000>;
69 };
70
71 timer {
72 compatible = "arm,armv8-timer";
73 interrupt-parent = <&gic>;
74 clock-frequency = <13000000>;
75 interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW>,
76 <GIC_PPI 14 IRQ_TYPE_LEVEL_LOW>,
77 <GIC_PPI 11 IRQ_TYPE_LEVEL_LOW>,
78 <GIC_PPI 10 IRQ_TYPE_LEVEL_LOW>;
79 };
80
81 watchdog: watchdog@1001c000 {
82 compatible = "mediatek,mt7622-wdt",
83 "mediatek,mt6589-wdt",
84 "syscon";
85 reg = <0 0x1001c000 0 0x1000>;
86 interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>;
87 #reset-cells = <1>;
88 };
89
90 gic: interrupt-controller@c000000 {
91 compatible = "arm,gic-v3";
92 #interrupt-cells = <3>;
93 interrupt-parent = <&gic>;
94 interrupt-controller;
95 reg = <0 0x0c000000 0 0x40000>, /* GICD */
96 <0 0x0c080000 0 0x200000>; /* GICR */
97 interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
98 };
99
developerf596c1a2023-07-19 17:17:49 +0800100 apmixedsys: apmixedsys@1001e000 {
101 compatible = "mediatek,mt7988-fixed-plls", "syscon";
102 reg = <0 0x1001e000 0 0x1000>;
103 #clock-cells = <1>;
104 };
105
106 topckgen: topckgen@1001b000 {
107 compatible = "mediatek,mt7988-topckgen", "syscon";
108 reg = <0 0x1001b000 0 0x1000>;
109 clock-parent = <&apmixedsys>;
110 #clock-cells = <1>;
111 };
112
Christian Marangi3572ee52025-01-27 14:40:42 +0100113 pio: pinctrl@1001f000 {
developerf596c1a2023-07-19 17:17:49 +0800114 compatible = "mediatek,mt7988-pinctrl";
115 reg = <0 0x1001f000 0 0x1000>,
116 <0 0x11c10000 0 0x1000>,
117 <0 0x11d00000 0 0x1000>,
118 <0 0x11d20000 0 0x1000>,
119 <0 0x11e00000 0 0x1000>,
120 <0 0x11f00000 0 0x1000>,
121 <0 0x1000b000 0 0x1000>;
Christian Marangif3ce4d32025-01-27 14:40:41 +0100122 reg-names = "gpio", "iocfg_tr", "iocfg_br",
123 "iocfg_rb", "iocfg_lb", "iocfg_tl",
developerf596c1a2023-07-19 17:17:49 +0800124 "eint";
Christian Marangi3572ee52025-01-27 14:40:42 +0100125 gpio-controller;
126 #gpio-cells = <2>;
developerf596c1a2023-07-19 17:17:49 +0800127 };
128
129 sgmiisys0: syscon@10060000 {
130 compatible = "mediatek,mt7988-sgmiisys_0", "syscon";
131 reg = <0 0x10060000 0 0x1000>;
132 clock-parent = <&topckgen>;
133 #clock-cells = <1>;
134 };
135
136 sgmiisys1: syscon@10070000 {
137 compatible = "mediatek,mt7988-sgmiisys_1", "syscon";
138 reg = <0 0x10070000 0 0x1000>;
139 clock-parent = <&topckgen>;
140 #clock-cells = <1>;
141 };
142
143 usxgmiisys0: syscon@10080000 {
144 compatible = "mediatek,mt7988-usxgmiisys_0", "syscon";
145 reg = <0 0x10080000 0 0x1000>;
146 clock-parent = <&topckgen>;
147 #clock-cells = <1>;
148 };
149
150 usxgmiisys1: syscon@10081000 {
151 compatible = "mediatek,mt7988-usxgmiisys_1", "syscon";
152 reg = <0 0x10081000 0 0x1000>;
153 clock-parent = <&topckgen>;
154 #clock-cells = <1>;
155 };
156
Frank Wunderlich7950d172023-08-03 20:00:01 +0200157 dummy_clk: dummy12m {
158 compatible = "fixed-clock";
159 clock-frequency = <12000000>;
160 #clock-cells = <0>;
161 /* must need this line, or uart uanable to get dummy_clk */
162 bootph-all;
163 };
164
165 xhci1: xhci@11200000 {
166 compatible = "mediatek,mt7988-xhci",
167 "mediatek,mtk-xhci";
168 reg = <0 0x11200000 0 0x2e00>,
169 <0 0x11203e00 0 0x0100>;
170 reg-names = "mac", "ippc";
171 interrupts = <GIC_SPI 172 IRQ_TYPE_LEVEL_HIGH>;
172 phys = <&tphyu2port0 PHY_TYPE_USB2>,
173 <&tphyu3port0 PHY_TYPE_USB3>;
174 clocks = <&dummy_clk>,
175 <&dummy_clk>,
176 <&dummy_clk>,
177 <&dummy_clk>,
178 <&dummy_clk>;
179 clock-names = "sys_ck",
180 "xhci_ck",
181 "ref_ck",
182 "mcu_ck",
183 "dma_ck";
184 #address-cells = <2>;
185 #size-cells = <2>;
186 status = "okay";
187 };
188
developer8e4a8ca2025-01-17 17:18:17 +0800189 pcie2: pcie@11280000 {
190 compatible = "mediatek,mt7988-pcie",
191 "mediatek,mt7986-pcie",
192 "mediatek,mt8192-pcie";
193 device_type = "pci";
194 #address-cells = <3>;
195 #size-cells = <2>;
196 reg = <0 0x11280000 0 0x2000>;
197 reg-names = "pcie-mac";
198 linux,pci-domain = <3>;
199 interrupts = <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>;
200 bus-range = <0x00 0xff>;
201 ranges = <0x82000000 0 0x20200000 0 0x20200000 0 0x07e00000>;
202 clocks = <&infracfg CLK_INFRA_PCIE_PIPE_P2>,
203 <&infracfg CLK_INFRA_PCIE_GFMUX_TL_P2>,
204 <&infracfg CLK_INFRA_PCIE_PERI_26M_CK_P2>,
205 <&infracfg CLK_INFRA_133M_PCIE_CK_P2>;
206 clock-names = "pl_250m", "tl_26m", "peri_26m",
207 "top_133m";
208 phys = <&xphyu3port0 PHY_TYPE_PCIE>;
209 phy-names = "pcie-phy";
210
211 status = "disabled";
212
213 #interrupt-cells = <1>;
214 interrupt-map-mask = <0 0 0 0x7>;
215 interrupt-map = <0 0 0 1 &pcie_intc2 0>,
216 <0 0 0 2 &pcie_intc2 1>,
217 <0 0 0 3 &pcie_intc2 2>,
218 <0 0 0 4 &pcie_intc2 3>;
219
220 pcie_intc2: interrupt-controller {
221 #address-cells = <0>;
222 #interrupt-cells = <1>;
223 interrupt-controller;
224 };
225 };
226
227 pcie3: pcie@11290000 {
228 compatible = "mediatek,mt7988-pcie",
229 "mediatek,mt7986-pcie",
230 "mediatek,mt8192-pcie";
231 device_type = "pci";
232 #address-cells = <3>;
233 #size-cells = <2>;
234 reg = <0 0x11290000 0 0x2000>;
235 reg-names = "pcie-mac";
236 linux,pci-domain = <2>;
237 interrupts = <GIC_SPI 171 IRQ_TYPE_LEVEL_HIGH>;
238 bus-range = <0x00 0xff>;
239 ranges = <0x82000000 0 0x28200000 0 0x28200000 0 0x07e00000>;
240 clocks = <&infracfg CLK_INFRA_PCIE_PIPE_P3>,
241 <&infracfg CLK_INFRA_PCIE_GFMUX_TL_P3>,
242 <&infracfg CLK_INFRA_PCIE_PERI_26M_CK_P3>,
243 <&infracfg CLK_INFRA_133M_PCIE_CK_P3>;
244 clock-names = "pl_250m", "tl_26m", "peri_26m",
245 "top_133m";
246 use-dedicated-phy;
247
248 status = "disabled";
249
250 #interrupt-cells = <1>;
251 interrupt-map-mask = <0 0 0 0x7>;
252 interrupt-map = <0 0 0 1 &pcie_intc3 0>,
253 <0 0 0 2 &pcie_intc3 1>,
254 <0 0 0 3 &pcie_intc3 2>,
255 <0 0 0 4 &pcie_intc3 3>;
256 pcie_intc3: interrupt-controller {
257 #address-cells = <0>;
258 #interrupt-cells = <1>;
259 interrupt-controller;
260 };
261 };
262
263 pcie0: pcie@11300000 {
264 compatible = "mediatek,mt7988-pcie",
265 "mediatek,mt7986-pcie",
266 "mediatek,mt8192-pcie";
267 device_type = "pci";
268 #address-cells = <3>;
269 #size-cells = <2>;
270 reg = <0 0x11300000 0 0x2000>;
271 reg-names = "pcie-mac";
272 linux,pci-domain = <0>;
273 interrupts = <GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>;
274 bus-range = <0x00 0xff>;
275 ranges = <0x82000000 0 0x30200000 0 0x30200000 0 0x07e00000>;
276 clocks = <&infracfg CLK_INFRA_PCIE_PIPE_P0>,
277 <&infracfg CLK_INFRA_PCIE_GFMUX_TL_P0>,
278 <&infracfg CLK_INFRA_PCIE_PERI_26M_CK_P0>,
279 <&infracfg CLK_INFRA_133M_PCIE_CK_P0>;
280 clock-names = "pl_250m", "tl_26m", "peri_26m",
281 "top_133m";
282 use-dedicated-phy;
283
284 status = "disabled";
285
286 #interrupt-cells = <1>;
287 interrupt-map-mask = <0 0 0 0x7>;
288 interrupt-map = <0 0 0 1 &pcie_intc0 0>,
289 <0 0 0 2 &pcie_intc0 1>,
290 <0 0 0 3 &pcie_intc0 2>,
291 <0 0 0 4 &pcie_intc0 3>;
292 pcie_intc0: interrupt-controller {
293 #address-cells = <0>;
294 #interrupt-cells = <1>;
295 interrupt-controller;
296 };
297 };
298
299 pcie1: pcie@11310000 {
300 compatible = "mediatek,mt7988-pcie",
301 "mediatek,mt7986-pcie",
302 "mediatek,mt8192-pcie";
303 device_type = "pci";
304 #address-cells = <3>;
305 #size-cells = <2>;
306 reg = <0 0x11310000 0 0x2000>;
307 reg-names = "pcie-mac";
308 linux,pci-domain = <1>;
309 interrupts = <GIC_SPI 169 IRQ_TYPE_LEVEL_HIGH>;
310 bus-range = <0x00 0xff>;
311 ranges = <0x82000000 0 0x38200000 0 0x38200000 0 0x07e00000>;
312 clocks = <&infracfg CLK_INFRA_PCIE_PIPE_P1>,
313 <&infracfg CLK_INFRA_PCIE_GFMUX_TL_P1>,
314 <&infracfg CLK_INFRA_PCIE_PERI_26M_CK_P1>,
315 <&infracfg CLK_INFRA_133M_PCIE_CK_P1>;
316 clock-names = "pl_250m", "tl_26m", "peri_26m",
317 "top_133m";
318 use-dedicated-phy;
319
320 status = "disabled";
321
322 #interrupt-cells = <1>;
323 interrupt-map-mask = <0 0 0 0x7>;
324 interrupt-map = <0 0 0 1 &pcie_intc1 0>,
325 <0 0 0 2 &pcie_intc1 1>,
326 <0 0 0 3 &pcie_intc1 2>,
327 <0 0 0 4 &pcie_intc1 3>;
328 pcie_intc1: interrupt-controller {
329 #address-cells = <0>;
330 #interrupt-cells = <1>;
331 interrupt-controller;
332 };
333 };
334
Frank Wunderlich7950d172023-08-03 20:00:01 +0200335 usbtphy: usb-phy@11c50000 {
336 compatible = "mediatek,mt7988",
337 "mediatek,generic-tphy-v2";
338 #address-cells = <2>;
339 #size-cells = <2>;
340 ranges;
341 status = "okay";
342
343 tphyu2port0: usb-phy@11c50000 {
344 reg = <0 0x11c50000 0 0x700>;
345 clocks = <&dummy_clk>;
346 clock-names = "ref";
347 #phy-cells = <1>;
348 status = "okay";
349 };
350
351 tphyu3port0: usb-phy@11c50700 {
352 reg = <0 0x11c50700 0 0x900>;
353 clocks = <&dummy_clk>;
354 clock-names = "ref";
355 #phy-cells = <1>;
356 mediatek,usb3-pll-ssc-delta;
357 mediatek,usb3-pll-ssc-delta1;
358 status = "okay";
359 };
360 };
361
developer8e4a8ca2025-01-17 17:18:17 +0800362 xphy: xphy@11e10000 {
363 compatible = "mediatek,mt7988", "mediatek,xsphy";
364 #address-cells = <2>;
365 #size-cells = <2>;
366 ranges;
367 status = "disabled";
368
369 xphyu3port0: usb-phy@11e13000 {
370 reg = <0 0x11e13400 0 0x500>;
371 clocks = <&dummy_clk>;
372 clock-names = "ref";
373 #phy-cells = <1>;
374 status = "okay";
375 };
376 };
377
developerf596c1a2023-07-19 17:17:49 +0800378 xfi_pextp0: syscon@11f20000 {
379 compatible = "mediatek,mt7988-xfi_pextp_0", "syscon";
380 reg = <0 0x11f20000 0 0x10000>;
381 clock-parent = <&topckgen>;
382 #clock-cells = <1>;
383 };
384
385 xfi_pextp1: syscon@11f30000 {
386 compatible = "mediatek,mt7988-xfi_pextp_1", "syscon";
387 reg = <0 0x11f30000 0 0x10000>;
388 clock-parent = <&topckgen>;
389 #clock-cells = <1>;
390 };
391
392 xfi_pll: syscon@11f40000 {
393 compatible = "mediatek,mt7988-xfi_pll", "syscon";
394 reg = <0 0x11f40000 0 0x1000>;
395 clock-parent = <&topckgen>;
396 #clock-cells = <1>;
397 };
398
399 topmisc: topmisc@11d10000 {
400 compatible = "mediatek,mt7988-topmisc", "syscon",
401 "mediatek,mt7988-power-controller";
402 reg = <0 0x11d10000 0 0x10000>;
403 clock-parent = <&topckgen>;
404 #clock-cells = <1>;
405 };
406
Christian Marangi826afb72024-08-03 10:33:01 +0200407 infracfg: infracfg@10001000 {
developerf596c1a2023-07-19 17:17:49 +0800408 compatible = "mediatek,mt7988-infracfg", "syscon";
409 reg = <0 0x10001000 0 0x1000>;
410 clock-parent = <&topckgen>;
411 #clock-cells = <1>;
412 };
413
414 uart0: serial@11000000 {
415 compatible = "mediatek,hsuart";
416 reg = <0 0x11000000 0 0x100>;
417 interrupts = <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>;
Christian Marangie4bfc442024-08-03 10:33:02 +0200418 clocks = <&infracfg CLK_INFRA_52M_UART0_CK>;
419 assigned-clocks = <&topckgen CLK_TOP_UART_SEL>,
420 <&infracfg CLK_INFRA_MUX_UART0_SEL>;
421 assigned-clock-parents = <&topckgen CLK_TOP_XTAL>,
422 <&topckgen CLK_TOP_UART_SEL>;
developerf596c1a2023-07-19 17:17:49 +0800423 status = "disabled";
424 };
425
426 uart1: serial@11000100 {
427 compatible = "mediatek,hsuart";
428 reg = <0 0x11000100 0 0x100>;
429 interrupts = <GIC_SPI 124 IRQ_TYPE_LEVEL_HIGH>;
Christian Marangie4bfc442024-08-03 10:33:02 +0200430 clocks = <&infracfg CLK_INFRA_52M_UART1_CK>;
431 assigned-clocks = <&topckgen CLK_TOP_UART_SEL>,
432 <&infracfg CLK_INFRA_MUX_UART1_SEL>;
433 assigned-clock-parents = <&topckgen CLK_TOP_XTAL>,
434 <&topckgen CLK_TOP_UART_SEL>;
developerf596c1a2023-07-19 17:17:49 +0800435 status = "disabled";
436 };
437
438 uart2: serial@11000200 {
439 compatible = "mediatek,hsuart";
440 reg = <0 0x11000200 0 0x100>;
441 interrupts = <GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>;
Christian Marangie4bfc442024-08-03 10:33:02 +0200442 clocks = <&infracfg CLK_INFRA_52M_UART2_CK>;
443 assigned-clocks = <&topckgen CLK_TOP_UART_SEL>,
444 <&infracfg CLK_INFRA_MUX_UART2_SEL>;
445 assigned-clock-parents = <&topckgen CLK_TOP_XTAL>,
446 <&topckgen CLK_TOP_UART_SEL>;
developerf596c1a2023-07-19 17:17:49 +0800447 status = "disabled";
448 };
449
450 i2c0: i2c@11003000 {
451 compatible = "mediatek,mt7988-i2c",
452 "mediatek,mt7981-i2c";
453 reg = <0 0x11003000 0 0x1000>,
454 <0 0x10217080 0 0x80>;
455 interrupts = <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>;
456 clock-div = <1>;
Christian Marangie4bfc442024-08-03 10:33:02 +0200457 clocks = <&infracfg CLK_INFRA_I2C_BCK>,
458 <&infracfg CLK_INFRA_66M_AP_DMA_BCK>;
developerf596c1a2023-07-19 17:17:49 +0800459 clock-names = "main", "dma";
460 #address-cells = <1>;
461 #size-cells = <0>;
462 status = "disabled";
463 };
464
465 i2c1: i2c@11004000 {
466 compatible = "mediatek,mt7988-i2c",
467 "mediatek,mt7981-i2c";
468 reg = <0 0x11004000 0 0x1000>,
469 <0 0x10217100 0 0x80>;
470 interrupts = <GIC_SPI 144 IRQ_TYPE_LEVEL_HIGH>;
471 clock-div = <1>;
Christian Marangie4bfc442024-08-03 10:33:02 +0200472 clocks = <&infracfg CLK_INFRA_I2C_BCK>,
473 <&infracfg CLK_INFRA_66M_AP_DMA_BCK>;
developerf596c1a2023-07-19 17:17:49 +0800474 clock-names = "main", "dma";
475 #address-cells = <1>;
476 #size-cells = <0>;
477 status = "disabled";
478 };
479
480 i2c2: i2c@11005000 {
481 compatible = "mediatek,mt7988-i2c",
482 "mediatek,mt7981-i2c";
483 reg = <0 0x11005000 0 0x1000>,
484 <0 0x10217180 0 0x80>;
485 interrupts = <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>;
486 clock-div = <1>;
Christian Marangie4bfc442024-08-03 10:33:02 +0200487 clocks = <&infracfg CLK_INFRA_I2C_BCK>,
488 <&infracfg CLK_INFRA_66M_AP_DMA_BCK>;
developerf596c1a2023-07-19 17:17:49 +0800489 clock-names = "main", "dma";
490 #address-cells = <1>;
491 #size-cells = <0>;
492 status = "disabled";
493 };
494
495 pwm: pwm@10048000 {
496 compatible = "mediatek,mt7988-pwm";
497 reg = <0 0x10048000 0 0x1000>;
498 #pwm-cells = <2>;
Christian Marangie4bfc442024-08-03 10:33:02 +0200499 clocks = <&infracfg CLK_INFRA_66M_PWM_BCK>,
500 <&infracfg CLK_INFRA_66M_PWM_HCK>,
501 <&infracfg CLK_INFRA_66M_PWM_CK1>,
502 <&infracfg CLK_INFRA_66M_PWM_CK2>,
503 <&infracfg CLK_INFRA_66M_PWM_CK3>,
504 <&infracfg CLK_INFRA_66M_PWM_CK4>,
505 <&infracfg CLK_INFRA_66M_PWM_CK5>,
506 <&infracfg CLK_INFRA_66M_PWM_CK6>,
507 <&infracfg CLK_INFRA_66M_PWM_CK7>,
508 <&infracfg CLK_INFRA_66M_PWM_CK8>;
developerf596c1a2023-07-19 17:17:49 +0800509 clock-names = "top", "main", "pwm1", "pwm2", "pwm3",
510 "pwm4","pwm5","pwm6","pwm7","pwm8";
511 status = "disabled";
512 };
513
514 snand: snand@11001000 {
515 compatible = "mediatek,mt7988-snand",
516 "mediatek,mt7986-snand";
517 reg = <0 0x11001000 0 0x1000>,
518 <0 0x11002000 0 0x1000>;
519 reg-names = "nfi", "ecc";
520 interrupts = <GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>;
Christian Marangie4bfc442024-08-03 10:33:02 +0200521 clocks = <&infracfg CLK_INFRA_SPINFI>,
522 <&infracfg CLK_INFRA_NFI>,
523 <&infracfg CLK_INFRA_66M_NFI_HCK>;
developerf596c1a2023-07-19 17:17:49 +0800524 clock-names = "pad_clk", "nfi_clk", "nfi_hclk";
Christian Marangie4bfc442024-08-03 10:33:02 +0200525 assigned-clocks = <&topckgen CLK_TOP_SPINFI_SEL>,
526 <&topckgen CLK_TOP_NFI1X_SEL>;
527 assigned-clock-parents = <&topckgen CLK_TOP_MPLL_D8>,
528 <&topckgen CLK_TOP_MPLL_D8>;
developerf596c1a2023-07-19 17:17:49 +0800529 status = "disabled";
530 };
531
532 spi0: spi@1100a000 {
533 compatible = "mediatek,ipm-spi";
534 reg = <0 0x11007000 0 0x100>;
535 clocks = <&spi_clk>,
536 <&spi_clk>;
537 clock-names = "sel-clk", "spi-clk";
538 interrupts = <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>;
539 status = "disabled";
540 };
541
542 spi1: spi@1100b000 {
543 compatible = "mediatek,ipm-spi";
544 reg = <0 0x11008000 0 0x100>;
545 interrupts = <GIC_SPI 141 IRQ_TYPE_LEVEL_HIGH>;
546 status = "disabled";
547 };
548
549 spi2: spi@11009000 {
550 compatible = "mediatek,ipm-spi";
551 reg = <0 0x11009000 0 0x100>;
552 clocks = <&spi_clk>,
553 <&spi_clk>;
554 clock-names = "sel-clk", "spi-clk";
555 interrupts = <GIC_SPI 142 IRQ_TYPE_LEVEL_HIGH>;
556 status = "disabled";
557 };
558
559 mmc0: mmc@11230000 {
560 compatible = "mediatek,mt7988-mmc",
561 "mediatek,mt7986-mmc";
562 reg = <0 0x11230000 0 0x1000>;
563 interrupts = <GIC_SPI 143 IRQ_TYPE_LEVEL_HIGH>;
Christian Marangie4bfc442024-08-03 10:33:02 +0200564 clocks = <&infracfg CLK_INFRA_MSDC400>,
565 <&infracfg CLK_INFRA_MSDC2_HCK>,
566 <&infracfg CLK_INFRA_133M_MSDC_0_HCK>,
567 <&infracfg CLK_INFRA_66M_MSDC_0_HCK>;
developerf596c1a2023-07-19 17:17:49 +0800568 clock-names = "source", "hclk", "source_cg", "axi_cg";
569 status = "disabled";
570 };
571
572 ethdma: syscon@15000000 {
573 compatible = "mediatek,mt7988-ethdma", "syscon";
574 reg = <0 0x15000000 0 0x20000>;
575 clock-parent = <&topckgen>;
576 #clock-cells = <1>;
577 #reset-cells = <1>;
578 };
579
580 ethwarp: syscon@15031000 {
581 compatible = "mediatek,mt7988-ethwarp", "syscon";
582 reg = <0 0x15031000 0 0x1000>;
583 clock-parent = <&topckgen>;
584 #clock-cells = <1>;
585 #reset-cells = <1>;
586 };
587
developer3831fef2025-01-17 17:18:27 +0800588 eth0: ethernet@15110100 {
developerf596c1a2023-07-19 17:17:49 +0800589 compatible = "mediatek,mt7988-eth", "syscon";
590 reg = <0 0x15100000 0 0x20000>;
developer3831fef2025-01-17 17:18:27 +0800591 mediatek,gmac-id = <0>;
developerf596c1a2023-07-19 17:17:49 +0800592 mediatek,ethsys = <&ethdma>;
developerf596c1a2023-07-19 17:17:49 +0800593 mediatek,usxgmiisys = <&usxgmiisys0>;
594 mediatek,xfi_pextp = <&xfi_pextp0>;
595 mediatek,xfi_pll = <&xfi_pll>;
596 mediatek,infracfg = <&topmisc>;
597 mediatek,toprgu = <&watchdog>;
598 resets = <&ethdma ETHDMA_FE_RST>, <&ethwarp ETHWARP_GSW_RST>;
599 reset-names = "fe", "mcm";
600 #address-cells = <1>;
601 #size-cells = <0>;
602 mediatek,mcm;
603 status = "disabled";
604 };
developer3831fef2025-01-17 17:18:27 +0800605
606 eth1: ethernet@15110200 {
607 compatible = "mediatek,mt7988-eth", "syscon";
608 reg = <0 0x15100000 0 0x20000>;
609 mediatek,gmac-id = <1>;
610 mediatek,ethsys = <&ethdma>;
611 mediatek,sgmiisys = <&sgmiisys1>;
612 mediatek,usxgmiisys = <&usxgmiisys1>;
613 mediatek,xfi_pextp = <&xfi_pextp1>;
614 mediatek,xfi_pll = <&xfi_pll>;
615 mediatek,infracfg = <&topmisc>;
616 mediatek,toprgu = <&watchdog>;
617 resets = <&ethdma ETHDMA_FE_RST>;
618 reset-names = "fe";
619 #address-cells = <1>;
620 #size-cells = <0>;
621 mediatek,mcm;
622 status = "disabled";
623 };
624
625 eth2: ethernet@15110300 {
626 compatible = "mediatek,mt7988-eth", "syscon";
627 reg = <0 0x15100000 0 0x20000>;
628 mediatek,gmac-id = <2>;
629 mediatek,ethsys = <&ethdma>;
630 mediatek,sgmiisys = <&sgmiisys0>;
631 mediatek,usxgmiisys = <&usxgmiisys0>;
632 mediatek,xfi_pextp = <&xfi_pextp0>;
633 mediatek,xfi_pll = <&xfi_pll>;
634 mediatek,infracfg = <&topmisc>;
635 mediatek,toprgu = <&watchdog>;
636 resets = <&ethdma ETHDMA_FE_RST>;
637 reset-names = "fe";
638 #address-cells = <1>;
639 #size-cells = <0>;
640 mediatek,mcm;
641 status = "disabled";
642 };
developerf596c1a2023-07-19 17:17:49 +0800643};