blob: c9da6136a128cdaf0d8552518e3b46515fc722a9 [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";
developer36e6ca22023-04-26 18:04:30 +080029 next-level-cache = <&l2_cache>;
developer2cdaeb12022-10-04 20:25:05 +080030 reg = <0x0>;
31 clocks = <&mcusys CK_MCU_ARM_DIV_SEL>,
32 <&topckgen CK_TOP_CB_NET1_D4>,
33 <&apmixedsys CK_APMIXED_ARM_B>,
34 <&mcusys CK_MCU_BUS_DIV_SEL>,
35 <&apmixedsys CK_APMIXED_CCIPLL2_B>;
36 clock-names = "cpu", "intermediate", "armpll", "cci",
37 "ccipll";
38 operating-points-v2 = <&cluster0_opp>;
39 nvmem-cells = <&cpufreq_calibration>;
40 nvmem-cell-names = "calibration-data";
41 };
42
43 cpu@1 {
44 device_type = "cpu";
45 compatible = "arm,cortex-a73";
46 enable-method = "psci";
developer36e6ca22023-04-26 18:04:30 +080047 next-level-cache = <&l2_cache>;
developer2cdaeb12022-10-04 20:25:05 +080048 reg = <0x1>;
49 clocks = <&mcusys CK_MCU_ARM_DIV_SEL>,
50 <&topckgen CK_TOP_CB_NET1_D4>,
51 <&apmixedsys CK_APMIXED_ARM_B>,
52 <&mcusys CK_MCU_BUS_DIV_SEL>,
53 <&apmixedsys CK_APMIXED_CCIPLL2_B>;
54 clock-names = "cpu", "intermediate", "armpll", "cci",
55 "ccipll";
56 operating-points-v2 = <&cluster0_opp>;
57 nvmem-cells = <&cpufreq_calibration>;
58 nvmem-cell-names = "calibration-data";
59 };
60
61 cpu@2 {
62 device_type = "cpu";
63 compatible = "arm,cortex-a73";
64 enable-method = "psci";
developer36e6ca22023-04-26 18:04:30 +080065 next-level-cache = <&l2_cache>;
developer2cdaeb12022-10-04 20:25:05 +080066 reg = <0x2>;
67 clocks = <&mcusys CK_MCU_ARM_DIV_SEL>,
68 <&topckgen CK_TOP_CB_NET1_D4>,
69 <&apmixedsys CK_APMIXED_ARM_B>,
70 <&mcusys CK_MCU_BUS_DIV_SEL>,
71 <&apmixedsys CK_APMIXED_CCIPLL2_B>;
72 clock-names = "cpu", "intermediate", "armpll", "cci",
73 "ccipll";
74 operating-points-v2 = <&cluster0_opp>;
75 nvmem-cells = <&cpufreq_calibration>;
76 nvmem-cell-names = "calibration-data";
77 };
78
79 cpu@3 {
80 device_type = "cpu";
81 compatible = "arm,cortex-a73";
82 enable-method = "psci";
developer36e6ca22023-04-26 18:04:30 +080083 next-level-cache = <&l2_cache>;
developer2cdaeb12022-10-04 20:25:05 +080084 reg = <0x3>;
85 clocks = <&mcusys CK_MCU_ARM_DIV_SEL>,
86 <&topckgen CK_TOP_CB_NET1_D4>,
87 <&apmixedsys CK_APMIXED_ARM_B>,
88 <&mcusys CK_MCU_BUS_DIV_SEL>,
89 <&apmixedsys CK_APMIXED_CCIPLL2_B>;
90 clock-names = "cpu", "intermediate", "armpll", "cci",
91 "ccipll";
92 operating-points-v2 = <&cluster0_opp>;
93 nvmem-cells = <&cpufreq_calibration>;
94 nvmem-cell-names = "calibration-data";
95 };
96
developer36e6ca22023-04-26 18:04:30 +080097 l2_cache: l2-cache {
98 compatible = "cache";
99 cache-level = <2>;
100 };
101
developer2cdaeb12022-10-04 20:25:05 +0800102 cluster0_opp: opp_table0 {
103 compatible = "operating-points-v2";
104 opp-shared;
105 opp00 {
106 opp-hz = /bits/ 64 <800000000>;
107 opp-microvolt = <850000>;
108 };
109 opp01 {
110 opp-hz = /bits/ 64 <1100000000>;
111 opp-microvolt = <850000>;
112 };
113 opp02 {
114 opp-hz = /bits/ 64 <1500000000>;
115 opp-microvolt = <850000>;
116 };
117 opp03 {
118 opp-hz = /bits/ 64 <1800000000>;
119 opp-microvolt = <900000>;
120 };
121 };
122 };
123
developerb6555332022-11-30 15:52:42 +0800124 pmu {
125 compatible = "arm,cortex-a73-pmu";
126 interrupt-parent = <&gic>;
developere653e622023-04-20 21:38:45 +0800127 interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_LOW>;
developerb6555332022-11-30 15:52:42 +0800128 };
129
developer2cdaeb12022-10-04 20:25:05 +0800130 thermal-zones {
131 cpu_thermal: cpu-thermal {
132 polling-delay-passive = <1000>;
133 polling-delay = <1000>;
134 thermal-sensors = <&lvts 0>;
135 trips {
136 cpu_trip_crit: crit {
137 temperature = <125000>;
138 hysteresis = <2000>;
139 type = "critical";
140 };
141
142 cpu_trip_hot: hot {
143 temperature = <120000>;
144 hysteresis = <2000>;
145 type = "hot";
146 };
147
148 cpu_trip_active_high: active-high {
149 temperature = <115000>;
150 hysteresis = <2000>;
151 type = "active";
152 };
153
154 cpu_trip_active_low: active-low {
155 temperature = <85000>;
156 hysteresis = <2000>;
157 type = "active";
158 };
159
160 cpu_trip_passive: passive {
161 temperature = <40000>;
162 hysteresis = <2000>;
163 type = "passive";
164 };
165 };
166
167 cooling-maps {
168 cpu-active-high {
169 /* active: set fan to cooling level 2 */
170 cooling-device = <&fan 2 2>;
171 trip = <&cpu_trip_active_high>;
172 };
173
174 cpu-active-low {
175 /* active: set fan to cooling level 1 */
176 cooling-device = <&fan 1 1>;
177 trip = <&cpu_trip_active_low>;
178 };
179
180 cpu-passive {
181 /* passive: set fan to cooling level 0 */
182 cooling-device = <&fan 0 0>;
183 trip = <&cpu_trip_passive>;
184 };
185 };
186
187 };
188 };
189
190 mmc0: mmc@11230000 {
191 compatible = "mediatek,mt7986-mmc";
192 reg = <0 0x11230000 0 0x1000>,
193 <0 0x11D60000 0 0x1000>;
194 interrupts = <GIC_SPI 143 IRQ_TYPE_LEVEL_HIGH>;
195 clocks = <&infracfg_ao CK_INFRA_MSDC400>,
196 <&infracfg_ao CK_INFRA_MSDC2_HCK>,
197 <&infracfg_ao CK_INFRA_133M_MSDC_0_HCK>,
198 <&infracfg_ao CK_INFRA_66M_MSDC_0_HCK>;
199 clock-names = "source", "hclk", "ahb_cg", "axi_cg";
200 status = "disabled";
201 };
202
203 wed: wed@15010000 {
204 compatible = "mediatek,wed";
205 wed_num = <3>;
206 /* add this property for wed get the pci slot number. */
207 pci_slot_map = <0>, <1>, <2>;
208 reg = <0 0x15010000 0 0x2000>,
209 <0 0x15012000 0 0x2000>,
210 <0 0x15014000 0 0x2000>;
211 interrupt-parent = <&gic>;
212 interrupts = <GIC_SPI 205 IRQ_TYPE_LEVEL_HIGH>,
213 <GIC_SPI 206 IRQ_TYPE_LEVEL_HIGH>,
214 <GIC_SPI 270 IRQ_TYPE_LEVEL_HIGH>;
215 };
216
217 wed2: wed2@15012000 {
218 compatible = "mediatek,wed2";
219 wed_num = <3>;
220 /* add this property for wed get the pci slot number. */
221 reg = <0 0x15010000 0 0x2000>,
222 <0 0x15012000 0 0x2000>,
223 <0 0x15014000 0 0x2000>;
224 interrupt-parent = <&gic>;
225 interrupts = <GIC_SPI 205 IRQ_TYPE_LEVEL_HIGH>,
226 <GIC_SPI 206 IRQ_TYPE_LEVEL_HIGH>,
227 <GIC_SPI 270 IRQ_TYPE_LEVEL_HIGH>;
228 };
229
230 wed3: wed3@15014000 {
231 compatible = "mediatek,wed3";
232 wed_num = <3>;
233 /* add this property for wed get the pci slot number. */
234 reg = <0 0x15010000 0 0x2000>,
235 <0 0x15012000 0 0x2000>,
236 <0 0x15014000 0 0x2000>;
237 interrupt-parent = <&gic>;
238 interrupts = <GIC_SPI 205 IRQ_TYPE_LEVEL_HIGH>,
239 <GIC_SPI 206 IRQ_TYPE_LEVEL_HIGH>,
240 <GIC_SPI 270 IRQ_TYPE_LEVEL_HIGH>;
241 };
242
243 wdma: wdma@15104800 {
244 compatible = "mediatek,wed-wdma";
245 reg = <0 0x15104800 0 0x400>,
246 <0 0x15104c00 0 0x400>,
247 <0 0x15105000 0 0x400>;
248 };
249
250 ap2woccif: ap2woccif@151A5000 {
251 compatible = "mediatek,ap2woccif";
252 reg = <0 0x151A5000 0 0x1000>,
253 <0 0x152A5000 0 0x1000>,
254 <0 0x153A5000 0 0x1000>;
255 interrupt-parent = <&gic>;
256 interrupts = <GIC_SPI 211 IRQ_TYPE_LEVEL_HIGH>,
257 <GIC_SPI 212 IRQ_TYPE_LEVEL_HIGH>,
258 <GIC_SPI 272 IRQ_TYPE_LEVEL_HIGH>;
259 };
260
261 wocpu0_ilm: wocpu0_ilm@151E0000 {
262 compatible = "mediatek,wocpu0_ilm";
263 reg = <0 0x151E0000 0 0x8000>;
264 };
265
266 wocpu1_ilm: wocpu1_ilm@152E0000 {
267 compatible = "mediatek,wocpu1_ilm";
268 reg = <0 0x152E0000 0 0x8000>;
269 };
270
271 wocpu2_ilm: wocpu2_ilm@153E0000 {
272 compatible = "mediatek,wocpu2_ilm";
273 reg = <0 0x153E0000 0 0x8000>;
274 };
275
276 wocpu_dlm: wocpu_dlm@151E8000 {
277 compatible = "mediatek,wocpu_dlm";
278 reg = <0 0x151E8000 0 0x2000>,
279 <0 0x152E8000 0 0x2000>,
280 <0 0x153E8000 0 0x2000>;
281
282 resets = <&ethsysrst 0>;
283 reset-names = "wocpu_rst";
284 };
285
286 cpu_boot: wocpu_boot@15194000 {
287 compatible = "mediatek,wocpu_boot";
288 reg = <0 0x15194000 0 0x1000>,
289 <0 0x15294000 0 0x1000>,
290 <0 0x15394000 0 0x1000>;
291 };
292
293 reserved-memory {
294 #address-cells = <2>;
295 #size-cells = <2>;
296 ranges;
297
developer739ffc62023-03-01 20:42:18 +0800298 ramoops: ramoops@42ff0000{
299 compatible = "ramoops";
300 reg = <0x0 0x42ff0000 0x0 0x10000>;
301 record-size = <0x2000>;
302 console-size = <0x2000>;
303 pmsg-size = <0x2000>;
304 };
305
developer5300b702023-03-21 11:49:39 +0800306 /* 320 KiB reserved for ARM Trusted Firmware (BL31 + BL32) */
developer2cdaeb12022-10-04 20:25:05 +0800307 secmon_reserved: secmon@43000000 {
developer5300b702023-03-21 11:49:39 +0800308 reg = <0 0x43000000 0 0x50000>;
developer2cdaeb12022-10-04 20:25:05 +0800309 no-map;
310 };
311
312 wmcpu_emi: wmcpu-reserved@47CC0000 {
313 compatible = "mediatek,wmcpu-reserved";
314 no-map;
315 reg = <0 0x47CC0000 0 0x00100000>;
316 };
317
318 wocpu0_emi: wocpu0_emi@4F600000 {
319 compatible = "mediatek,wocpu0_emi";
320 no-map;
321 reg = <0 0x4F600000 0 0x40000>;
322 shared = <0>;
323 };
324
325 wocpu1_emi: wocpu1_emi@4F640000 {
326 compatible = "mediatek,wocpu1_emi";
327 no-map;
328 reg = <0 0x4F640000 0 0x40000>;
329 shared = <0>;
330 };
331
332 wocpu2_emi: wocpu2_emi@4F680000 {
333 compatible = "mediatek,wocpu2_emi";
334 no-map;
335 reg = <0 0x4F680000 0 0x40000>;
336 shared = <0>;
337 };
338
339 wocpu_data: wocpu_data@4F700000 {
340 compatible = "mediatek,wocpu_data";
341 no-map;
342 reg = <0 0x4F700000 0 0x800000>;
343 shared = <1>;
344 };
345 };
346
347 psci {
348 compatible = "arm,psci-0.2";
349 method = "smc";
350 };
351
352 system_clk: dummy_system_clk {
353 compatible = "fixed-clock";
354 clock-frequency = <40000000>;
355 #clock-cells = <0>;
356 };
357
developer2cdaeb12022-10-04 20:25:05 +0800358 timer {
359 compatible = "arm,armv8-timer";
360 interrupt-parent = <&gic>;
361 interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW>,
362 <GIC_PPI 14 IRQ_TYPE_LEVEL_LOW>,
363 <GIC_PPI 11 IRQ_TYPE_LEVEL_LOW>,
364 <GIC_PPI 10 IRQ_TYPE_LEVEL_LOW>;
365
366 };
367
developer2cdaeb12022-10-04 20:25:05 +0800368 watchdog: watchdog@1001c000 {
369 compatible = "mediatek,mt7622-wdt",
370 "mediatek,mt6589-wdt",
371 "syscon";
372 reg = <0 0x1001c000 0 0x1000>;
373 interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>;
374 #reset-cells = <1>;
375 };
376
377 phyfw: phy-firmware@f000000 {
378 compatible = "mediatek,2p5gphy-fw";
379 reg = <0 0x0f000000 0 0x8000>,
380 <0 0x0f100000 0 0x20000>,
381 <0 0x0f0f0000 0 0x200>;
382 };
383
developer23021292022-10-21 19:10:10 +0800384 boottrap: boottrap@1001f6f0 {
385 compatible = "mediatek,boottrap";
386 reg = <0 0x1001f6f0 0 0x20>;
387 };
388
developer2cdaeb12022-10-04 20:25:05 +0800389 gic: interrupt-controller@c000000 {
390 compatible = "arm,gic-v3";
391 #interrupt-cells = <3>;
392 interrupt-parent = <&gic>;
393 interrupt-controller;
394 reg = <0 0x0c000000 0 0x40000>, /* GICD */
395 <0 0x0c080000 0 0x200000>; /* GICR */
396
397 interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
398 };
399
400 trng: trng@1020f000 {
401 compatible = "mediatek,mt7988-rng";
402 };
403
404 uart0: serial@11000000 {
405 compatible = "mediatek,mt7986-uart",
406 "mediatek,mt6577-uart";
407 reg = <0 0x11000000 0 0x100>;
408 interrupts = <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>;
developer23b1e822022-11-30 13:39:54 +0800409 clocks = <&infracfg_ao CK_INFRA_52M_UART0_CK>;
410 clock-names = "bus";
411 assigned-clocks = <&topckgen CK_TOP_UART_SEL>,
412 <&infracfg_ao CK_INFRA_MUX_UART0_SEL>;
413 assigned-clock-parents = <&topckgen CK_TOP_CB_CKSQ_40M>,
414 <&infracfg CK_INFRA_UART_O0>;
developer2cdaeb12022-10-04 20:25:05 +0800415 status = "disabled";
416 };
417
418 uart1: serial@11000100 {
419 compatible = "mediatek,mt7986-uart",
420 "mediatek,mt6577-uart";
421 reg = <0 0x11000100 0 0x100>;
422 interrupts = <GIC_SPI 124 IRQ_TYPE_LEVEL_HIGH>;
developer23b1e822022-11-30 13:39:54 +0800423 clocks = <&infracfg_ao CK_INFRA_52M_UART1_CK>;
424 clock-names = "bus";
425 assigned-clocks = <&topckgen CK_TOP_UART_SEL>,
426 <&infracfg_ao CK_INFRA_MUX_UART1_SEL>;
427 assigned-clock-parents = <&topckgen CK_TOP_CB_CKSQ_40M>,
428 <&infracfg CK_INFRA_UART_O1>;
developer2cdaeb12022-10-04 20:25:05 +0800429 status = "disabled";
430 };
431
432 uart2: serial@11000200 {
433 compatible = "mediatek,mt7986-uart",
434 "mediatek,mt6577-uart";
435 reg = <0 0x11000200 0 0x100>;
436 interrupts = <GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>;
developer23b1e822022-11-30 13:39:54 +0800437 clocks = <&infracfg_ao CK_INFRA_52M_UART2_CK>;
438 clock-names = "bus";
439 assigned-clocks = <&topckgen CK_TOP_UART_SEL>,
440 <&infracfg_ao CK_INFRA_MUX_UART2_SEL>;
441 assigned-clock-parents = <&topckgen CK_TOP_CB_CKSQ_40M>,
442 <&infracfg CK_INFRA_UART_O2>;
developer2cdaeb12022-10-04 20:25:05 +0800443 status = "disabled";
444 };
445
446 i2c0: i2c@11003000 {
447 compatible = "mediatek,mt7988-i2c",
448 "mediatek,mt7981-i2c";
449 reg = <0 0x11003000 0 0x1000>,
450 <0 0x10217080 0 0x80>;
451 interrupts = <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>;
452 clock-div = <1>;
developer1fca7052022-12-23 17:57:35 +0800453 clocks = <&infracfg_ao CK_INFRA_I2C_BCK>,
454 <&infracfg_ao CK_INFRA_66M_AP_DMA_BCK>;
developer2cdaeb12022-10-04 20:25:05 +0800455 clock-names = "main", "dma";
456 #address-cells = <1>;
457 #size-cells = <0>;
458 status = "disabled";
459 };
460
461 i2c1: i2c@11004000 {
462 compatible = "mediatek,mt7988-i2c",
463 "mediatek,mt7981-i2c";
464 reg = <0 0x11004000 0 0x1000>,
465 <0 0x10217100 0 0x80>;
466 interrupts = <GIC_SPI 144 IRQ_TYPE_LEVEL_HIGH>;
467 clock-div = <1>;
developer1fca7052022-12-23 17:57:35 +0800468 clocks = <&infracfg_ao CK_INFRA_I2C_BCK>,
469 <&infracfg_ao CK_INFRA_66M_AP_DMA_BCK>;
developer2cdaeb12022-10-04 20:25:05 +0800470 clock-names = "main", "dma";
471 #address-cells = <1>;
472 #size-cells = <0>;
473 status = "disabled";
474 };
475
476 i2c2: i2c@11005000 {
477 compatible = "mediatek,mt7988-i2c",
478 "mediatek,mt7981-i2c";
479 reg = <0 0x11005000 0 0x1000>,
480 <0 0x10217180 0 0x80>;
481 interrupts = <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>;
482 clock-div = <1>;
developer1fca7052022-12-23 17:57:35 +0800483 clocks = <&infracfg_ao CK_INFRA_I2C_BCK>,
484 <&infracfg_ao CK_INFRA_66M_AP_DMA_BCK>;
developer2cdaeb12022-10-04 20:25:05 +0800485 clock-names = "main", "dma";
486 #address-cells = <1>;
487 #size-cells = <0>;
488 status = "disabled";
489 };
490
491 pwm: pwm@10048000 {
492 compatible = "mediatek,mt7988-pwm";
493 reg = <0 0x10048000 0 0x1000>;
494 #pwm-cells = <2>;
developer1ad6fe42022-11-02 11:33:26 +0800495 clocks = <&infracfg_ao CK_INFRA_66M_PWM_BCK>,
496 <&infracfg_ao CK_INFRA_66M_PWM_HCK>,
497 <&infracfg_ao CK_INFRA_66M_PWM_CK1>,
498 <&infracfg_ao CK_INFRA_66M_PWM_CK2>,
499 <&infracfg_ao CK_INFRA_66M_PWM_CK3>,
500 <&infracfg_ao CK_INFRA_66M_PWM_CK4>,
501 <&infracfg_ao CK_INFRA_66M_PWM_CK5>,
502 <&infracfg_ao CK_INFRA_66M_PWM_CK6>,
503 <&infracfg_ao CK_INFRA_66M_PWM_CK7>,
504 <&infracfg_ao CK_INFRA_66M_PWM_CK8>;
developer2cdaeb12022-10-04 20:25:05 +0800505 clock-names = "top", "main", "pwm1", "pwm2", "pwm3",
506 "pwm4","pwm5","pwm6","pwm7","pwm8";
507 status = "disabled";
508 };
509
510 fan: pwm-fan {
511 compatible = "pwm-fan";
512 /* cooling level (0, 1, 2) : (0% duty, 50% duty, 100% duty) */
513 cooling-levels = <0 128 255>;
514 #cooling-cells = <2>;
515 #thermal-sensor-cells = <1>;
516 status = "disabled";
517 };
518
519 lvts: lvts@1100a000 {
520 compatible = "mediatek,mt7988-lvts";
521 #thermal-sensor-cells = <1>;
522 reg = <0 0x1100a000 0 0x1000>;
developer1bbcf512022-11-18 16:09:33 +0800523 clocks = <&infracfg_ao CK_INFRA_26M_THERM_SYSTEM>;
developer2cdaeb12022-10-04 20:25:05 +0800524 clock-names = "lvts_clk";
525 nvmem-cells = <&lvts_calibration>;
526 nvmem-cell-names = "e_data1";
527 };
528
529 crypto: crypto@15600000 {
530 compatible = "inside-secure,safexcel-eip197b";
531 reg = <0 0x15600000 0 0x180000>;
532 interrupts = <GIC_SPI 214 IRQ_TYPE_LEVEL_HIGH>,
533 <GIC_SPI 215 IRQ_TYPE_LEVEL_HIGH>,
534 <GIC_SPI 216 IRQ_TYPE_LEVEL_HIGH>,
535 <GIC_SPI 217 IRQ_TYPE_LEVEL_HIGH>;
536 interrupt-names = "ring0", "ring1", "ring2", "ring3";
537 status = "okay";
538 };
539
developer3594afb2022-10-25 13:22:53 +0800540 afe: audio-controller@11210000 {
541 compatible = "mediatek,mt79xx-audio";
542 reg = <0 0x11210000 0 0x9000>;
543 interrupts = <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>;
544 clocks = <&infracfg_ao CK_INFRA_66M_AUD_SLV_BCK>,
545 <&infracfg_ao CK_INFRA_AUD_26M>,
546 <&infracfg_ao CK_INFRA_AUD_L>,
547 <&infracfg_ao CK_INFRA_AUD_AUD>,
548 <&infracfg_ao CK_INFRA_AUD_EG2>,
549 <&topckgen CK_TOP_AUD_SEL>,
550 <&topckgen CK_TOP_AUD_I2S_M>;
551 clock-names = "aud_bus_ck",
552 "aud_26m_ck",
553 "aud_l_ck",
554 "aud_aud_ck",
555 "aud_eg2_ck",
556 "aud_sel",
557 "aud_i2s_m";
558 assigned-clocks = <&topckgen CK_TOP_AUD_SEL>,
559 <&topckgen CK_TOP_A1SYS_SEL>,
560 <&topckgen CK_TOP_AUD_L_SEL>,
561 <&topckgen CK_TOP_A_TUNER_SEL>;
562 assigned-clock-parents = <&topckgen CK_TOP_CB_APLL2_196M>,
563 <&topckgen CK_TOP_CB_APLL2_D4>,
564 <&topckgen CK_TOP_CB_APLL2_196M>,
565 <&topckgen CK_TOP_CB_APLL2_D4>;
566 status = "disabled";
567 };
568
developer2cdaeb12022-10-04 20:25:05 +0800569 pcie0: pcie@11300000 {
570 compatible = "mediatek,mt7988-pcie",
571 "mediatek,mt7986-pcie";
572 device_type = "pci";
573 #address-cells = <3>;
574 #size-cells = <2>;
575 reg = <0 0x11300000 0 0x2000>;
576 reg-names = "pcie-mac";
577 linux,pci-domain = <0>;
578 interrupts = <GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>;
579 bus-range = <0x00 0xff>;
580 ranges = <0x81000000 0x00 0x30000000 0x00
581 0x30000000 0x00 0x00200000>,
582 <0x82000000 0x00 0x30200000 0x00
583 0x30200000 0x00 0x07e00000>;
developerca2082b2022-11-01 11:23:49 +0800584 clocks = <&infracfg_ao CK_INFRA_PCIE_PIPE_P0>,
developer2cdaeb12022-10-04 20:25:05 +0800585 <&infracfg_ao CK_INFRA_PCIE_GFMUX_TL_P0>,
developerca2082b2022-11-01 11:23:49 +0800586 <&infracfg_ao CK_INFRA_PCIE_PERI_26M_CK_P0>,
587 <&infracfg_ao CK_INFRA_133M_PCIE_CK_P0>;
588 clock-names = "pl_250m", "tl_26m", "peri_26m", "top_133m";
589 status = "disabled";
developer2cdaeb12022-10-04 20:25:05 +0800590
591 #interrupt-cells = <1>;
592 interrupt-map-mask = <0 0 0 0x7>;
593 interrupt-map = <0 0 0 1 &pcie_intc0 0>,
594 <0 0 0 2 &pcie_intc0 1>,
595 <0 0 0 3 &pcie_intc0 2>,
596 <0 0 0 4 &pcie_intc0 3>;
597 pcie_intc0: interrupt-controller {
598 #address-cells = <0>;
599 #interrupt-cells = <1>;
600 interrupt-controller;
601 };
developerde8a1062023-01-31 17:00:33 +0800602
603 slot0: pcie@0,0 {
604 reg = <0x0000 0 0 0 0>;
605 };
developer2cdaeb12022-10-04 20:25:05 +0800606 };
607
608 pcie1: pcie@11310000 {
609 compatible = "mediatek,mt7988-pcie",
610 "mediatek,mt7986-pcie";
611 device_type = "pci";
612 #address-cells = <3>;
613 #size-cells = <2>;
614 reg = <0 0x11310000 0 0x2000>;
615 reg-names = "pcie-mac";
616 linux,pci-domain = <1>;
617 interrupts = <GIC_SPI 169 IRQ_TYPE_LEVEL_HIGH>;
618 bus-range = <0x00 0xff>;
619 ranges = <0x81000000 0x00 0x38000000 0x00
620 0x38000000 0x00 0x00200000>,
621 <0x82000000 0x00 0x38200000 0x00
622 0x38200000 0x00 0x07e00000>;
developerca2082b2022-11-01 11:23:49 +0800623 clocks = <&infracfg_ao CK_INFRA_PCIE_PIPE_P1>,
developer2cdaeb12022-10-04 20:25:05 +0800624 <&infracfg_ao CK_INFRA_PCIE_GFMUX_TL_P1>,
developerca2082b2022-11-01 11:23:49 +0800625 <&infracfg_ao CK_INFRA_PCIE_PERI_26M_CK_P1>,
626 <&infracfg_ao CK_INFRA_133M_PCIE_CK_P1>;
627 clock-names = "pl_250m", "tl_26m", "peri_26m", "top_133m";
628 status = "disabled";
developer2cdaeb12022-10-04 20:25:05 +0800629
630 #interrupt-cells = <1>;
631 interrupt-map-mask = <0 0 0 0x7>;
632 interrupt-map = <0 0 0 1 &pcie_intc1 0>,
633 <0 0 0 2 &pcie_intc1 1>,
634 <0 0 0 3 &pcie_intc1 2>,
635 <0 0 0 4 &pcie_intc1 3>;
636 pcie_intc1: interrupt-controller {
637 #address-cells = <0>;
638 #interrupt-cells = <1>;
639 interrupt-controller;
640 };
641 };
642
643 pcie2: pcie@11280000 {
644 compatible = "mediatek,mt7988-pcie",
645 "mediatek,mt7986-pcie";
646 device_type = "pci";
647 #address-cells = <3>;
648 #size-cells = <2>;
649 reg = <0 0x11280000 0 0x2000>;
650 reg-names = "pcie-mac";
651 linux,pci-domain = <3>;
652 interrupts = <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>;
653 bus-range = <0x00 0xff>;
654 ranges = <0x81000000 0x00 0x20000000 0x00
655 0x20000000 0x00 0x00200000>,
656 <0x82000000 0x00 0x20200000 0x00
657 0x20200000 0x00 0x07e00000>;
developerca2082b2022-11-01 11:23:49 +0800658 clocks = <&infracfg_ao CK_INFRA_PCIE_PIPE_P2>,
developer2cdaeb12022-10-04 20:25:05 +0800659 <&infracfg_ao CK_INFRA_PCIE_GFMUX_TL_P2>,
developer2cdaeb12022-10-04 20:25:05 +0800660 <&infracfg_ao CK_INFRA_PCIE_PERI_26M_CK_P2>,
developerca2082b2022-11-01 11:23:49 +0800661 <&infracfg_ao CK_INFRA_133M_PCIE_CK_P2>;
662 clock-names = "pl_250m", "tl_26m", "peri_26m", "top_133m";
663 status = "disabled";
developer2cdaeb12022-10-04 20:25:05 +0800664
665 phys = <&xphyu3port0 PHY_TYPE_PCIE>;
666 phy-names = "pcie-phy";
667
668 #interrupt-cells = <1>;
669 interrupt-map-mask = <0 0 0 0x7>;
670 interrupt-map = <0 0 0 1 &pcie_intc2 0>,
671 <0 0 0 2 &pcie_intc2 1>,
672 <0 0 0 3 &pcie_intc2 2>,
673 <0 0 0 4 &pcie_intc2 3>;
674 pcie_intc2: interrupt-controller {
675 #address-cells = <0>;
676 #interrupt-cells = <1>;
677 interrupt-controller;
678 };
679 };
680
681 pcie3: pcie@11290000 {
682 compatible = "mediatek,mt7988-pcie",
683 "mediatek,mt7986-pcie";
684 device_type = "pci";
685 #address-cells = <3>;
686 #size-cells = <2>;
687 reg = <0 0x11290000 0 0x2000>;
688 reg-names = "pcie-mac";
689 linux,pci-domain = <2>;
690 interrupts = <GIC_SPI 171 IRQ_TYPE_LEVEL_HIGH>;
691 bus-range = <0x00 0xff>;
692 ranges = <0x81000000 0x00 0x28000000 0x00
693 0x28000000 0x00 0x00200000>,
694 <0x82000000 0x00 0x28200000 0x00
695 0x28200000 0x00 0x07e00000>;
developerca2082b2022-11-01 11:23:49 +0800696 clocks = <&infracfg_ao CK_INFRA_PCIE_PIPE_P3>,
developer2cdaeb12022-10-04 20:25:05 +0800697 <&infracfg_ao CK_INFRA_PCIE_GFMUX_TL_P3>,
developerca2082b2022-11-01 11:23:49 +0800698 <&infracfg_ao CK_INFRA_PCIE_PERI_26M_CK_P3>,
699 <&infracfg_ao CK_INFRA_133M_PCIE_CK_P3>;
700 clock-names = "pl_250m", "tl_26m", "peri_26m", "top_133m";
701 status = "disabled";
developer2cdaeb12022-10-04 20:25:05 +0800702
703 #interrupt-cells = <1>;
704 interrupt-map-mask = <0 0 0 0x7>;
705 interrupt-map = <0 0 0 1 &pcie_intc3 0>,
706 <0 0 0 2 &pcie_intc3 1>,
707 <0 0 0 3 &pcie_intc3 2>,
708 <0 0 0 4 &pcie_intc3 3>;
709 pcie_intc3: interrupt-controller {
710 #address-cells = <0>;
711 #interrupt-cells = <1>;
712 interrupt-controller;
713 };
714 };
715
716 pio: pinctrl@1001f000 {
717 compatible = "mediatek,mt7988-pinctrl";
718 reg = <0 0x1001f000 0 0x1000>,
719 <0 0x11c10000 0 0x1000>,
720 <0 0x11d00000 0 0x1000>,
721 <0 0x11d20000 0 0x1000>,
722 <0 0x11e00000 0 0x1000>,
723 <0 0x11f00000 0 0x1000>,
724 <0 0x1000b000 0 0x1000>;
725 reg-names = "gpio_base", "iocfg_tr_base", "iocfg_br_base",
726 "iocfg_rb_base", "iocfg_lb_base", "iocfg_tl_base",
727 "eint";
728 gpio-controller;
729 #gpio-cells = <2>;
730 gpio-ranges = <&pio 0 0 83>;
731 interrupt-controller;
developera9e41142022-11-01 09:46:14 +0800732 interrupts = <GIC_SPI 225 IRQ_TYPE_LEVEL_HIGH>;
developer2cdaeb12022-10-04 20:25:05 +0800733 interrupt-parent = <&gic>;
734 #interrupt-cells = <2>;
735 };
736
737 ethsys: syscon@15000000 {
738 #address-cells = <1>;
739 #size-cells = <1>;
740 compatible = "mediatek,mt7988-ethsys",
741 "syscon";
742 reg = <0 0x15000000 0 0x1000>;
743 #clock-cells = <1>;
744 #reset-cells = <1>;
745
746 ethsysrst: reset-controller {
747 compatible = "ti,syscon-reset";
748 #reset-cells = <1>;
749 ti,reset-bits =
750 <0x34 4 0x34 4 0x34 4
751 (ASSERT_SET | DEASSERT_CLEAR | STATUS_SET)>;
752 };
753 };
754
755 ethwarp: syscon@15031000 {
756 compatible = "mediatek,mt7988-ethwarp", "syscon";
757 reg = <0 0x15031000 0 0x1000>;
758 #clock-cells = <1>;
759 };
760
761 switch0: switch0@15020000 {
762 #address-cells = <1>;
763 #size-cells = <1>;
764 compatible = "mediatek,mt7988-switch", "syscon";
765 reg = <0 0x15020000 0 0x8000>;
766 };
767
768 eth: ethernet@15100000 {
769 compatible = "mediatek,mt7988-eth";
770 reg = <0 0x15100000 0 0x80000>,
771 <0 0x15400000 0 0x380000>;
772 interrupts = <GIC_SPI 196 IRQ_TYPE_LEVEL_HIGH>,
773 <GIC_SPI 197 IRQ_TYPE_LEVEL_HIGH>,
774 <GIC_SPI 198 IRQ_TYPE_LEVEL_HIGH>,
775 <GIC_SPI 199 IRQ_TYPE_LEVEL_HIGH>;
developer1bbcf512022-11-18 16:09:33 +0800776 clocks = <&ethsys CK_ETHDMA_XGP1_EN>,
777 <&ethsys CK_ETHDMA_XGP2_EN>,
778 <&ethsys CK_ETHDMA_XGP3_EN>,
779 <&ethsys CK_ETHDMA_FE_EN>,
780 <&ethsys CK_ETHDMA_GP2_EN>,
781 <&ethsys CK_ETHDMA_GP1_EN>,
782 <&ethsys CK_ETHDMA_GP3_EN>,
783 <&ethsys CK_ETHDMA_ESW_EN>,
784 <&ethsys CK_ETHDMA_CRYPT0_EN>,
785 <&sgmiisys0 CK_SGM0_TX_EN>,
786 <&sgmiisys0 CK_SGM0_RX_EN>,
787 <&sgmiisys1 CK_SGM1_TX_EN>,
788 <&sgmiisys1 CK_SGM1_RX_EN>,
developer5cfc67a2022-12-29 19:06:51 +0800789 <&ethwarp CK_ETHWARP_WOCPU2_EN>,
790 <&ethwarp CK_ETHWARP_WOCPU1_EN>,
791 <&ethwarp CK_ETHWARP_WOCPU0_EN>,
developer1bbcf512022-11-18 16:09:33 +0800792 <&topckgen CK_TOP_USXGMII_SBUS_0_SEL>,
793 <&topckgen CK_TOP_USXGMII_SBUS_1_SEL>,
794 <&topckgen CK_TOP_SGM_0_SEL>,
developer5cfc67a2022-12-29 19:06:51 +0800795 <&topckgen CK_TOP_SGM_1_SEL>,
796 <&topckgen CK_TOP_XFI_PHY_0_XTAL_SEL>,
797 <&topckgen CK_TOP_XFI_PHY_1_XTAL_SEL>,
798 <&topckgen CK_TOP_ETH_GMII_SEL>,
799 <&topckgen CK_TOP_ETH_REFCK_50M_SEL>,
800 <&topckgen CK_TOP_ETH_SYS_200M_SEL>,
801 <&topckgen CK_TOP_ETH_SYS_SEL>,
802 <&topckgen CK_TOP_ETH_XGMII_SEL>,
803 <&topckgen CK_TOP_ETH_MII_SEL>,
804 <&topckgen CK_TOP_NETSYS_SEL>,
805 <&topckgen CK_TOP_NETSYS_500M_SEL>,
806 <&topckgen CK_TOP_NETSYS_PAO_2X_SEL>,
807 <&topckgen CK_TOP_NETSYS_SYNC_250M_SEL>,
808 <&topckgen CK_TOP_NETSYS_PPEFB_250M_SEL>,
809 <&topckgen CK_TOP_NETSYS_WARP_SEL>;
developer1bbcf512022-11-18 16:09:33 +0800810 clock-names = "xgp1", "xgp2", "xgp3", "fe", "gp2", "gp1",
811 "gp3", "esw", "crypto", "sgmii_tx250m",
812 "sgmii_rx250m", "sgmii2_tx250m", "sgmii2_rx250m",
developer5cfc67a2022-12-29 19:06:51 +0800813 "ethwarp_wocpu2", "ethwarp_wocpu1",
814 "ethwarp_wocpu0", "top_usxgmii0_sel",
815 "top_usxgmii1_sel", "top_sgm0_sel",
816 "top_sgm1_sel", "top_xfi_phy0_xtal_sel",
817 "top_xfi_phy1_xtal_sel", "top_eth_gmii_sel",
818 "top_eth_refck_50m_sel", "top_eth_sys_200m_sel",
819 "top_eth_sys_sel", "top_eth_xgmii_sel",
820 "top_eth_mii_sel", "top_netsys_sel",
821 "top_netsys_500m_sel", "top_netsys_pao_2x_sel",
822 "top_netsys_sync_250m_sel",
823 "top_netsys_ppefb_250m_sel",
824 "top_netsys_warp_sel";
developer1bbcf512022-11-18 16:09:33 +0800825 assigned-clocks = <&topckgen CK_TOP_NETSYS_2X_SEL>,
826 <&topckgen CK_TOP_NETSYS_GSW_SEL>,
827 <&topckgen CK_TOP_USXGMII_SBUS_0_SEL>,
828 <&topckgen CK_TOP_USXGMII_SBUS_1_SEL>,
829 <&topckgen CK_TOP_SGM_0_SEL>,
830 <&topckgen CK_TOP_SGM_1_SEL>;
831 assigned-clock-parents = <&topckgen CK_TOP_CB_NET2_800M>,
832 <&topckgen CK_TOP_CB_NET1_D4>,
833 <&topckgen CK_TOP_NET1_D8_D4>,
834 <&topckgen CK_TOP_NET1_D8_D4>,
835 <&topckgen CK_TOP_CB_SGM_325M>,
836 <&topckgen CK_TOP_CB_SGM_325M>;
developer2cdaeb12022-10-04 20:25:05 +0800837 mediatek,ethsys = <&ethsys>;
838 mediatek,sgmiisys = <&sgmiisys0>, <&sgmiisys1>;
839 mediatek,usxgmiisys = <&usxgmiisys0>, <&usxgmiisys1>;
840 mediatek,xfi_pextp = <&xfi_pextp0>, <&xfi_pextp1>;
841 mediatek,xfi_pll = <&xfi_pll>;
842 mediatek,infracfg = <&topmisc>;
843 mediatek,toprgu = <&watchdog>;
844 #reset-cells = <1>;
845 #address-cells = <1>;
846 #size-cells = <0>;
847 status = "disabled";
848 };
849
850 hnat: hnat@15000000 {
851 compatible = "mediatek,mtk-hnat_v5";
852 reg = <0 0x15100000 0 0x80000>;
853 resets = <&ethsys 0>;
854 reset-names = "mtketh";
855 status = "disabled";
856 };
857
858 sgmiisys0: syscon@10060000 {
859 compatible = "mediatek,mt7988-sgmiisys",
860 "mediatek,mt7988-sgmiisys_0",
861 "syscon";
862 reg = <0 0x10060000 0 0x1000>;
863 #clock-cells = <1>;
864 };
865
866 sgmiisys1: syscon@10070000 {
867 compatible = "mediatek,mt7988-sgmiisys",
868 "mediatek,mt7988-sgmiisys_1",
869 "syscon";
870 reg = <0 0x10070000 0 0x1000>;
871 #clock-cells = <1>;
872 };
873
874 usxgmiisys0: usxgmiisys@10080000 {
875 compatible = "mediatek,mt7988-usxgmiisys",
876 "mediatek,mt7988-usxgmiisys_0",
877 "syscon";
878 reg = <0 0x10080000 0 0x1000>;
879 #clock-cells = <1>;
880 };
881
882 usxgmiisys1: usxgmiisys@10081000 {
883 compatible = "mediatek,mt7988-usxgmiisys",
884 "mediatek,mt7988-usxgmiisys_1",
885 "syscon";
886 reg = <0 0x10081000 0 0x1000>;
887 #clock-cells = <1>;
888 };
889
890 xfi_pextp0: xfi_pextp@11f20000 {
891 compatible = "mediatek,mt7988-xfi_pextp",
892 "mediatek,mt7988-xfi_pextp_0",
893 "syscon";
894 reg = <0 0x11f20000 0 0x10000>;
895 #clock-cells = <1>;
896 };
897
898 xfi_pextp1: xfi_pextp@11f30000 {
899 compatible = "mediatek,mt7988-xfi_pextp",
900 "mediatek,mt7988-xfi_pextp_1",
901 "syscon";
902 reg = <0 0x11f30000 0 0x10000>;
903 #clock-cells = <1>;
904 };
905
906 xfi_pll: xfi_pll@11f40000 {
907 compatible = "mediatek,mt7988-xfi_pll", "syscon";
908 reg = <0 0x11f40000 0 0x1000>;
909 #clock-cells = <1>;
910 };
911
912 topmisc: topmisc@11d10000 {
913 compatible = "mediatek,mt7988-topmisc", "syscon",
914 "mediatek,mt7988-power-controller";
915 reg = <0 0x11d10000 0 0x10000>;
916 #clock-cells = <1>;
917 #power-domain-cells = <1>;
918 #address-cells = <1>;
919 #size-cells = <0>;
920 /* power domain of the SoC */
921 tops0@MT7988_POWER_DOMAIN_TOPS0 {
922 reg = <MT7988_POWER_DOMAIN_TOPS0>;
923 #power-domain-cells = <0>;
924 };
925 tops1@MT7988_POWER_DOMAIN_TOPS1 {
926 reg = <MT7988_POWER_DOMAIN_TOPS1>;
927 #power-domain-cells = <0>;
928 };
929 eth2p5@MT7988_POWER_DOMAIN_ETH2P5 {
930 reg = <MT7988_POWER_DOMAIN_ETH2P5>;
931 #power-domain-cells = <0>;
932 };
933 };
934
935 snand: snfi@11001000 {
developer54193ba2022-11-25 18:43:24 +0800936 compatible = "mediatek,mt7988-snand";
developer2cdaeb12022-10-04 20:25:05 +0800937 reg = <0 0x11001000 0 0x1000>, <0 0x11002000 0 0x1000>;
938 reg-names = "nfi", "ecc";
939 interrupts = <GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>;
developer54193ba2022-11-25 18:43:24 +0800940 clocks = <&infracfg_ao CK_INFRA_SPINFI>,
941 <&infracfg_ao CK_INFRA_NFI>;
942 clock-names = "pad_clk", "nfi_clk";
943 assigned-clocks = <&topckgen CK_TOP_SPINFI_SEL>,
944 <&topckgen CK_TOP_NFI1X_SEL>;
945 assigned-clock-parents = <&topckgen CK_TOP_CB_M_D8>,
946 <&topckgen CK_TOP_CB_M_D8>;
developer2cdaeb12022-10-04 20:25:05 +0800947 #address-cells = <1>;
948 #size-cells = <0>;
949 status = "disabled";
950 };
951
952 wbsys: wbsys@18000000 {
953 compatible = "mediatek,wbsys";
954 reg = <0 0x18000000 0 0x1000000>;
955 linux,pci-domain = <4>;
956 interrupts = <GIC_SPI 213 IRQ_TYPE_LEVEL_HIGH>,
957 <GIC_SPI 214 IRQ_TYPE_LEVEL_HIGH>,
958 <GIC_SPI 215 IRQ_TYPE_LEVEL_HIGH>,
959 <GIC_SPI 216 IRQ_TYPE_LEVEL_HIGH>;
960 chip_id = <0x7981>;
961 };
962
963 wed_pcie: wed_pcie@10003000 {
964 compatible = "mediatek,wed_pcie";
965 reg = <0 0x10003000 0 0x10>;
966 };
967
developer4c9c1c12022-11-02 11:30:47 +0800968 infra_bus_prot: infra_bus_prot@1000310c {
969 compatible = "mediatek,infracfg_ao_bus_hang_prot";
970 reg = <0 0x1000310c 0 0x14>;
971 };
972
developer2cdaeb12022-10-04 20:25:05 +0800973 spi0: spi@11007000 {
974 compatible = "mediatek,ipm-spi-quad";
975 reg = <0 0x11007000 0 0x100>;
976 interrupts = <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>;
977 clocks = <&topckgen CK_TOP_CB_M_D2>,
978 <&topckgen CK_TOP_SPI_SEL>,
979 <&infracfg_ao CK_INFRA_104M_SPI0>,
980 <&infracfg_ao CK_INFRA_66M_SPI0_HCK>;
981 clock-names = "parent-clk", "sel-clk", "spi-clk", "spi-hclk";
982 status = "disabled";
983 };
984
985 spi1: spi@11008000 {
986 compatible = "mediatek,ipm-spi-single";
987 reg = <0 0x11008000 0 0x100>;
988 interrupts = <GIC_SPI 141 IRQ_TYPE_LEVEL_HIGH>;
989 clocks = <&topckgen CK_TOP_CB_M_D2>,
990 <&topckgen CK_TOP_SPI_SEL>,
991 <&infracfg_ao CK_INFRA_104M_SPI1>,
992 <&infracfg_ao CK_INFRA_66M_SPI1_HCK>;
993 clock-names = "parent-clk", "sel-clk", "spi-clk", "spi-hclk";
994 status = "disabled";
995 };
996
997 spi2: spi@11009000 {
998 compatible = "mediatek,ipm-spi-quad";
999 reg = <0 0x11009000 0 0x100>;
1000 interrupts = <GIC_SPI 142 IRQ_TYPE_LEVEL_HIGH>;
1001 clocks = <&topckgen CK_TOP_CB_M_D2>,
1002 <&topckgen CK_TOP_SPI_SEL>,
1003 <&infracfg_ao CK_INFRA_104M_SPI2_BCK>,
1004 <&infracfg_ao CK_INFRA_66M_SPI2_HCK>;
1005 clock-names = "parent-clk", "sel-clk", "spi-clk", "spi-hclk";
1006 status = "disabled";
1007 };
1008
1009 consys: consys@10000000 {
1010 compatible = "mediatek,mt7981-consys";
1011 reg = <0 0x10000000 0 0x8600000>;
1012 memory-region = <&wmcpu_emi>;
1013 };
1014
1015 xhci0: xhci@11190000 {
1016 compatible = "mediatek,mt7988-xhci",
1017 "mediatek,mtk-xhci";
1018 reg = <0 0x11190000 0 0x2e00>,
1019 <0 0x11193e00 0 0x0100>;
1020 reg-names = "mac", "ippc";
1021 interrupts = <GIC_SPI 173 IRQ_TYPE_LEVEL_HIGH>;
1022 phys = <&xphyu2port0 PHY_TYPE_USB2>,
1023 <&xphyu3port0 PHY_TYPE_USB3>;
developerc52bff42022-11-18 15:25:28 +08001024 clocks = <&infracfg_ao CK_INFRA_USB_SYS>,
1025 <&infracfg_ao CK_INFRA_USB_XHCI>,
1026 <&infracfg_ao CK_INFRA_USB_REF>,
1027 <&infracfg_ao CK_INFRA_66M_USB_HCK>,
1028 <&infracfg_ao CK_INFRA_133M_USB_HCK>;
developer2cdaeb12022-10-04 20:25:05 +08001029 clock-names = "sys_ck",
1030 "xhci_ck",
1031 "ref_ck",
1032 "mcu_ck",
1033 "dma_ck";
1034 #address-cells = <2>;
1035 #size-cells = <2>;
developer8cdcb262022-10-27 14:36:15 +08001036 mediatek,p0_speed_fixup;
developer2cdaeb12022-10-04 20:25:05 +08001037 status = "okay";
1038 };
1039
1040 usbxphy: usb-phy@11e10000 {
1041 compatible = "mediatek,mt7988",
1042 "mediatek,xsphy";
1043 #address-cells = <2>;
1044 #size-cells = <2>;
1045 ranges;
1046 status = "okay";
1047
1048 xphyu2port0: usb-phy@11e10000 {
1049 reg = <0 0x11e10000 0 0x400>;
developerc52bff42022-11-18 15:25:28 +08001050 clocks = <&infracfg_ao CK_INFRA_USB_UTMI>;
developer2cdaeb12022-10-04 20:25:05 +08001051 clock-names = "ref";
1052 #phy-cells = <1>;
1053 status = "okay";
1054 };
1055
1056 xphyu3port0: usb-phy@11e13000 {
1057 reg = <0 0x11e13400 0 0x500>;
developerc52bff42022-11-18 15:25:28 +08001058 clocks = <&infracfg_ao CK_INFRA_USB_PIPE>;
developer2cdaeb12022-10-04 20:25:05 +08001059 clock-names = "ref";
1060 #phy-cells = <1>;
1061 mediatek,syscon-type = <&topmisc 0x218 0>;
1062 status = "okay";
1063 };
1064 };
1065
1066 xhci1: xhci@11200000 {
1067 compatible = "mediatek,mt7988-xhci",
1068 "mediatek,mtk-xhci";
1069 reg = <0 0x11200000 0 0x2e00>,
1070 <0 0x11203e00 0 0x0100>;
1071 reg-names = "mac", "ippc";
1072 interrupts = <GIC_SPI 172 IRQ_TYPE_LEVEL_HIGH>;
1073 phys = <&tphyu2port0 PHY_TYPE_USB2>,
1074 <&tphyu3port0 PHY_TYPE_USB3>;
developerc52bff42022-11-18 15:25:28 +08001075 clocks = <&infracfg_ao CK_INFRA_USB_SYS_CK_P1>,
1076 <&infracfg_ao CK_INFRA_USB_XHCI_CK_P1>,
1077 <&infracfg_ao CK_INFRA_USB_CK_P1>,
1078 <&infracfg_ao CK_INFRA_66M_USB_HCK_CK_P1>,
1079 <&infracfg_ao CK_INFRA_133M_USB_HCK_CK_P1>;
developer2cdaeb12022-10-04 20:25:05 +08001080 clock-names = "sys_ck",
1081 "xhci_ck",
1082 "ref_ck",
1083 "mcu_ck",
1084 "dma_ck";
1085 #address-cells = <2>;
1086 #size-cells = <2>;
1087 status = "okay";
1088 };
1089
1090 usbtphy: usb-phy@11c50000 {
1091 compatible = "mediatek,mt7988",
1092 "mediatek,generic-tphy-v2";
1093 #address-cells = <2>;
1094 #size-cells = <2>;
1095 ranges;
1096 status = "okay";
1097
1098 tphyu2port0: usb-phy@11c50000 {
1099 reg = <0 0x11c50000 0 0x700>;
developerc52bff42022-11-18 15:25:28 +08001100 clocks = <&infracfg_ao CK_INFRA_USB_UTMI_CK_P1>;
developer2cdaeb12022-10-04 20:25:05 +08001101 clock-names = "ref";
1102 #phy-cells = <1>;
1103 status = "okay";
1104 };
1105
1106 tphyu3port0: usb-phy@11c50700 {
1107 reg = <0 0x11c50700 0 0x900>;
developerc52bff42022-11-18 15:25:28 +08001108 clocks = <&infracfg_ao CK_INFRA_USB_PIPE_CK_P1>;
developer2cdaeb12022-10-04 20:25:05 +08001109 clock-names = "ref";
1110 #phy-cells = <1>;
developer8cdcb262022-10-27 14:36:15 +08001111 mediatek,usb3-pll-ssc-delta;
1112 mediatek,usb3-pll-ssc-delta1;
developer2cdaeb12022-10-04 20:25:05 +08001113 status = "okay";
1114 };
1115 };
1116
1117 clk40m: oscillator@0 {
1118 compatible = "fixed-clock";
1119 #clock-cells = <0>;
1120 clock-frequency = <40000000>;
1121 clock-output-names = "clkxtal";
1122 };
1123
1124 infracfg_ao: infracfg_ao@10001000 {
1125 compatible = "mediatek,mt7988-infracfg_ao", "syscon";
1126 reg = <0 0x10001000 0 0x1000>;
1127 #clock-cells = <1>;
1128 };
1129
1130 infracfg: infracfg@10209000 {
1131 compatible = "mediatek,mt7988-infracfg", "syscon";
1132 reg = <0 0x10209000 0 0x1000>;
1133 #clock-cells = <1>;
1134 };
1135
1136 topckgen: topckgen@1001B000 {
1137 compatible = "mediatek,mt7988-topckgen", "syscon";
1138 reg = <0 0x1001B000 0 0x1000>;
1139 #clock-cells = <1>;
1140 };
1141
1142 apmixedsys: apmixedsys@1001E000 {
1143 compatible = "mediatek,mt7988-apmixedsys", "syscon";
1144 reg = <0 0x1001E000 0 0x1000>;
1145 #clock-cells = <1>;
1146 };
1147
1148 mcusys: mcusys@100E0000 {
1149 compatible = "mediatek,mt7988-mcusys", "syscon";
1150 reg = <0 0x100E0000 0 0x1000>;
1151 #clock-cells = <1>;
1152 };
1153
1154 clkitg: clkitg {
1155 compatible = "simple-bus";
1156 };
1157
1158 efuse: efuse@11f50000 {
1159 compatible = "mediatek,efuse";
1160 reg = <0 0x11f50000 0 0x1000>;
1161 #address-cells = <1>;
1162 #size-cells = <1>;
1163
1164 lvts_calibration: calib@918 {
1165 reg = <0x918 0x28>;
1166 };
1167 phy_calibration_p0: calib@940 {
1168 reg = <0x940 0x10>;
1169 };
1170 phy_calibration_p1: calib@954 {
1171 reg = <0x954 0x10>;
1172 };
1173 phy_calibration_p2: calib@968 {
1174 reg = <0x968 0x10>;
1175 };
1176 phy_calibration_p3: calib@97c {
1177 reg = <0x97c 0x10>;
1178 };
1179 cpufreq_calibration: calib@278 {
1180 reg = <0x278 0x1>;
1181 };
1182 };
1183};
1184
1185#include "mt7988-clkitg.dtsi"