blob: d583d735fd3eda2f156044ab87aaf1126931f112 [file] [log] [blame]
developer2cdaeb12022-10-04 20:25:05 +08001// 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#include <dt-bindings/interrupt-controller/irq.h>
8#include <dt-bindings/interrupt-controller/arm-gic.h>
9#include <dt-bindings/phy/phy.h>
10#include <dt-bindings/reset/ti-syscon.h>
11#include <dt-bindings/clock/mt7988-clk.h>
12#include <dt-bindings/pinctrl/mt65xx.h>
13#include <dt-bindings/thermal/thermal.h>
14#include <dt-bindings/regulator/richtek,rt5190a-regulator.h>
15#include <dt-bindings/power/mt7988-power.h>
16
17/ {
18 compatible = "mediatek,mt7988-rfb";
19 interrupt-parent = <&gic>;
20 #address-cells = <2>;
21 #size-cells = <2>;
22 cpus {
23 #address-cells = <1>;
24 #size-cells = <0>;
25 cpu@0 {
26 device_type = "cpu";
27 compatible = "arm,cortex-a73";
28 enable-method = "psci";
29 reg = <0x0>;
30 clocks = <&mcusys CK_MCU_ARM_DIV_SEL>,
31 <&topckgen CK_TOP_CB_NET1_D4>,
32 <&apmixedsys CK_APMIXED_ARM_B>,
33 <&mcusys CK_MCU_BUS_DIV_SEL>,
34 <&apmixedsys CK_APMIXED_CCIPLL2_B>;
35 clock-names = "cpu", "intermediate", "armpll", "cci",
36 "ccipll";
37 operating-points-v2 = <&cluster0_opp>;
38 nvmem-cells = <&cpufreq_calibration>;
39 nvmem-cell-names = "calibration-data";
40 };
41
42 cpu@1 {
43 device_type = "cpu";
44 compatible = "arm,cortex-a73";
45 enable-method = "psci";
46 reg = <0x1>;
47 clocks = <&mcusys CK_MCU_ARM_DIV_SEL>,
48 <&topckgen CK_TOP_CB_NET1_D4>,
49 <&apmixedsys CK_APMIXED_ARM_B>,
50 <&mcusys CK_MCU_BUS_DIV_SEL>,
51 <&apmixedsys CK_APMIXED_CCIPLL2_B>;
52 clock-names = "cpu", "intermediate", "armpll", "cci",
53 "ccipll";
54 operating-points-v2 = <&cluster0_opp>;
55 nvmem-cells = <&cpufreq_calibration>;
56 nvmem-cell-names = "calibration-data";
57 };
58
59 cpu@2 {
60 device_type = "cpu";
61 compatible = "arm,cortex-a73";
62 enable-method = "psci";
63 reg = <0x2>;
64 clocks = <&mcusys CK_MCU_ARM_DIV_SEL>,
65 <&topckgen CK_TOP_CB_NET1_D4>,
66 <&apmixedsys CK_APMIXED_ARM_B>,
67 <&mcusys CK_MCU_BUS_DIV_SEL>,
68 <&apmixedsys CK_APMIXED_CCIPLL2_B>;
69 clock-names = "cpu", "intermediate", "armpll", "cci",
70 "ccipll";
71 operating-points-v2 = <&cluster0_opp>;
72 nvmem-cells = <&cpufreq_calibration>;
73 nvmem-cell-names = "calibration-data";
74 };
75
76 cpu@3 {
77 device_type = "cpu";
78 compatible = "arm,cortex-a73";
79 enable-method = "psci";
80 reg = <0x3>;
81 clocks = <&mcusys CK_MCU_ARM_DIV_SEL>,
82 <&topckgen CK_TOP_CB_NET1_D4>,
83 <&apmixedsys CK_APMIXED_ARM_B>,
84 <&mcusys CK_MCU_BUS_DIV_SEL>,
85 <&apmixedsys CK_APMIXED_CCIPLL2_B>;
86 clock-names = "cpu", "intermediate", "armpll", "cci",
87 "ccipll";
88 operating-points-v2 = <&cluster0_opp>;
89 nvmem-cells = <&cpufreq_calibration>;
90 nvmem-cell-names = "calibration-data";
91 };
92
93 cluster0_opp: opp_table0 {
94 compatible = "operating-points-v2";
95 opp-shared;
96 opp00 {
97 opp-hz = /bits/ 64 <800000000>;
98 opp-microvolt = <850000>;
99 };
100 opp01 {
101 opp-hz = /bits/ 64 <1100000000>;
102 opp-microvolt = <850000>;
103 };
104 opp02 {
105 opp-hz = /bits/ 64 <1500000000>;
106 opp-microvolt = <850000>;
107 };
108 opp03 {
109 opp-hz = /bits/ 64 <1800000000>;
110 opp-microvolt = <900000>;
111 };
112 };
113 };
114
115 thermal-zones {
116 cpu_thermal: cpu-thermal {
117 polling-delay-passive = <1000>;
118 polling-delay = <1000>;
119 thermal-sensors = <&lvts 0>;
120 trips {
121 cpu_trip_crit: crit {
122 temperature = <125000>;
123 hysteresis = <2000>;
124 type = "critical";
125 };
126
127 cpu_trip_hot: hot {
128 temperature = <120000>;
129 hysteresis = <2000>;
130 type = "hot";
131 };
132
133 cpu_trip_active_high: active-high {
134 temperature = <115000>;
135 hysteresis = <2000>;
136 type = "active";
137 };
138
139 cpu_trip_active_low: active-low {
140 temperature = <85000>;
141 hysteresis = <2000>;
142 type = "active";
143 };
144
145 cpu_trip_passive: passive {
146 temperature = <40000>;
147 hysteresis = <2000>;
148 type = "passive";
149 };
150 };
151
152 cooling-maps {
153 cpu-active-high {
154 /* active: set fan to cooling level 2 */
155 cooling-device = <&fan 2 2>;
156 trip = <&cpu_trip_active_high>;
157 };
158
159 cpu-active-low {
160 /* active: set fan to cooling level 1 */
161 cooling-device = <&fan 1 1>;
162 trip = <&cpu_trip_active_low>;
163 };
164
165 cpu-passive {
166 /* passive: set fan to cooling level 0 */
167 cooling-device = <&fan 0 0>;
168 trip = <&cpu_trip_passive>;
169 };
170 };
171
172 };
173 };
174
175 mmc0: mmc@11230000 {
176 compatible = "mediatek,mt7986-mmc";
177 reg = <0 0x11230000 0 0x1000>,
178 <0 0x11D60000 0 0x1000>;
179 interrupts = <GIC_SPI 143 IRQ_TYPE_LEVEL_HIGH>;
180 clocks = <&infracfg_ao CK_INFRA_MSDC400>,
181 <&infracfg_ao CK_INFRA_MSDC2_HCK>,
182 <&infracfg_ao CK_INFRA_133M_MSDC_0_HCK>,
183 <&infracfg_ao CK_INFRA_66M_MSDC_0_HCK>;
184 clock-names = "source", "hclk", "ahb_cg", "axi_cg";
185 status = "disabled";
186 };
187
188 wed: wed@15010000 {
189 compatible = "mediatek,wed";
190 wed_num = <3>;
191 /* add this property for wed get the pci slot number. */
192 pci_slot_map = <0>, <1>, <2>;
193 reg = <0 0x15010000 0 0x2000>,
194 <0 0x15012000 0 0x2000>,
195 <0 0x15014000 0 0x2000>;
196 interrupt-parent = <&gic>;
197 interrupts = <GIC_SPI 205 IRQ_TYPE_LEVEL_HIGH>,
198 <GIC_SPI 206 IRQ_TYPE_LEVEL_HIGH>,
199 <GIC_SPI 270 IRQ_TYPE_LEVEL_HIGH>;
200 };
201
202 wed2: wed2@15012000 {
203 compatible = "mediatek,wed2";
204 wed_num = <3>;
205 /* add this property for wed get the pci slot number. */
206 reg = <0 0x15010000 0 0x2000>,
207 <0 0x15012000 0 0x2000>,
208 <0 0x15014000 0 0x2000>;
209 interrupt-parent = <&gic>;
210 interrupts = <GIC_SPI 205 IRQ_TYPE_LEVEL_HIGH>,
211 <GIC_SPI 206 IRQ_TYPE_LEVEL_HIGH>,
212 <GIC_SPI 270 IRQ_TYPE_LEVEL_HIGH>;
213 };
214
215 wed3: wed3@15014000 {
216 compatible = "mediatek,wed3";
217 wed_num = <3>;
218 /* add this property for wed get the pci slot number. */
219 reg = <0 0x15010000 0 0x2000>,
220 <0 0x15012000 0 0x2000>,
221 <0 0x15014000 0 0x2000>;
222 interrupt-parent = <&gic>;
223 interrupts = <GIC_SPI 205 IRQ_TYPE_LEVEL_HIGH>,
224 <GIC_SPI 206 IRQ_TYPE_LEVEL_HIGH>,
225 <GIC_SPI 270 IRQ_TYPE_LEVEL_HIGH>;
226 };
227
228 wdma: wdma@15104800 {
229 compatible = "mediatek,wed-wdma";
230 reg = <0 0x15104800 0 0x400>,
231 <0 0x15104c00 0 0x400>,
232 <0 0x15105000 0 0x400>;
233 };
234
235 ap2woccif: ap2woccif@151A5000 {
236 compatible = "mediatek,ap2woccif";
237 reg = <0 0x151A5000 0 0x1000>,
238 <0 0x152A5000 0 0x1000>,
239 <0 0x153A5000 0 0x1000>;
240 interrupt-parent = <&gic>;
241 interrupts = <GIC_SPI 211 IRQ_TYPE_LEVEL_HIGH>,
242 <GIC_SPI 212 IRQ_TYPE_LEVEL_HIGH>,
243 <GIC_SPI 272 IRQ_TYPE_LEVEL_HIGH>;
244 };
245
246 wocpu0_ilm: wocpu0_ilm@151E0000 {
247 compatible = "mediatek,wocpu0_ilm";
248 reg = <0 0x151E0000 0 0x8000>;
249 };
250
251 wocpu1_ilm: wocpu1_ilm@152E0000 {
252 compatible = "mediatek,wocpu1_ilm";
253 reg = <0 0x152E0000 0 0x8000>;
254 };
255
256 wocpu2_ilm: wocpu2_ilm@153E0000 {
257 compatible = "mediatek,wocpu2_ilm";
258 reg = <0 0x153E0000 0 0x8000>;
259 };
260
261 wocpu_dlm: wocpu_dlm@151E8000 {
262 compatible = "mediatek,wocpu_dlm";
263 reg = <0 0x151E8000 0 0x2000>,
264 <0 0x152E8000 0 0x2000>,
265 <0 0x153E8000 0 0x2000>;
266
267 resets = <&ethsysrst 0>;
268 reset-names = "wocpu_rst";
269 };
270
271 cpu_boot: wocpu_boot@15194000 {
272 compatible = "mediatek,wocpu_boot";
273 reg = <0 0x15194000 0 0x1000>,
274 <0 0x15294000 0 0x1000>,
275 <0 0x15394000 0 0x1000>;
276 };
277
278 reserved-memory {
279 #address-cells = <2>;
280 #size-cells = <2>;
281 ranges;
282
283 /* 192 KiB reserved for ARM Trusted Firmware (BL31) */
284 secmon_reserved: secmon@43000000 {
285 reg = <0 0x43000000 0 0x30000>;
286 no-map;
287 };
288
289 wmcpu_emi: wmcpu-reserved@47CC0000 {
290 compatible = "mediatek,wmcpu-reserved";
291 no-map;
292 reg = <0 0x47CC0000 0 0x00100000>;
293 };
294
295 wocpu0_emi: wocpu0_emi@4F600000 {
296 compatible = "mediatek,wocpu0_emi";
297 no-map;
298 reg = <0 0x4F600000 0 0x40000>;
299 shared = <0>;
300 };
301
302 wocpu1_emi: wocpu1_emi@4F640000 {
303 compatible = "mediatek,wocpu1_emi";
304 no-map;
305 reg = <0 0x4F640000 0 0x40000>;
306 shared = <0>;
307 };
308
309 wocpu2_emi: wocpu2_emi@4F680000 {
310 compatible = "mediatek,wocpu2_emi";
311 no-map;
312 reg = <0 0x4F680000 0 0x40000>;
313 shared = <0>;
314 };
315
316 wocpu_data: wocpu_data@4F700000 {
317 compatible = "mediatek,wocpu_data";
318 no-map;
319 reg = <0 0x4F700000 0 0x800000>;
320 shared = <1>;
321 };
322 };
323
324 psci {
325 compatible = "arm,psci-0.2";
326 method = "smc";
327 };
328
329 system_clk: dummy_system_clk {
330 compatible = "fixed-clock";
331 clock-frequency = <40000000>;
332 #clock-cells = <0>;
333 };
334
335 uart_clk: dummy_uart_clk {
336 compatible = "fixed-clock";
337 clock-frequency = <40000000>;
338 #clock-cells = <0>;
339 };
340
341 timer {
342 compatible = "arm,armv8-timer";
343 interrupt-parent = <&gic>;
344 interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW>,
345 <GIC_PPI 14 IRQ_TYPE_LEVEL_LOW>,
346 <GIC_PPI 11 IRQ_TYPE_LEVEL_LOW>,
347 <GIC_PPI 10 IRQ_TYPE_LEVEL_LOW>;
348
349 };
350
developer2cdaeb12022-10-04 20:25:05 +0800351 watchdog: watchdog@1001c000 {
352 compatible = "mediatek,mt7622-wdt",
353 "mediatek,mt6589-wdt",
354 "syscon";
355 reg = <0 0x1001c000 0 0x1000>;
356 interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>;
357 #reset-cells = <1>;
358 };
359
360 phyfw: phy-firmware@f000000 {
361 compatible = "mediatek,2p5gphy-fw";
362 reg = <0 0x0f000000 0 0x8000>,
363 <0 0x0f100000 0 0x20000>,
364 <0 0x0f0f0000 0 0x200>;
365 };
366
developer23021292022-10-21 19:10:10 +0800367 boottrap: boottrap@1001f6f0 {
368 compatible = "mediatek,boottrap";
369 reg = <0 0x1001f6f0 0 0x20>;
370 };
371
developer2cdaeb12022-10-04 20:25:05 +0800372 gic: interrupt-controller@c000000 {
373 compatible = "arm,gic-v3";
374 #interrupt-cells = <3>;
375 interrupt-parent = <&gic>;
376 interrupt-controller;
377 reg = <0 0x0c000000 0 0x40000>, /* GICD */
378 <0 0x0c080000 0 0x200000>; /* GICR */
379
380 interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
381 };
382
383 trng: trng@1020f000 {
384 compatible = "mediatek,mt7988-rng";
385 };
386
387 uart0: serial@11000000 {
388 compatible = "mediatek,mt7986-uart",
389 "mediatek,mt6577-uart";
390 reg = <0 0x11000000 0 0x100>;
391 interrupts = <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>;
392 clocks = <&uart_clk>;
393 status = "disabled";
394 };
395
396 uart1: serial@11000100 {
397 compatible = "mediatek,mt7986-uart",
398 "mediatek,mt6577-uart";
399 reg = <0 0x11000100 0 0x100>;
400 interrupts = <GIC_SPI 124 IRQ_TYPE_LEVEL_HIGH>;
401 clocks = <&uart_clk>;
402 status = "disabled";
403 };
404
405 uart2: serial@11000200 {
406 compatible = "mediatek,mt7986-uart",
407 "mediatek,mt6577-uart";
408 reg = <0 0x11000200 0 0x100>;
409 interrupts = <GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>;
410 clocks = <&uart_clk>;
411 status = "disabled";
412 };
413
414 i2c0: i2c@11003000 {
415 compatible = "mediatek,mt7988-i2c",
416 "mediatek,mt7981-i2c";
417 reg = <0 0x11003000 0 0x1000>,
418 <0 0x10217080 0 0x80>;
419 interrupts = <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>;
420 clock-div = <1>;
421 clocks = <&system_clk>,
422 <&system_clk>;
423 clock-names = "main", "dma";
424 #address-cells = <1>;
425 #size-cells = <0>;
426 status = "disabled";
427 };
428
429 i2c1: i2c@11004000 {
430 compatible = "mediatek,mt7988-i2c",
431 "mediatek,mt7981-i2c";
432 reg = <0 0x11004000 0 0x1000>,
433 <0 0x10217100 0 0x80>;
434 interrupts = <GIC_SPI 144 IRQ_TYPE_LEVEL_HIGH>;
435 clock-div = <1>;
436 clocks = <&system_clk>,
437 <&system_clk>;
438 clock-names = "main", "dma";
439 #address-cells = <1>;
440 #size-cells = <0>;
441 status = "disabled";
442 };
443
444 i2c2: i2c@11005000 {
445 compatible = "mediatek,mt7988-i2c",
446 "mediatek,mt7981-i2c";
447 reg = <0 0x11005000 0 0x1000>,
448 <0 0x10217180 0 0x80>;
449 interrupts = <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>;
450 clock-div = <1>;
451 clocks = <&system_clk>,
452 <&system_clk>;
453 clock-names = "main", "dma";
454 #address-cells = <1>;
455 #size-cells = <0>;
456 status = "disabled";
457 };
458
459 pwm: pwm@10048000 {
460 compatible = "mediatek,mt7988-pwm";
461 reg = <0 0x10048000 0 0x1000>;
462 #pwm-cells = <2>;
463 clocks = <&system_clk>,
464 <&system_clk>,
465 <&system_clk>,
466 <&system_clk>,
467 <&system_clk>,
468 <&system_clk>,
469 <&system_clk>,
470 <&system_clk>,
471 <&system_clk>,
472 <&system_clk>;
473 clock-names = "top", "main", "pwm1", "pwm2", "pwm3",
474 "pwm4","pwm5","pwm6","pwm7","pwm8";
475 status = "disabled";
476 };
477
478 fan: pwm-fan {
479 compatible = "pwm-fan";
480 /* cooling level (0, 1, 2) : (0% duty, 50% duty, 100% duty) */
481 cooling-levels = <0 128 255>;
482 #cooling-cells = <2>;
483 #thermal-sensor-cells = <1>;
484 status = "disabled";
485 };
486
487 lvts: lvts@1100a000 {
488 compatible = "mediatek,mt7988-lvts";
489 #thermal-sensor-cells = <1>;
490 reg = <0 0x1100a000 0 0x1000>;
491 clocks = <&system_clk>;
492 clock-names = "lvts_clk";
493 nvmem-cells = <&lvts_calibration>;
494 nvmem-cell-names = "e_data1";
495 };
496
497 crypto: crypto@15600000 {
498 compatible = "inside-secure,safexcel-eip197b";
499 reg = <0 0x15600000 0 0x180000>;
500 interrupts = <GIC_SPI 214 IRQ_TYPE_LEVEL_HIGH>,
501 <GIC_SPI 215 IRQ_TYPE_LEVEL_HIGH>,
502 <GIC_SPI 216 IRQ_TYPE_LEVEL_HIGH>,
503 <GIC_SPI 217 IRQ_TYPE_LEVEL_HIGH>;
504 interrupt-names = "ring0", "ring1", "ring2", "ring3";
505 status = "okay";
506 };
507
developer3594afb2022-10-25 13:22:53 +0800508 afe: audio-controller@11210000 {
509 compatible = "mediatek,mt79xx-audio";
510 reg = <0 0x11210000 0 0x9000>;
511 interrupts = <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>;
512 clocks = <&infracfg_ao CK_INFRA_66M_AUD_SLV_BCK>,
513 <&infracfg_ao CK_INFRA_AUD_26M>,
514 <&infracfg_ao CK_INFRA_AUD_L>,
515 <&infracfg_ao CK_INFRA_AUD_AUD>,
516 <&infracfg_ao CK_INFRA_AUD_EG2>,
517 <&topckgen CK_TOP_AUD_SEL>,
518 <&topckgen CK_TOP_AUD_I2S_M>;
519 clock-names = "aud_bus_ck",
520 "aud_26m_ck",
521 "aud_l_ck",
522 "aud_aud_ck",
523 "aud_eg2_ck",
524 "aud_sel",
525 "aud_i2s_m";
526 assigned-clocks = <&topckgen CK_TOP_AUD_SEL>,
527 <&topckgen CK_TOP_A1SYS_SEL>,
528 <&topckgen CK_TOP_AUD_L_SEL>,
529 <&topckgen CK_TOP_A_TUNER_SEL>;
530 assigned-clock-parents = <&topckgen CK_TOP_CB_APLL2_196M>,
531 <&topckgen CK_TOP_CB_APLL2_D4>,
532 <&topckgen CK_TOP_CB_APLL2_196M>,
533 <&topckgen CK_TOP_CB_APLL2_D4>;
534 status = "disabled";
535 };
536
developer2cdaeb12022-10-04 20:25:05 +0800537 pcie0: pcie@11300000 {
538 compatible = "mediatek,mt7988-pcie",
539 "mediatek,mt7986-pcie";
540 device_type = "pci";
541 #address-cells = <3>;
542 #size-cells = <2>;
543 reg = <0 0x11300000 0 0x2000>;
544 reg-names = "pcie-mac";
545 linux,pci-domain = <0>;
546 interrupts = <GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>;
547 bus-range = <0x00 0xff>;
548 ranges = <0x81000000 0x00 0x30000000 0x00
549 0x30000000 0x00 0x00200000>,
550 <0x82000000 0x00 0x30200000 0x00
551 0x30200000 0x00 0x07e00000>;
552 status = "disabled";
553
554 clocks = <&topckgen CK_TOP_PEXTP_P0_SEL>,
555 <&infracfg_ao CK_INFRA_PCIE_GFMUX_TL_P0>,
556 <&infracfg_ao CK_INFRA_PCIE_PIPE_P0>,
557 <&infracfg_ao CK_INFRA_133M_PCIE_CK_P0>,
558 <&infracfg_ao CK_INFRA_PCIE_PERI_26M_CK_P0>;
559
560 #interrupt-cells = <1>;
561 interrupt-map-mask = <0 0 0 0x7>;
562 interrupt-map = <0 0 0 1 &pcie_intc0 0>,
563 <0 0 0 2 &pcie_intc0 1>,
564 <0 0 0 3 &pcie_intc0 2>,
565 <0 0 0 4 &pcie_intc0 3>;
566 pcie_intc0: interrupt-controller {
567 #address-cells = <0>;
568 #interrupt-cells = <1>;
569 interrupt-controller;
570 };
571 };
572
573 pcie1: pcie@11310000 {
574 compatible = "mediatek,mt7988-pcie",
575 "mediatek,mt7986-pcie";
576 device_type = "pci";
577 #address-cells = <3>;
578 #size-cells = <2>;
579 reg = <0 0x11310000 0 0x2000>;
580 reg-names = "pcie-mac";
581 linux,pci-domain = <1>;
582 interrupts = <GIC_SPI 169 IRQ_TYPE_LEVEL_HIGH>;
583 bus-range = <0x00 0xff>;
584 ranges = <0x81000000 0x00 0x38000000 0x00
585 0x38000000 0x00 0x00200000>,
586 <0x82000000 0x00 0x38200000 0x00
587 0x38200000 0x00 0x07e00000>;
588 status = "disabled";
589
590 clocks = <&topckgen CK_TOP_PEXTP_P1_SEL>,
591 <&infracfg_ao CK_INFRA_PCIE_GFMUX_TL_P1>,
592 <&infracfg_ao CK_INFRA_PCIE_PIPE_P1>,
593 <&infracfg_ao CK_INFRA_133M_PCIE_CK_P1>,
594 <&infracfg_ao CK_INFRA_PCIE_PERI_26M_CK_P1>;
595
596 #interrupt-cells = <1>;
597 interrupt-map-mask = <0 0 0 0x7>;
598 interrupt-map = <0 0 0 1 &pcie_intc1 0>,
599 <0 0 0 2 &pcie_intc1 1>,
600 <0 0 0 3 &pcie_intc1 2>,
601 <0 0 0 4 &pcie_intc1 3>;
602 pcie_intc1: interrupt-controller {
603 #address-cells = <0>;
604 #interrupt-cells = <1>;
605 interrupt-controller;
606 };
607 };
608
609 pcie2: pcie@11280000 {
610 compatible = "mediatek,mt7988-pcie",
611 "mediatek,mt7986-pcie";
612 device_type = "pci";
613 #address-cells = <3>;
614 #size-cells = <2>;
615 reg = <0 0x11280000 0 0x2000>;
616 reg-names = "pcie-mac";
617 linux,pci-domain = <3>;
618 interrupts = <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>;
619 bus-range = <0x00 0xff>;
620 ranges = <0x81000000 0x00 0x20000000 0x00
621 0x20000000 0x00 0x00200000>,
622 <0x82000000 0x00 0x20200000 0x00
623 0x20200000 0x00 0x07e00000>;
624 status = "disabled";
625
626 clocks = <&topckgen CK_TOP_PEXTP_P2_SEL>,
627 <&infracfg_ao CK_INFRA_PCIE_GFMUX_TL_P2>,
628 <&infracfg_ao CK_INFRA_PCIE_PIPE_P2>,
629 <&infracfg_ao CK_INFRA_133M_PCIE_CK_P2>,
630 <&infracfg_ao CK_INFRA_PCIE_PERI_26M_CK_P2>,
631 <&infracfg_ao CK_INFRA_PCIE_PERI_26M_CK_P3>;
632
633 phys = <&xphyu3port0 PHY_TYPE_PCIE>;
634 phy-names = "pcie-phy";
635
636 #interrupt-cells = <1>;
637 interrupt-map-mask = <0 0 0 0x7>;
638 interrupt-map = <0 0 0 1 &pcie_intc2 0>,
639 <0 0 0 2 &pcie_intc2 1>,
640 <0 0 0 3 &pcie_intc2 2>,
641 <0 0 0 4 &pcie_intc2 3>;
642 pcie_intc2: interrupt-controller {
643 #address-cells = <0>;
644 #interrupt-cells = <1>;
645 interrupt-controller;
646 };
647 };
648
649 pcie3: pcie@11290000 {
650 compatible = "mediatek,mt7988-pcie",
651 "mediatek,mt7986-pcie";
652 device_type = "pci";
653 #address-cells = <3>;
654 #size-cells = <2>;
655 reg = <0 0x11290000 0 0x2000>;
656 reg-names = "pcie-mac";
657 linux,pci-domain = <2>;
658 interrupts = <GIC_SPI 171 IRQ_TYPE_LEVEL_HIGH>;
659 bus-range = <0x00 0xff>;
660 ranges = <0x81000000 0x00 0x28000000 0x00
661 0x28000000 0x00 0x00200000>,
662 <0x82000000 0x00 0x28200000 0x00
663 0x28200000 0x00 0x07e00000>;
664 status = "disabled";
665
666 clocks = <&topckgen CK_TOP_PEXTP_P3_SEL>,
667 <&infracfg_ao CK_INFRA_PCIE_GFMUX_TL_P3>,
668 <&infracfg_ao CK_INFRA_PCIE_PIPE_P3>,
669 <&infracfg_ao CK_INFRA_133M_PCIE_CK_P3>,
670 <&infracfg_ao CK_INFRA_PCIE_PERI_26M_CK_P3>;
671
672 #interrupt-cells = <1>;
673 interrupt-map-mask = <0 0 0 0x7>;
674 interrupt-map = <0 0 0 1 &pcie_intc3 0>,
675 <0 0 0 2 &pcie_intc3 1>,
676 <0 0 0 3 &pcie_intc3 2>,
677 <0 0 0 4 &pcie_intc3 3>;
678 pcie_intc3: interrupt-controller {
679 #address-cells = <0>;
680 #interrupt-cells = <1>;
681 interrupt-controller;
682 };
683 };
684
685 pio: pinctrl@1001f000 {
686 compatible = "mediatek,mt7988-pinctrl";
687 reg = <0 0x1001f000 0 0x1000>,
688 <0 0x11c10000 0 0x1000>,
689 <0 0x11d00000 0 0x1000>,
690 <0 0x11d20000 0 0x1000>,
691 <0 0x11e00000 0 0x1000>,
692 <0 0x11f00000 0 0x1000>,
693 <0 0x1000b000 0 0x1000>;
694 reg-names = "gpio_base", "iocfg_tr_base", "iocfg_br_base",
695 "iocfg_rb_base", "iocfg_lb_base", "iocfg_tl_base",
696 "eint";
697 gpio-controller;
698 #gpio-cells = <2>;
699 gpio-ranges = <&pio 0 0 83>;
700 interrupt-controller;
developera9e41142022-11-01 09:46:14 +0800701 interrupts = <GIC_SPI 225 IRQ_TYPE_LEVEL_HIGH>;
developer2cdaeb12022-10-04 20:25:05 +0800702 interrupt-parent = <&gic>;
703 #interrupt-cells = <2>;
704 };
705
706 ethsys: syscon@15000000 {
707 #address-cells = <1>;
708 #size-cells = <1>;
709 compatible = "mediatek,mt7988-ethsys",
710 "syscon";
711 reg = <0 0x15000000 0 0x1000>;
712 #clock-cells = <1>;
713 #reset-cells = <1>;
714
715 ethsysrst: reset-controller {
716 compatible = "ti,syscon-reset";
717 #reset-cells = <1>;
718 ti,reset-bits =
719 <0x34 4 0x34 4 0x34 4
720 (ASSERT_SET | DEASSERT_CLEAR | STATUS_SET)>;
721 };
722 };
723
724 ethwarp: syscon@15031000 {
725 compatible = "mediatek,mt7988-ethwarp", "syscon";
726 reg = <0 0x15031000 0 0x1000>;
727 #clock-cells = <1>;
728 };
729
730 switch0: switch0@15020000 {
731 #address-cells = <1>;
732 #size-cells = <1>;
733 compatible = "mediatek,mt7988-switch", "syscon";
734 reg = <0 0x15020000 0 0x8000>;
735 };
736
737 eth: ethernet@15100000 {
738 compatible = "mediatek,mt7988-eth";
739 reg = <0 0x15100000 0 0x80000>,
740 <0 0x15400000 0 0x380000>;
741 interrupts = <GIC_SPI 196 IRQ_TYPE_LEVEL_HIGH>,
742 <GIC_SPI 197 IRQ_TYPE_LEVEL_HIGH>,
743 <GIC_SPI 198 IRQ_TYPE_LEVEL_HIGH>,
744 <GIC_SPI 199 IRQ_TYPE_LEVEL_HIGH>;
745 clocks = <&system_clk>,
746 <&system_clk>,
747 <&system_clk>,
748 <&system_clk>,
749 <&system_clk>,
750 <&system_clk>,
751 <&system_clk>,
752 <&system_clk>,
753 <&system_clk>,
754 <&system_clk>,
755 <&system_clk>,
756 <&system_clk>,
757 <&system_clk>;
758 clock-names = "fe", "gp2", "gp1", "wocpu1", "wocpu0",
759 "sgmii_tx250m", "sgmii_rx250m",
760 "sgmii_cdr_ref", "sgmii_cdr_fb",
761 "sgmii2_tx250m", "sgmii2_rx250m",
762 "sgmii2_cdr_ref", "sgmii2_cdr_fb";
763 mediatek,ethsys = <&ethsys>;
764 mediatek,sgmiisys = <&sgmiisys0>, <&sgmiisys1>;
765 mediatek,usxgmiisys = <&usxgmiisys0>, <&usxgmiisys1>;
766 mediatek,xfi_pextp = <&xfi_pextp0>, <&xfi_pextp1>;
767 mediatek,xfi_pll = <&xfi_pll>;
768 mediatek,infracfg = <&topmisc>;
769 mediatek,toprgu = <&watchdog>;
770 #reset-cells = <1>;
771 #address-cells = <1>;
772 #size-cells = <0>;
773 status = "disabled";
774 };
775
776 hnat: hnat@15000000 {
777 compatible = "mediatek,mtk-hnat_v5";
778 reg = <0 0x15100000 0 0x80000>;
779 resets = <&ethsys 0>;
780 reset-names = "mtketh";
781 status = "disabled";
782 };
783
784 sgmiisys0: syscon@10060000 {
785 compatible = "mediatek,mt7988-sgmiisys",
786 "mediatek,mt7988-sgmiisys_0",
787 "syscon";
788 reg = <0 0x10060000 0 0x1000>;
789 #clock-cells = <1>;
790 };
791
792 sgmiisys1: syscon@10070000 {
793 compatible = "mediatek,mt7988-sgmiisys",
794 "mediatek,mt7988-sgmiisys_1",
795 "syscon";
796 reg = <0 0x10070000 0 0x1000>;
797 #clock-cells = <1>;
798 };
799
800 usxgmiisys0: usxgmiisys@10080000 {
801 compatible = "mediatek,mt7988-usxgmiisys",
802 "mediatek,mt7988-usxgmiisys_0",
803 "syscon";
804 reg = <0 0x10080000 0 0x1000>;
805 #clock-cells = <1>;
806 };
807
808 usxgmiisys1: usxgmiisys@10081000 {
809 compatible = "mediatek,mt7988-usxgmiisys",
810 "mediatek,mt7988-usxgmiisys_1",
811 "syscon";
812 reg = <0 0x10081000 0 0x1000>;
813 #clock-cells = <1>;
814 };
815
816 xfi_pextp0: xfi_pextp@11f20000 {
817 compatible = "mediatek,mt7988-xfi_pextp",
818 "mediatek,mt7988-xfi_pextp_0",
819 "syscon";
820 reg = <0 0x11f20000 0 0x10000>;
821 #clock-cells = <1>;
822 };
823
824 xfi_pextp1: xfi_pextp@11f30000 {
825 compatible = "mediatek,mt7988-xfi_pextp",
826 "mediatek,mt7988-xfi_pextp_1",
827 "syscon";
828 reg = <0 0x11f30000 0 0x10000>;
829 #clock-cells = <1>;
830 };
831
832 xfi_pll: xfi_pll@11f40000 {
833 compatible = "mediatek,mt7988-xfi_pll", "syscon";
834 reg = <0 0x11f40000 0 0x1000>;
835 #clock-cells = <1>;
836 };
837
838 topmisc: topmisc@11d10000 {
839 compatible = "mediatek,mt7988-topmisc", "syscon",
840 "mediatek,mt7988-power-controller";
841 reg = <0 0x11d10000 0 0x10000>;
842 #clock-cells = <1>;
843 #power-domain-cells = <1>;
844 #address-cells = <1>;
845 #size-cells = <0>;
846 /* power domain of the SoC */
847 tops0@MT7988_POWER_DOMAIN_TOPS0 {
848 reg = <MT7988_POWER_DOMAIN_TOPS0>;
849 #power-domain-cells = <0>;
850 };
851 tops1@MT7988_POWER_DOMAIN_TOPS1 {
852 reg = <MT7988_POWER_DOMAIN_TOPS1>;
853 #power-domain-cells = <0>;
854 };
855 eth2p5@MT7988_POWER_DOMAIN_ETH2P5 {
856 reg = <MT7988_POWER_DOMAIN_ETH2P5>;
857 #power-domain-cells = <0>;
858 };
859 };
860
861 snand: snfi@11001000 {
862 compatible = "mediatek,mt7986-snand";
863 reg = <0 0x11001000 0 0x1000>, <0 0x11002000 0 0x1000>;
864 reg-names = "nfi", "ecc";
865 interrupts = <GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>;
866 clocks = <&system_clk>,
867 <&system_clk>,
868 <&system_clk>,
869 <&system_clk>;
870 clock-names = "nfi_clk", "pad_clk", "ecc_clk", "nfi_hclk";
871 #address-cells = <1>;
872 #size-cells = <0>;
873 status = "disabled";
874 };
875
876 wbsys: wbsys@18000000 {
877 compatible = "mediatek,wbsys";
878 reg = <0 0x18000000 0 0x1000000>;
879 linux,pci-domain = <4>;
880 interrupts = <GIC_SPI 213 IRQ_TYPE_LEVEL_HIGH>,
881 <GIC_SPI 214 IRQ_TYPE_LEVEL_HIGH>,
882 <GIC_SPI 215 IRQ_TYPE_LEVEL_HIGH>,
883 <GIC_SPI 216 IRQ_TYPE_LEVEL_HIGH>;
884 chip_id = <0x7981>;
885 };
886
887 wed_pcie: wed_pcie@10003000 {
888 compatible = "mediatek,wed_pcie";
889 reg = <0 0x10003000 0 0x10>;
890 };
891
892 spi0: spi@11007000 {
893 compatible = "mediatek,ipm-spi-quad";
894 reg = <0 0x11007000 0 0x100>;
895 interrupts = <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>;
896 clocks = <&topckgen CK_TOP_CB_M_D2>,
897 <&topckgen CK_TOP_SPI_SEL>,
898 <&infracfg_ao CK_INFRA_104M_SPI0>,
899 <&infracfg_ao CK_INFRA_66M_SPI0_HCK>;
900 clock-names = "parent-clk", "sel-clk", "spi-clk", "spi-hclk";
901 status = "disabled";
902 };
903
904 spi1: spi@11008000 {
905 compatible = "mediatek,ipm-spi-single";
906 reg = <0 0x11008000 0 0x100>;
907 interrupts = <GIC_SPI 141 IRQ_TYPE_LEVEL_HIGH>;
908 clocks = <&topckgen CK_TOP_CB_M_D2>,
909 <&topckgen CK_TOP_SPI_SEL>,
910 <&infracfg_ao CK_INFRA_104M_SPI1>,
911 <&infracfg_ao CK_INFRA_66M_SPI1_HCK>;
912 clock-names = "parent-clk", "sel-clk", "spi-clk", "spi-hclk";
913 status = "disabled";
914 };
915
916 spi2: spi@11009000 {
917 compatible = "mediatek,ipm-spi-quad";
918 reg = <0 0x11009000 0 0x100>;
919 interrupts = <GIC_SPI 142 IRQ_TYPE_LEVEL_HIGH>;
920 clocks = <&topckgen CK_TOP_CB_M_D2>,
921 <&topckgen CK_TOP_SPI_SEL>,
922 <&infracfg_ao CK_INFRA_104M_SPI2_BCK>,
923 <&infracfg_ao CK_INFRA_66M_SPI2_HCK>;
924 clock-names = "parent-clk", "sel-clk", "spi-clk", "spi-hclk";
925 status = "disabled";
926 };
927
928 consys: consys@10000000 {
929 compatible = "mediatek,mt7981-consys";
930 reg = <0 0x10000000 0 0x8600000>;
931 memory-region = <&wmcpu_emi>;
932 };
933
934 xhci0: xhci@11190000 {
935 compatible = "mediatek,mt7988-xhci",
936 "mediatek,mtk-xhci";
937 reg = <0 0x11190000 0 0x2e00>,
938 <0 0x11193e00 0 0x0100>;
939 reg-names = "mac", "ippc";
940 interrupts = <GIC_SPI 173 IRQ_TYPE_LEVEL_HIGH>;
941 phys = <&xphyu2port0 PHY_TYPE_USB2>,
942 <&xphyu3port0 PHY_TYPE_USB3>;
943 clocks = <&system_clk>,
944 <&system_clk>,
945 <&system_clk>,
946 <&system_clk>,
947 <&system_clk>;
948 clock-names = "sys_ck",
949 "xhci_ck",
950 "ref_ck",
951 "mcu_ck",
952 "dma_ck";
953 #address-cells = <2>;
954 #size-cells = <2>;
developer8cdcb262022-10-27 14:36:15 +0800955 mediatek,p0_speed_fixup;
developer2cdaeb12022-10-04 20:25:05 +0800956 status = "okay";
957 };
958
959 usbxphy: usb-phy@11e10000 {
960 compatible = "mediatek,mt7988",
961 "mediatek,xsphy";
962 #address-cells = <2>;
963 #size-cells = <2>;
964 ranges;
965 status = "okay";
966
967 xphyu2port0: usb-phy@11e10000 {
968 reg = <0 0x11e10000 0 0x400>;
969 clocks = <&system_clk>;
970 clock-names = "ref";
971 #phy-cells = <1>;
972 status = "okay";
973 };
974
975 xphyu3port0: usb-phy@11e13000 {
976 reg = <0 0x11e13400 0 0x500>;
977 clocks = <&system_clk>;
978 clock-names = "ref";
979 #phy-cells = <1>;
980 mediatek,syscon-type = <&topmisc 0x218 0>;
981 status = "okay";
982 };
983 };
984
985 xhci1: xhci@11200000 {
986 compatible = "mediatek,mt7988-xhci",
987 "mediatek,mtk-xhci";
988 reg = <0 0x11200000 0 0x2e00>,
989 <0 0x11203e00 0 0x0100>;
990 reg-names = "mac", "ippc";
991 interrupts = <GIC_SPI 172 IRQ_TYPE_LEVEL_HIGH>;
992 phys = <&tphyu2port0 PHY_TYPE_USB2>,
993 <&tphyu3port0 PHY_TYPE_USB3>;
994 clocks = <&system_clk>,
995 <&system_clk>,
996 <&system_clk>,
997 <&system_clk>,
998 <&system_clk>;
999 clock-names = "sys_ck",
1000 "xhci_ck",
1001 "ref_ck",
1002 "mcu_ck",
1003 "dma_ck";
1004 #address-cells = <2>;
1005 #size-cells = <2>;
1006 status = "okay";
1007 };
1008
1009 usbtphy: usb-phy@11c50000 {
1010 compatible = "mediatek,mt7988",
1011 "mediatek,generic-tphy-v2";
1012 #address-cells = <2>;
1013 #size-cells = <2>;
1014 ranges;
1015 status = "okay";
1016
1017 tphyu2port0: usb-phy@11c50000 {
1018 reg = <0 0x11c50000 0 0x700>;
1019 clocks = <&system_clk>;
1020 clock-names = "ref";
1021 #phy-cells = <1>;
1022 status = "okay";
1023 };
1024
1025 tphyu3port0: usb-phy@11c50700 {
1026 reg = <0 0x11c50700 0 0x900>;
1027 clocks = <&system_clk>;
1028 clock-names = "ref";
1029 #phy-cells = <1>;
developer8cdcb262022-10-27 14:36:15 +08001030 mediatek,usb3-pll-ssc-delta;
1031 mediatek,usb3-pll-ssc-delta1;
developer2cdaeb12022-10-04 20:25:05 +08001032 status = "okay";
1033 };
1034 };
1035
1036 clk40m: oscillator@0 {
1037 compatible = "fixed-clock";
1038 #clock-cells = <0>;
1039 clock-frequency = <40000000>;
1040 clock-output-names = "clkxtal";
1041 };
1042
1043 infracfg_ao: infracfg_ao@10001000 {
1044 compatible = "mediatek,mt7988-infracfg_ao", "syscon";
1045 reg = <0 0x10001000 0 0x1000>;
1046 #clock-cells = <1>;
1047 };
1048
1049 infracfg: infracfg@10209000 {
1050 compatible = "mediatek,mt7988-infracfg", "syscon";
1051 reg = <0 0x10209000 0 0x1000>;
1052 #clock-cells = <1>;
1053 };
1054
1055 topckgen: topckgen@1001B000 {
1056 compatible = "mediatek,mt7988-topckgen", "syscon";
1057 reg = <0 0x1001B000 0 0x1000>;
1058 #clock-cells = <1>;
1059 };
1060
1061 apmixedsys: apmixedsys@1001E000 {
1062 compatible = "mediatek,mt7988-apmixedsys", "syscon";
1063 reg = <0 0x1001E000 0 0x1000>;
1064 #clock-cells = <1>;
1065 };
1066
1067 mcusys: mcusys@100E0000 {
1068 compatible = "mediatek,mt7988-mcusys", "syscon";
1069 reg = <0 0x100E0000 0 0x1000>;
1070 #clock-cells = <1>;
1071 };
1072
1073 clkitg: clkitg {
1074 compatible = "simple-bus";
1075 };
1076
1077 efuse: efuse@11f50000 {
1078 compatible = "mediatek,efuse";
1079 reg = <0 0x11f50000 0 0x1000>;
1080 #address-cells = <1>;
1081 #size-cells = <1>;
1082
1083 lvts_calibration: calib@918 {
1084 reg = <0x918 0x28>;
1085 };
1086 phy_calibration_p0: calib@940 {
1087 reg = <0x940 0x10>;
1088 };
1089 phy_calibration_p1: calib@954 {
1090 reg = <0x954 0x10>;
1091 };
1092 phy_calibration_p2: calib@968 {
1093 reg = <0x968 0x10>;
1094 };
1095 phy_calibration_p3: calib@97c {
1096 reg = <0x97c 0x10>;
1097 };
1098 cpufreq_calibration: calib@278 {
1099 reg = <0x278 0x1>;
1100 };
1101 };
1102};
1103
1104#include "mt7988-clkitg.dtsi"