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