blob: ee2ad2dbe6edb78cbde8721d08ce478807b62de1 [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
113 pinctrl: pinctrl@1001f000 {
114 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";
125 gpio: gpio-controller {
126 gpio-controller;
127 #gpio-cells = <2>;
128 };
129 };
130
131 sgmiisys0: syscon@10060000 {
132 compatible = "mediatek,mt7988-sgmiisys_0", "syscon";
133 reg = <0 0x10060000 0 0x1000>;
134 clock-parent = <&topckgen>;
135 #clock-cells = <1>;
136 };
137
138 sgmiisys1: syscon@10070000 {
139 compatible = "mediatek,mt7988-sgmiisys_1", "syscon";
140 reg = <0 0x10070000 0 0x1000>;
141 clock-parent = <&topckgen>;
142 #clock-cells = <1>;
143 };
144
145 usxgmiisys0: syscon@10080000 {
146 compatible = "mediatek,mt7988-usxgmiisys_0", "syscon";
147 reg = <0 0x10080000 0 0x1000>;
148 clock-parent = <&topckgen>;
149 #clock-cells = <1>;
150 };
151
152 usxgmiisys1: syscon@10081000 {
153 compatible = "mediatek,mt7988-usxgmiisys_1", "syscon";
154 reg = <0 0x10081000 0 0x1000>;
155 clock-parent = <&topckgen>;
156 #clock-cells = <1>;
157 };
158
Frank Wunderlich7950d172023-08-03 20:00:01 +0200159 dummy_clk: dummy12m {
160 compatible = "fixed-clock";
161 clock-frequency = <12000000>;
162 #clock-cells = <0>;
163 /* must need this line, or uart uanable to get dummy_clk */
164 bootph-all;
165 };
166
167 xhci1: xhci@11200000 {
168 compatible = "mediatek,mt7988-xhci",
169 "mediatek,mtk-xhci";
170 reg = <0 0x11200000 0 0x2e00>,
171 <0 0x11203e00 0 0x0100>;
172 reg-names = "mac", "ippc";
173 interrupts = <GIC_SPI 172 IRQ_TYPE_LEVEL_HIGH>;
174 phys = <&tphyu2port0 PHY_TYPE_USB2>,
175 <&tphyu3port0 PHY_TYPE_USB3>;
176 clocks = <&dummy_clk>,
177 <&dummy_clk>,
178 <&dummy_clk>,
179 <&dummy_clk>,
180 <&dummy_clk>;
181 clock-names = "sys_ck",
182 "xhci_ck",
183 "ref_ck",
184 "mcu_ck",
185 "dma_ck";
186 #address-cells = <2>;
187 #size-cells = <2>;
188 status = "okay";
189 };
190
developer8e4a8ca2025-01-17 17:18:17 +0800191 pcie2: pcie@11280000 {
192 compatible = "mediatek,mt7988-pcie",
193 "mediatek,mt7986-pcie",
194 "mediatek,mt8192-pcie";
195 device_type = "pci";
196 #address-cells = <3>;
197 #size-cells = <2>;
198 reg = <0 0x11280000 0 0x2000>;
199 reg-names = "pcie-mac";
200 linux,pci-domain = <3>;
201 interrupts = <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>;
202 bus-range = <0x00 0xff>;
203 ranges = <0x82000000 0 0x20200000 0 0x20200000 0 0x07e00000>;
204 clocks = <&infracfg CLK_INFRA_PCIE_PIPE_P2>,
205 <&infracfg CLK_INFRA_PCIE_GFMUX_TL_P2>,
206 <&infracfg CLK_INFRA_PCIE_PERI_26M_CK_P2>,
207 <&infracfg CLK_INFRA_133M_PCIE_CK_P2>;
208 clock-names = "pl_250m", "tl_26m", "peri_26m",
209 "top_133m";
210 phys = <&xphyu3port0 PHY_TYPE_PCIE>;
211 phy-names = "pcie-phy";
212
213 status = "disabled";
214
215 #interrupt-cells = <1>;
216 interrupt-map-mask = <0 0 0 0x7>;
217 interrupt-map = <0 0 0 1 &pcie_intc2 0>,
218 <0 0 0 2 &pcie_intc2 1>,
219 <0 0 0 3 &pcie_intc2 2>,
220 <0 0 0 4 &pcie_intc2 3>;
221
222 pcie_intc2: interrupt-controller {
223 #address-cells = <0>;
224 #interrupt-cells = <1>;
225 interrupt-controller;
226 };
227 };
228
229 pcie3: pcie@11290000 {
230 compatible = "mediatek,mt7988-pcie",
231 "mediatek,mt7986-pcie",
232 "mediatek,mt8192-pcie";
233 device_type = "pci";
234 #address-cells = <3>;
235 #size-cells = <2>;
236 reg = <0 0x11290000 0 0x2000>;
237 reg-names = "pcie-mac";
238 linux,pci-domain = <2>;
239 interrupts = <GIC_SPI 171 IRQ_TYPE_LEVEL_HIGH>;
240 bus-range = <0x00 0xff>;
241 ranges = <0x82000000 0 0x28200000 0 0x28200000 0 0x07e00000>;
242 clocks = <&infracfg CLK_INFRA_PCIE_PIPE_P3>,
243 <&infracfg CLK_INFRA_PCIE_GFMUX_TL_P3>,
244 <&infracfg CLK_INFRA_PCIE_PERI_26M_CK_P3>,
245 <&infracfg CLK_INFRA_133M_PCIE_CK_P3>;
246 clock-names = "pl_250m", "tl_26m", "peri_26m",
247 "top_133m";
248 use-dedicated-phy;
249
250 status = "disabled";
251
252 #interrupt-cells = <1>;
253 interrupt-map-mask = <0 0 0 0x7>;
254 interrupt-map = <0 0 0 1 &pcie_intc3 0>,
255 <0 0 0 2 &pcie_intc3 1>,
256 <0 0 0 3 &pcie_intc3 2>,
257 <0 0 0 4 &pcie_intc3 3>;
258 pcie_intc3: interrupt-controller {
259 #address-cells = <0>;
260 #interrupt-cells = <1>;
261 interrupt-controller;
262 };
263 };
264
265 pcie0: pcie@11300000 {
266 compatible = "mediatek,mt7988-pcie",
267 "mediatek,mt7986-pcie",
268 "mediatek,mt8192-pcie";
269 device_type = "pci";
270 #address-cells = <3>;
271 #size-cells = <2>;
272 reg = <0 0x11300000 0 0x2000>;
273 reg-names = "pcie-mac";
274 linux,pci-domain = <0>;
275 interrupts = <GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>;
276 bus-range = <0x00 0xff>;
277 ranges = <0x82000000 0 0x30200000 0 0x30200000 0 0x07e00000>;
278 clocks = <&infracfg CLK_INFRA_PCIE_PIPE_P0>,
279 <&infracfg CLK_INFRA_PCIE_GFMUX_TL_P0>,
280 <&infracfg CLK_INFRA_PCIE_PERI_26M_CK_P0>,
281 <&infracfg CLK_INFRA_133M_PCIE_CK_P0>;
282 clock-names = "pl_250m", "tl_26m", "peri_26m",
283 "top_133m";
284 use-dedicated-phy;
285
286 status = "disabled";
287
288 #interrupt-cells = <1>;
289 interrupt-map-mask = <0 0 0 0x7>;
290 interrupt-map = <0 0 0 1 &pcie_intc0 0>,
291 <0 0 0 2 &pcie_intc0 1>,
292 <0 0 0 3 &pcie_intc0 2>,
293 <0 0 0 4 &pcie_intc0 3>;
294 pcie_intc0: interrupt-controller {
295 #address-cells = <0>;
296 #interrupt-cells = <1>;
297 interrupt-controller;
298 };
299 };
300
301 pcie1: pcie@11310000 {
302 compatible = "mediatek,mt7988-pcie",
303 "mediatek,mt7986-pcie",
304 "mediatek,mt8192-pcie";
305 device_type = "pci";
306 #address-cells = <3>;
307 #size-cells = <2>;
308 reg = <0 0x11310000 0 0x2000>;
309 reg-names = "pcie-mac";
310 linux,pci-domain = <1>;
311 interrupts = <GIC_SPI 169 IRQ_TYPE_LEVEL_HIGH>;
312 bus-range = <0x00 0xff>;
313 ranges = <0x82000000 0 0x38200000 0 0x38200000 0 0x07e00000>;
314 clocks = <&infracfg CLK_INFRA_PCIE_PIPE_P1>,
315 <&infracfg CLK_INFRA_PCIE_GFMUX_TL_P1>,
316 <&infracfg CLK_INFRA_PCIE_PERI_26M_CK_P1>,
317 <&infracfg CLK_INFRA_133M_PCIE_CK_P1>;
318 clock-names = "pl_250m", "tl_26m", "peri_26m",
319 "top_133m";
320 use-dedicated-phy;
321
322 status = "disabled";
323
324 #interrupt-cells = <1>;
325 interrupt-map-mask = <0 0 0 0x7>;
326 interrupt-map = <0 0 0 1 &pcie_intc1 0>,
327 <0 0 0 2 &pcie_intc1 1>,
328 <0 0 0 3 &pcie_intc1 2>,
329 <0 0 0 4 &pcie_intc1 3>;
330 pcie_intc1: interrupt-controller {
331 #address-cells = <0>;
332 #interrupt-cells = <1>;
333 interrupt-controller;
334 };
335 };
336
Frank Wunderlich7950d172023-08-03 20:00:01 +0200337 usbtphy: usb-phy@11c50000 {
338 compatible = "mediatek,mt7988",
339 "mediatek,generic-tphy-v2";
340 #address-cells = <2>;
341 #size-cells = <2>;
342 ranges;
343 status = "okay";
344
345 tphyu2port0: usb-phy@11c50000 {
346 reg = <0 0x11c50000 0 0x700>;
347 clocks = <&dummy_clk>;
348 clock-names = "ref";
349 #phy-cells = <1>;
350 status = "okay";
351 };
352
353 tphyu3port0: usb-phy@11c50700 {
354 reg = <0 0x11c50700 0 0x900>;
355 clocks = <&dummy_clk>;
356 clock-names = "ref";
357 #phy-cells = <1>;
358 mediatek,usb3-pll-ssc-delta;
359 mediatek,usb3-pll-ssc-delta1;
360 status = "okay";
361 };
362 };
363
developer8e4a8ca2025-01-17 17:18:17 +0800364 xphy: xphy@11e10000 {
365 compatible = "mediatek,mt7988", "mediatek,xsphy";
366 #address-cells = <2>;
367 #size-cells = <2>;
368 ranges;
369 status = "disabled";
370
371 xphyu3port0: usb-phy@11e13000 {
372 reg = <0 0x11e13400 0 0x500>;
373 clocks = <&dummy_clk>;
374 clock-names = "ref";
375 #phy-cells = <1>;
376 status = "okay";
377 };
378 };
379
developerf596c1a2023-07-19 17:17:49 +0800380 xfi_pextp0: syscon@11f20000 {
381 compatible = "mediatek,mt7988-xfi_pextp_0", "syscon";
382 reg = <0 0x11f20000 0 0x10000>;
383 clock-parent = <&topckgen>;
384 #clock-cells = <1>;
385 };
386
387 xfi_pextp1: syscon@11f30000 {
388 compatible = "mediatek,mt7988-xfi_pextp_1", "syscon";
389 reg = <0 0x11f30000 0 0x10000>;
390 clock-parent = <&topckgen>;
391 #clock-cells = <1>;
392 };
393
394 xfi_pll: syscon@11f40000 {
395 compatible = "mediatek,mt7988-xfi_pll", "syscon";
396 reg = <0 0x11f40000 0 0x1000>;
397 clock-parent = <&topckgen>;
398 #clock-cells = <1>;
399 };
400
401 topmisc: topmisc@11d10000 {
402 compatible = "mediatek,mt7988-topmisc", "syscon",
403 "mediatek,mt7988-power-controller";
404 reg = <0 0x11d10000 0 0x10000>;
405 clock-parent = <&topckgen>;
406 #clock-cells = <1>;
407 };
408
Christian Marangi826afb72024-08-03 10:33:01 +0200409 infracfg: infracfg@10001000 {
developerf596c1a2023-07-19 17:17:49 +0800410 compatible = "mediatek,mt7988-infracfg", "syscon";
411 reg = <0 0x10001000 0 0x1000>;
412 clock-parent = <&topckgen>;
413 #clock-cells = <1>;
414 };
415
416 uart0: serial@11000000 {
417 compatible = "mediatek,hsuart";
418 reg = <0 0x11000000 0 0x100>;
419 interrupts = <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>;
Christian Marangie4bfc442024-08-03 10:33:02 +0200420 clocks = <&infracfg CLK_INFRA_52M_UART0_CK>;
421 assigned-clocks = <&topckgen CLK_TOP_UART_SEL>,
422 <&infracfg CLK_INFRA_MUX_UART0_SEL>;
423 assigned-clock-parents = <&topckgen CLK_TOP_XTAL>,
424 <&topckgen CLK_TOP_UART_SEL>;
developerf596c1a2023-07-19 17:17:49 +0800425 status = "disabled";
426 };
427
428 uart1: serial@11000100 {
429 compatible = "mediatek,hsuart";
430 reg = <0 0x11000100 0 0x100>;
431 interrupts = <GIC_SPI 124 IRQ_TYPE_LEVEL_HIGH>;
Christian Marangie4bfc442024-08-03 10:33:02 +0200432 clocks = <&infracfg CLK_INFRA_52M_UART1_CK>;
433 assigned-clocks = <&topckgen CLK_TOP_UART_SEL>,
434 <&infracfg CLK_INFRA_MUX_UART1_SEL>;
435 assigned-clock-parents = <&topckgen CLK_TOP_XTAL>,
436 <&topckgen CLK_TOP_UART_SEL>;
developerf596c1a2023-07-19 17:17:49 +0800437 status = "disabled";
438 };
439
440 uart2: serial@11000200 {
441 compatible = "mediatek,hsuart";
442 reg = <0 0x11000200 0 0x100>;
443 interrupts = <GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>;
Christian Marangie4bfc442024-08-03 10:33:02 +0200444 clocks = <&infracfg CLK_INFRA_52M_UART2_CK>;
445 assigned-clocks = <&topckgen CLK_TOP_UART_SEL>,
446 <&infracfg CLK_INFRA_MUX_UART2_SEL>;
447 assigned-clock-parents = <&topckgen CLK_TOP_XTAL>,
448 <&topckgen CLK_TOP_UART_SEL>;
developerf596c1a2023-07-19 17:17:49 +0800449 status = "disabled";
450 };
451
452 i2c0: i2c@11003000 {
453 compatible = "mediatek,mt7988-i2c",
454 "mediatek,mt7981-i2c";
455 reg = <0 0x11003000 0 0x1000>,
456 <0 0x10217080 0 0x80>;
457 interrupts = <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>;
458 clock-div = <1>;
Christian Marangie4bfc442024-08-03 10:33:02 +0200459 clocks = <&infracfg CLK_INFRA_I2C_BCK>,
460 <&infracfg CLK_INFRA_66M_AP_DMA_BCK>;
developerf596c1a2023-07-19 17:17:49 +0800461 clock-names = "main", "dma";
462 #address-cells = <1>;
463 #size-cells = <0>;
464 status = "disabled";
465 };
466
467 i2c1: i2c@11004000 {
468 compatible = "mediatek,mt7988-i2c",
469 "mediatek,mt7981-i2c";
470 reg = <0 0x11004000 0 0x1000>,
471 <0 0x10217100 0 0x80>;
472 interrupts = <GIC_SPI 144 IRQ_TYPE_LEVEL_HIGH>;
473 clock-div = <1>;
Christian Marangie4bfc442024-08-03 10:33:02 +0200474 clocks = <&infracfg CLK_INFRA_I2C_BCK>,
475 <&infracfg CLK_INFRA_66M_AP_DMA_BCK>;
developerf596c1a2023-07-19 17:17:49 +0800476 clock-names = "main", "dma";
477 #address-cells = <1>;
478 #size-cells = <0>;
479 status = "disabled";
480 };
481
482 i2c2: i2c@11005000 {
483 compatible = "mediatek,mt7988-i2c",
484 "mediatek,mt7981-i2c";
485 reg = <0 0x11005000 0 0x1000>,
486 <0 0x10217180 0 0x80>;
487 interrupts = <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>;
488 clock-div = <1>;
Christian Marangie4bfc442024-08-03 10:33:02 +0200489 clocks = <&infracfg CLK_INFRA_I2C_BCK>,
490 <&infracfg CLK_INFRA_66M_AP_DMA_BCK>;
developerf596c1a2023-07-19 17:17:49 +0800491 clock-names = "main", "dma";
492 #address-cells = <1>;
493 #size-cells = <0>;
494 status = "disabled";
495 };
496
497 pwm: pwm@10048000 {
498 compatible = "mediatek,mt7988-pwm";
499 reg = <0 0x10048000 0 0x1000>;
500 #pwm-cells = <2>;
Christian Marangie4bfc442024-08-03 10:33:02 +0200501 clocks = <&infracfg CLK_INFRA_66M_PWM_BCK>,
502 <&infracfg CLK_INFRA_66M_PWM_HCK>,
503 <&infracfg CLK_INFRA_66M_PWM_CK1>,
504 <&infracfg CLK_INFRA_66M_PWM_CK2>,
505 <&infracfg CLK_INFRA_66M_PWM_CK3>,
506 <&infracfg CLK_INFRA_66M_PWM_CK4>,
507 <&infracfg CLK_INFRA_66M_PWM_CK5>,
508 <&infracfg CLK_INFRA_66M_PWM_CK6>,
509 <&infracfg CLK_INFRA_66M_PWM_CK7>,
510 <&infracfg CLK_INFRA_66M_PWM_CK8>;
developerf596c1a2023-07-19 17:17:49 +0800511 clock-names = "top", "main", "pwm1", "pwm2", "pwm3",
512 "pwm4","pwm5","pwm6","pwm7","pwm8";
513 status = "disabled";
514 };
515
516 snand: snand@11001000 {
517 compatible = "mediatek,mt7988-snand",
518 "mediatek,mt7986-snand";
519 reg = <0 0x11001000 0 0x1000>,
520 <0 0x11002000 0 0x1000>;
521 reg-names = "nfi", "ecc";
522 interrupts = <GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>;
Christian Marangie4bfc442024-08-03 10:33:02 +0200523 clocks = <&infracfg CLK_INFRA_SPINFI>,
524 <&infracfg CLK_INFRA_NFI>,
525 <&infracfg CLK_INFRA_66M_NFI_HCK>;
developerf596c1a2023-07-19 17:17:49 +0800526 clock-names = "pad_clk", "nfi_clk", "nfi_hclk";
Christian Marangie4bfc442024-08-03 10:33:02 +0200527 assigned-clocks = <&topckgen CLK_TOP_SPINFI_SEL>,
528 <&topckgen CLK_TOP_NFI1X_SEL>;
529 assigned-clock-parents = <&topckgen CLK_TOP_MPLL_D8>,
530 <&topckgen CLK_TOP_MPLL_D8>;
developerf596c1a2023-07-19 17:17:49 +0800531 status = "disabled";
532 };
533
534 spi0: spi@1100a000 {
535 compatible = "mediatek,ipm-spi";
536 reg = <0 0x11007000 0 0x100>;
537 clocks = <&spi_clk>,
538 <&spi_clk>;
539 clock-names = "sel-clk", "spi-clk";
540 interrupts = <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>;
541 status = "disabled";
542 };
543
544 spi1: spi@1100b000 {
545 compatible = "mediatek,ipm-spi";
546 reg = <0 0x11008000 0 0x100>;
547 interrupts = <GIC_SPI 141 IRQ_TYPE_LEVEL_HIGH>;
548 status = "disabled";
549 };
550
551 spi2: spi@11009000 {
552 compatible = "mediatek,ipm-spi";
553 reg = <0 0x11009000 0 0x100>;
554 clocks = <&spi_clk>,
555 <&spi_clk>;
556 clock-names = "sel-clk", "spi-clk";
557 interrupts = <GIC_SPI 142 IRQ_TYPE_LEVEL_HIGH>;
558 status = "disabled";
559 };
560
561 mmc0: mmc@11230000 {
562 compatible = "mediatek,mt7988-mmc",
563 "mediatek,mt7986-mmc";
564 reg = <0 0x11230000 0 0x1000>;
565 interrupts = <GIC_SPI 143 IRQ_TYPE_LEVEL_HIGH>;
Christian Marangie4bfc442024-08-03 10:33:02 +0200566 clocks = <&infracfg CLK_INFRA_MSDC400>,
567 <&infracfg CLK_INFRA_MSDC2_HCK>,
568 <&infracfg CLK_INFRA_133M_MSDC_0_HCK>,
569 <&infracfg CLK_INFRA_66M_MSDC_0_HCK>;
developerf596c1a2023-07-19 17:17:49 +0800570 clock-names = "source", "hclk", "source_cg", "axi_cg";
571 status = "disabled";
572 };
573
574 ethdma: syscon@15000000 {
575 compatible = "mediatek,mt7988-ethdma", "syscon";
576 reg = <0 0x15000000 0 0x20000>;
577 clock-parent = <&topckgen>;
578 #clock-cells = <1>;
579 #reset-cells = <1>;
580 };
581
582 ethwarp: syscon@15031000 {
583 compatible = "mediatek,mt7988-ethwarp", "syscon";
584 reg = <0 0x15031000 0 0x1000>;
585 clock-parent = <&topckgen>;
586 #clock-cells = <1>;
587 #reset-cells = <1>;
588 };
589
developer3831fef2025-01-17 17:18:27 +0800590 eth0: ethernet@15110100 {
developerf596c1a2023-07-19 17:17:49 +0800591 compatible = "mediatek,mt7988-eth", "syscon";
592 reg = <0 0x15100000 0 0x20000>;
developer3831fef2025-01-17 17:18:27 +0800593 mediatek,gmac-id = <0>;
developerf596c1a2023-07-19 17:17:49 +0800594 mediatek,ethsys = <&ethdma>;
developerf596c1a2023-07-19 17:17:49 +0800595 mediatek,usxgmiisys = <&usxgmiisys0>;
596 mediatek,xfi_pextp = <&xfi_pextp0>;
597 mediatek,xfi_pll = <&xfi_pll>;
598 mediatek,infracfg = <&topmisc>;
599 mediatek,toprgu = <&watchdog>;
600 resets = <&ethdma ETHDMA_FE_RST>, <&ethwarp ETHWARP_GSW_RST>;
601 reset-names = "fe", "mcm";
602 #address-cells = <1>;
603 #size-cells = <0>;
604 mediatek,mcm;
605 status = "disabled";
606 };
developer3831fef2025-01-17 17:18:27 +0800607
608 eth1: ethernet@15110200 {
609 compatible = "mediatek,mt7988-eth", "syscon";
610 reg = <0 0x15100000 0 0x20000>;
611 mediatek,gmac-id = <1>;
612 mediatek,ethsys = <&ethdma>;
613 mediatek,sgmiisys = <&sgmiisys1>;
614 mediatek,usxgmiisys = <&usxgmiisys1>;
615 mediatek,xfi_pextp = <&xfi_pextp1>;
616 mediatek,xfi_pll = <&xfi_pll>;
617 mediatek,infracfg = <&topmisc>;
618 mediatek,toprgu = <&watchdog>;
619 resets = <&ethdma ETHDMA_FE_RST>;
620 reset-names = "fe";
621 #address-cells = <1>;
622 #size-cells = <0>;
623 mediatek,mcm;
624 status = "disabled";
625 };
626
627 eth2: ethernet@15110300 {
628 compatible = "mediatek,mt7988-eth", "syscon";
629 reg = <0 0x15100000 0 0x20000>;
630 mediatek,gmac-id = <2>;
631 mediatek,ethsys = <&ethdma>;
632 mediatek,sgmiisys = <&sgmiisys0>;
633 mediatek,usxgmiisys = <&usxgmiisys0>;
634 mediatek,xfi_pextp = <&xfi_pextp0>;
635 mediatek,xfi_pll = <&xfi_pll>;
636 mediatek,infracfg = <&topmisc>;
637 mediatek,toprgu = <&watchdog>;
638 resets = <&ethdma ETHDMA_FE_RST>;
639 reset-names = "fe";
640 #address-cells = <1>;
641 #size-cells = <0>;
642 mediatek,mcm;
643 status = "disabled";
644 };
developerf596c1a2023-07-19 17:17:49 +0800645};