Loading...
1// SPDX-License-Identifier: GPL-2.0
2/*
3 * Copyright (c) 2017-2018 MediaTek Inc.
4 * Author: John Crispin <john@phrozen.org>
5 * Sean Wang <sean.wang@mediatek.com>
6 * Ryder Lee <ryder.lee@mediatek.com>
7 *
8 */
9
10#include <dt-bindings/interrupt-controller/irq.h>
11#include <dt-bindings/interrupt-controller/arm-gic.h>
12#include <dt-bindings/clock/mt2701-clk.h>
13#include <dt-bindings/pinctrl/mt7623-pinfunc.h>
14#include <dt-bindings/power/mt2701-power.h>
15#include <dt-bindings/gpio/gpio.h>
16#include <dt-bindings/phy/phy.h>
17#include <dt-bindings/reset/mt2701-resets.h>
18#include <dt-bindings/thermal/thermal.h>
19
20/ {
21 compatible = "mediatek,mt7623";
22 interrupt-parent = <&sysirq>;
23 #address-cells = <2>;
24 #size-cells = <2>;
25
26 cpu_opp_table: opp-table {
27 compatible = "operating-points-v2";
28 opp-shared;
29
30 opp-98000000 {
31 opp-hz = /bits/ 64 <98000000>;
32 opp-microvolt = <1050000>;
33 };
34
35 opp-198000000 {
36 opp-hz = /bits/ 64 <198000000>;
37 opp-microvolt = <1050000>;
38 };
39
40 opp-398000000 {
41 opp-hz = /bits/ 64 <398000000>;
42 opp-microvolt = <1050000>;
43 };
44
45 opp-598000000 {
46 opp-hz = /bits/ 64 <598000000>;
47 opp-microvolt = <1050000>;
48 };
49
50 opp-747500000 {
51 opp-hz = /bits/ 64 <747500000>;
52 opp-microvolt = <1050000>;
53 };
54
55 opp-1040000000 {
56 opp-hz = /bits/ 64 <1040000000>;
57 opp-microvolt = <1150000>;
58 };
59
60 opp-1196000000 {
61 opp-hz = /bits/ 64 <1196000000>;
62 opp-microvolt = <1200000>;
63 };
64
65 opp-1300000000 {
66 opp-hz = /bits/ 64 <1300000000>;
67 opp-microvolt = <1300000>;
68 };
69 };
70
71 cpus {
72 #address-cells = <1>;
73 #size-cells = <0>;
74 enable-method = "mediatek,mt6589-smp";
75
76 cpu0: cpu@0 {
77 device_type = "cpu";
78 compatible = "arm,cortex-a7";
79 reg = <0x0>;
80 clocks = <&infracfg CLK_INFRA_CPUSEL>,
81 <&apmixedsys CLK_APMIXED_MAINPLL>;
82 clock-names = "cpu", "intermediate";
83 operating-points-v2 = <&cpu_opp_table>;
84 #cooling-cells = <2>;
85 clock-frequency = <1300000000>;
86 };
87
88 cpu1: cpu@1 {
89 device_type = "cpu";
90 compatible = "arm,cortex-a7";
91 reg = <0x1>;
92 clocks = <&infracfg CLK_INFRA_CPUSEL>,
93 <&apmixedsys CLK_APMIXED_MAINPLL>;
94 clock-names = "cpu", "intermediate";
95 operating-points-v2 = <&cpu_opp_table>;
96 #cooling-cells = <2>;
97 clock-frequency = <1300000000>;
98 };
99
100 cpu2: cpu@2 {
101 device_type = "cpu";
102 compatible = "arm,cortex-a7";
103 reg = <0x2>;
104 clocks = <&infracfg CLK_INFRA_CPUSEL>,
105 <&apmixedsys CLK_APMIXED_MAINPLL>;
106 clock-names = "cpu", "intermediate";
107 operating-points-v2 = <&cpu_opp_table>;
108 #cooling-cells = <2>;
109 clock-frequency = <1300000000>;
110 };
111
112 cpu3: cpu@3 {
113 device_type = "cpu";
114 compatible = "arm,cortex-a7";
115 reg = <0x3>;
116 clocks = <&infracfg CLK_INFRA_CPUSEL>,
117 <&apmixedsys CLK_APMIXED_MAINPLL>;
118 clock-names = "cpu", "intermediate";
119 operating-points-v2 = <&cpu_opp_table>;
120 #cooling-cells = <2>;
121 clock-frequency = <1300000000>;
122 };
123 };
124
125 pmu {
126 compatible = "arm,cortex-a7-pmu";
127 interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_LOW>,
128 <GIC_SPI 5 IRQ_TYPE_LEVEL_LOW>,
129 <GIC_SPI 6 IRQ_TYPE_LEVEL_LOW>,
130 <GIC_SPI 7 IRQ_TYPE_LEVEL_LOW>;
131 interrupt-affinity = <&cpu0>, <&cpu1>, <&cpu2>, <&cpu3>;
132 };
133
134 system_clk: dummy13m {
135 compatible = "fixed-clock";
136 clock-frequency = <13000000>;
137 #clock-cells = <0>;
138 };
139
140 rtc32k: oscillator-1 {
141 compatible = "fixed-clock";
142 #clock-cells = <0>;
143 clock-frequency = <32000>;
144 clock-output-names = "rtc32k";
145 };
146
147 clk26m: oscillator-0 {
148 compatible = "fixed-clock";
149 #clock-cells = <0>;
150 clock-frequency = <26000000>;
151 clock-output-names = "clk26m";
152 };
153
154 thermal-zones {
155 cpu_thermal: cpu-thermal {
156 polling-delay-passive = <1000>;
157 polling-delay = <1000>;
158
159 thermal-sensors = <&thermal 0>;
160
161 trips {
162 cpu_passive: cpu-passive {
163 temperature = <57000>;
164 hysteresis = <2000>;
165 type = "passive";
166 };
167
168 cpu_active: cpu-active {
169 temperature = <67000>;
170 hysteresis = <2000>;
171 type = "active";
172 };
173
174 cpu_hot: cpu-hot {
175 temperature = <87000>;
176 hysteresis = <2000>;
177 type = "hot";
178 };
179
180 cpu-crit {
181 temperature = <107000>;
182 hysteresis = <2000>;
183 type = "critical";
184 };
185 };
186
187 cooling-maps {
188 map0 {
189 trip = <&cpu_passive>;
190 cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
191 <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
192 <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
193 <&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
194 };
195
196 map1 {
197 trip = <&cpu_active>;
198 cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
199 <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
200 <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
201 <&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
202 };
203
204 map2 {
205 trip = <&cpu_hot>;
206 cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
207 <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
208 <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
209 <&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
210 };
211 };
212 };
213 };
214
215 timer {
216 compatible = "arm,armv7-timer";
217 interrupt-parent = <&gic>;
218 interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
219 <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
220 <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
221 <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
222 clock-frequency = <13000000>;
223 arm,cpu-registers-not-fw-configured;
224 };
225
226 topckgen: syscon@10000000 {
227 compatible = "mediatek,mt7623-topckgen",
228 "mediatek,mt2701-topckgen",
229 "syscon";
230 reg = <0 0x10000000 0 0x1000>;
231 #clock-cells = <1>;
232 };
233
234 infracfg: syscon@10001000 {
235 compatible = "mediatek,mt7623-infracfg",
236 "mediatek,mt2701-infracfg",
237 "syscon";
238 reg = <0 0x10001000 0 0x1000>;
239 #clock-cells = <1>;
240 #reset-cells = <1>;
241 };
242
243 pericfg: syscon@10003000 {
244 compatible = "mediatek,mt7623-pericfg",
245 "mediatek,mt2701-pericfg",
246 "syscon";
247 reg = <0 0x10003000 0 0x1000>;
248 #clock-cells = <1>;
249 #reset-cells = <1>;
250 };
251
252 pio: pinctrl@10005000 {
253 compatible = "mediatek,mt7623-pinctrl";
254 reg = <0 0x1000b000 0 0x1000>;
255 mediatek,pctl-regmap = <&syscfg_pctl_a>;
256 pins-are-numbered;
257 gpio-controller;
258 #gpio-cells = <2>;
259 interrupt-controller;
260 interrupt-parent = <&gic>;
261 #interrupt-cells = <2>;
262 interrupts = <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>,
263 <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>;
264 };
265
266 syscfg_pctl_a: syscfg@10005000 {
267 compatible = "mediatek,mt7623-pctl-a-syscfg", "syscon";
268 reg = <0 0x10005000 0 0x1000>;
269 };
270
271 scpsys: power-controller@10006000 {
272 compatible = "mediatek,mt7623-scpsys",
273 "mediatek,mt2701-scpsys",
274 "syscon";
275 #power-domain-cells = <1>;
276 reg = <0 0x10006000 0 0x1000>;
277 infracfg = <&infracfg>;
278 clocks = <&topckgen CLK_TOP_MM_SEL>,
279 <&topckgen CLK_TOP_MFG_SEL>,
280 <&topckgen CLK_TOP_ETHIF_SEL>;
281 clock-names = "mm", "mfg", "ethif";
282 };
283
284 watchdog: watchdog@10007000 {
285 compatible = "mediatek,mt7623-wdt",
286 "mediatek,mt6589-wdt";
287 reg = <0 0x10007000 0 0x100>;
288 };
289
290 timer: timer@10008000 {
291 compatible = "mediatek,mt7623-timer",
292 "mediatek,mt6577-timer";
293 reg = <0 0x10008000 0 0x80>;
294 interrupts = <GIC_SPI 112 IRQ_TYPE_LEVEL_LOW>;
295 clocks = <&system_clk>, <&rtc32k>;
296 clock-names = "system-clk", "rtc-clk";
297 };
298
299 pwrap: pwrap@1000d000 {
300 compatible = "mediatek,mt7623-pwrap",
301 "mediatek,mt2701-pwrap";
302 reg = <0 0x1000d000 0 0x1000>;
303 reg-names = "pwrap";
304 interrupts = <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>;
305 resets = <&infracfg MT2701_INFRA_PMIC_WRAP_RST>;
306 reset-names = "pwrap";
307 clocks = <&infracfg CLK_INFRA_PMICSPI>,
308 <&infracfg CLK_INFRA_PMICWRAP>;
309 clock-names = "spi", "wrap";
310 };
311
312 cir: cir@10013000 {
313 compatible = "mediatek,mt7623-cir";
314 reg = <0 0x10013000 0 0x1000>;
315 interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_LOW>;
316 clocks = <&infracfg CLK_INFRA_IRRX>;
317 clock-names = "clk";
318 status = "disabled";
319 };
320
321 sysirq: interrupt-controller@10200100 {
322 compatible = "mediatek,mt7623-sysirq",
323 "mediatek,mt6577-sysirq";
324 interrupt-controller;
325 #interrupt-cells = <3>;
326 interrupt-parent = <&gic>;
327 reg = <0 0x10200100 0 0x1c>;
328 };
329
330 efuse: efuse@10206000 {
331 compatible = "mediatek,mt7623-efuse",
332 "mediatek,mt8173-efuse";
333 reg = <0 0x10206000 0 0x1000>;
334 #address-cells = <1>;
335 #size-cells = <1>;
336 thermal_calibration_data: calib@424 {
337 reg = <0x424 0xc>;
338 };
339 };
340
341 apmixedsys: syscon@10209000 {
342 compatible = "mediatek,mt7623-apmixedsys",
343 "mediatek,mt2701-apmixedsys",
344 "syscon";
345 reg = <0 0x10209000 0 0x1000>;
346 #clock-cells = <1>;
347 };
348
349 rng: rng@1020f000 {
350 compatible = "mediatek,mt7623-rng";
351 reg = <0 0x1020f000 0 0x1000>;
352 clocks = <&infracfg CLK_INFRA_TRNG>;
353 clock-names = "rng";
354 };
355
356 gic: interrupt-controller@10211000 {
357 compatible = "arm,cortex-a7-gic";
358 interrupt-controller;
359 #interrupt-cells = <3>;
360 interrupt-parent = <&gic>;
361 reg = <0 0x10211000 0 0x1000>,
362 <0 0x10212000 0 0x2000>,
363 <0 0x10214000 0 0x2000>,
364 <0 0x10216000 0 0x2000>;
365 };
366
367 auxadc: adc@11001000 {
368 compatible = "mediatek,mt7623-auxadc",
369 "mediatek,mt2701-auxadc";
370 reg = <0 0x11001000 0 0x1000>;
371 clocks = <&pericfg CLK_PERI_AUXADC>;
372 clock-names = "main";
373 #io-channel-cells = <1>;
374 };
375
376 uart0: serial@11002000 {
377 compatible = "mediatek,mt7623-uart",
378 "mediatek,mt6577-uart";
379 reg = <0 0x11002000 0 0x400>;
380 interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_LOW>;
381 clocks = <&pericfg CLK_PERI_UART0_SEL>,
382 <&pericfg CLK_PERI_UART0>;
383 clock-names = "baud", "bus";
384 status = "disabled";
385 };
386
387 uart1: serial@11003000 {
388 compatible = "mediatek,mt7623-uart",
389 "mediatek,mt6577-uart";
390 reg = <0 0x11003000 0 0x400>;
391 interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_LOW>;
392 clocks = <&pericfg CLK_PERI_UART1_SEL>,
393 <&pericfg CLK_PERI_UART1>;
394 clock-names = "baud", "bus";
395 status = "disabled";
396 };
397
398 uart2: serial@11004000 {
399 compatible = "mediatek,mt7623-uart",
400 "mediatek,mt6577-uart";
401 reg = <0 0x11004000 0 0x400>;
402 interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_LOW>;
403 clocks = <&pericfg CLK_PERI_UART2_SEL>,
404 <&pericfg CLK_PERI_UART2>;
405 clock-names = "baud", "bus";
406 status = "disabled";
407 };
408
409 uart3: serial@11005000 {
410 compatible = "mediatek,mt7623-uart",
411 "mediatek,mt6577-uart";
412 reg = <0 0x11005000 0 0x400>;
413 interrupts = <GIC_SPI 54 IRQ_TYPE_LEVEL_LOW>;
414 clocks = <&pericfg CLK_PERI_UART3_SEL>,
415 <&pericfg CLK_PERI_UART3>;
416 clock-names = "baud", "bus";
417 status = "disabled";
418 };
419
420 pwm: pwm@11006000 {
421 compatible = "mediatek,mt7623-pwm";
422 reg = <0 0x11006000 0 0x1000>;
423 #pwm-cells = <2>;
424 clocks = <&topckgen CLK_TOP_PWM_SEL>,
425 <&pericfg CLK_PERI_PWM>,
426 <&pericfg CLK_PERI_PWM1>,
427 <&pericfg CLK_PERI_PWM2>,
428 <&pericfg CLK_PERI_PWM3>,
429 <&pericfg CLK_PERI_PWM4>,
430 <&pericfg CLK_PERI_PWM5>;
431 clock-names = "top", "main", "pwm1", "pwm2",
432 "pwm3", "pwm4", "pwm5";
433 status = "disabled";
434 };
435
436 i2c0: i2c@11007000 {
437 compatible = "mediatek,mt7623-i2c",
438 "mediatek,mt6577-i2c";
439 reg = <0 0x11007000 0 0x70>,
440 <0 0x11000200 0 0x80>;
441 interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_LOW>;
442 clock-div = <16>;
443 clocks = <&pericfg CLK_PERI_I2C0>,
444 <&pericfg CLK_PERI_AP_DMA>;
445 clock-names = "main", "dma";
446 #address-cells = <1>;
447 #size-cells = <0>;
448 status = "disabled";
449 };
450
451 i2c1: i2c@11008000 {
452 compatible = "mediatek,mt7623-i2c",
453 "mediatek,mt6577-i2c";
454 reg = <0 0x11008000 0 0x70>,
455 <0 0x11000280 0 0x80>;
456 interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_LOW>;
457 clock-div = <16>;
458 clocks = <&pericfg CLK_PERI_I2C1>,
459 <&pericfg CLK_PERI_AP_DMA>;
460 clock-names = "main", "dma";
461 #address-cells = <1>;
462 #size-cells = <0>;
463 status = "disabled";
464 };
465
466 i2c2: i2c@11009000 {
467 compatible = "mediatek,mt7623-i2c",
468 "mediatek,mt6577-i2c";
469 reg = <0 0x11009000 0 0x70>,
470 <0 0x11000300 0 0x80>;
471 interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_LOW>;
472 clock-div = <16>;
473 clocks = <&pericfg CLK_PERI_I2C2>,
474 <&pericfg CLK_PERI_AP_DMA>;
475 clock-names = "main", "dma";
476 #address-cells = <1>;
477 #size-cells = <0>;
478 status = "disabled";
479 };
480
481 spi0: spi@1100a000 {
482 compatible = "mediatek,mt7623-spi",
483 "mediatek,mt2701-spi";
484 #address-cells = <1>;
485 #size-cells = <0>;
486 reg = <0 0x1100a000 0 0x100>;
487 interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_LOW>;
488 clocks = <&topckgen CLK_TOP_SYSPLL3_D2>,
489 <&topckgen CLK_TOP_SPI0_SEL>,
490 <&pericfg CLK_PERI_SPI0>;
491 clock-names = "parent-clk", "sel-clk", "spi-clk";
492 status = "disabled";
493 };
494
495 thermal: thermal@1100b000 {
496 #thermal-sensor-cells = <1>;
497 compatible = "mediatek,mt7623-thermal",
498 "mediatek,mt2701-thermal";
499 reg = <0 0x1100b000 0 0x1000>;
500 interrupts = <0 70 IRQ_TYPE_LEVEL_LOW>;
501 clocks = <&pericfg CLK_PERI_THERM>, <&pericfg CLK_PERI_AUXADC>;
502 clock-names = "therm", "auxadc";
503 resets = <&pericfg MT2701_PERI_THERM_SW_RST>;
504 reset-names = "therm";
505 mediatek,auxadc = <&auxadc>;
506 mediatek,apmixedsys = <&apmixedsys>;
507 nvmem-cells = <&thermal_calibration_data>;
508 nvmem-cell-names = "calibration-data";
509 };
510
511 btif: serial@1100c000 {
512 compatible = "mediatek,mt7623-btif",
513 "mediatek,mtk-btif";
514 reg = <0 0x1100c000 0 0x1000>;
515 interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_LOW>;
516 clocks = <&pericfg CLK_PERI_BTIF>;
517 clock-names = "main";
518 reg-shift = <2>;
519 reg-io-width = <4>;
520 status = "disabled";
521 };
522
523 nandc: nfi@1100d000 {
524 compatible = "mediatek,mt7623-nfc",
525 "mediatek,mt2701-nfc";
526 reg = <0 0x1100d000 0 0x1000>;
527 interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_LOW>;
528 power-domains = <&scpsys MT2701_POWER_DOMAIN_IFR_MSC>;
529 clocks = <&pericfg CLK_PERI_NFI>,
530 <&pericfg CLK_PERI_NFI_PAD>;
531 clock-names = "nfi_clk", "pad_clk";
532 status = "disabled";
533 ecc-engine = <&bch>;
534 #address-cells = <1>;
535 #size-cells = <0>;
536 };
537
538 bch: ecc@1100e000 {
539 compatible = "mediatek,mt7623-ecc",
540 "mediatek,mt2701-ecc";
541 reg = <0 0x1100e000 0 0x1000>;
542 interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_LOW>;
543 clocks = <&pericfg CLK_PERI_NFI_ECC>;
544 clock-names = "nfiecc_clk";
545 status = "disabled";
546 };
547
548 nor_flash: spi@11014000 {
549 compatible = "mediatek,mt7623-nor",
550 "mediatek,mt8173-nor";
551 reg = <0 0x11014000 0 0x1000>;
552 clocks = <&pericfg CLK_PERI_FLASH>,
553 <&topckgen CLK_TOP_FLASH_SEL>;
554 clock-names = "spi", "sf";
555 #address-cells = <1>;
556 #size-cells = <0>;
557 status = "disabled";
558 };
559
560 spi1: spi@11016000 {
561 compatible = "mediatek,mt7623-spi",
562 "mediatek,mt2701-spi";
563 #address-cells = <1>;
564 #size-cells = <0>;
565 reg = <0 0x11016000 0 0x100>;
566 interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_LOW>;
567 clocks = <&topckgen CLK_TOP_SYSPLL3_D2>,
568 <&topckgen CLK_TOP_SPI1_SEL>,
569 <&pericfg CLK_PERI_SPI1>;
570 clock-names = "parent-clk", "sel-clk", "spi-clk";
571 status = "disabled";
572 };
573
574 spi2: spi@11017000 {
575 compatible = "mediatek,mt7623-spi",
576 "mediatek,mt2701-spi";
577 #address-cells = <1>;
578 #size-cells = <0>;
579 reg = <0 0x11017000 0 0x1000>;
580 interrupts = <GIC_SPI 142 IRQ_TYPE_LEVEL_LOW>;
581 clocks = <&topckgen CLK_TOP_SYSPLL3_D2>,
582 <&topckgen CLK_TOP_SPI2_SEL>,
583 <&pericfg CLK_PERI_SPI2>;
584 clock-names = "parent-clk", "sel-clk", "spi-clk";
585 status = "disabled";
586 };
587
588 usb0: usb@11200000 {
589 compatible = "mediatek,mt7623-musb",
590 "mediatek,mtk-musb";
591 reg = <0 0x11200000 0 0x1000>;
592 interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_LOW>;
593 interrupt-names = "mc";
594 phys = <&u2port2 PHY_TYPE_USB2>;
595 dr_mode = "otg";
596 clocks = <&pericfg CLK_PERI_USB0>,
597 <&pericfg CLK_PERI_USB0_MCU>,
598 <&pericfg CLK_PERI_USB_SLV>;
599 clock-names = "main","mcu","univpll";
600 power-domains = <&scpsys MT2701_POWER_DOMAIN_IFR_MSC>;
601 status = "disabled";
602 };
603
604 u2phy1: t-phy@11210000 {
605 compatible = "mediatek,mt7623-tphy",
606 "mediatek,generic-tphy-v1";
607 reg = <0 0x11210000 0 0x0800>;
608 #address-cells = <2>;
609 #size-cells = <2>;
610 ranges;
611 status = "disabled";
612
613 u2port2: usb-phy@11210800 {
614 reg = <0 0x11210800 0 0x0100>;
615 clocks = <&topckgen CLK_TOP_USB_PHY48M>;
616 clock-names = "ref";
617 #phy-cells = <1>;
618 };
619 };
620
621 audsys: clock-controller@11220000 {
622 compatible = "mediatek,mt7623-audsys",
623 "mediatek,mt2701-audsys",
624 "syscon";
625 reg = <0 0x11220000 0 0x2000>;
626 #clock-cells = <1>;
627
628 afe: audio-controller {
629 compatible = "mediatek,mt7623-audio",
630 "mediatek,mt2701-audio";
631 interrupts = <GIC_SPI 104 IRQ_TYPE_LEVEL_LOW>,
632 <GIC_SPI 132 IRQ_TYPE_LEVEL_LOW>;
633 interrupt-names = "afe", "asys";
634 power-domains = <&scpsys MT2701_POWER_DOMAIN_IFR_MSC>;
635
636 clocks = <&infracfg CLK_INFRA_AUDIO>,
637 <&topckgen CLK_TOP_AUD_MUX1_SEL>,
638 <&topckgen CLK_TOP_AUD_MUX2_SEL>,
639 <&topckgen CLK_TOP_AUD_48K_TIMING>,
640 <&topckgen CLK_TOP_AUD_44K_TIMING>,
641 <&topckgen CLK_TOP_AUD_K1_SRC_SEL>,
642 <&topckgen CLK_TOP_AUD_K2_SRC_SEL>,
643 <&topckgen CLK_TOP_AUD_K3_SRC_SEL>,
644 <&topckgen CLK_TOP_AUD_K4_SRC_SEL>,
645 <&topckgen CLK_TOP_AUD_K1_SRC_DIV>,
646 <&topckgen CLK_TOP_AUD_K2_SRC_DIV>,
647 <&topckgen CLK_TOP_AUD_K3_SRC_DIV>,
648 <&topckgen CLK_TOP_AUD_K4_SRC_DIV>,
649 <&topckgen CLK_TOP_AUD_I2S1_MCLK>,
650 <&topckgen CLK_TOP_AUD_I2S2_MCLK>,
651 <&topckgen CLK_TOP_AUD_I2S3_MCLK>,
652 <&topckgen CLK_TOP_AUD_I2S4_MCLK>,
653 <&audsys CLK_AUD_I2SO1>,
654 <&audsys CLK_AUD_I2SO2>,
655 <&audsys CLK_AUD_I2SO3>,
656 <&audsys CLK_AUD_I2SO4>,
657 <&audsys CLK_AUD_I2SIN1>,
658 <&audsys CLK_AUD_I2SIN2>,
659 <&audsys CLK_AUD_I2SIN3>,
660 <&audsys CLK_AUD_I2SIN4>,
661 <&audsys CLK_AUD_ASRCO1>,
662 <&audsys CLK_AUD_ASRCO2>,
663 <&audsys CLK_AUD_ASRCO3>,
664 <&audsys CLK_AUD_ASRCO4>,
665 <&audsys CLK_AUD_AFE>,
666 <&audsys CLK_AUD_AFE_CONN>,
667 <&audsys CLK_AUD_A1SYS>,
668 <&audsys CLK_AUD_A2SYS>,
669 <&audsys CLK_AUD_AFE_MRGIF>;
670
671 clock-names = "infra_sys_audio_clk",
672 "top_audio_mux1_sel",
673 "top_audio_mux2_sel",
674 "top_audio_a1sys_hp",
675 "top_audio_a2sys_hp",
676 "i2s0_src_sel",
677 "i2s1_src_sel",
678 "i2s2_src_sel",
679 "i2s3_src_sel",
680 "i2s0_src_div",
681 "i2s1_src_div",
682 "i2s2_src_div",
683 "i2s3_src_div",
684 "i2s0_mclk_en",
685 "i2s1_mclk_en",
686 "i2s2_mclk_en",
687 "i2s3_mclk_en",
688 "i2so0_hop_ck",
689 "i2so1_hop_ck",
690 "i2so2_hop_ck",
691 "i2so3_hop_ck",
692 "i2si0_hop_ck",
693 "i2si1_hop_ck",
694 "i2si2_hop_ck",
695 "i2si3_hop_ck",
696 "asrc0_out_ck",
697 "asrc1_out_ck",
698 "asrc2_out_ck",
699 "asrc3_out_ck",
700 "audio_afe_pd",
701 "audio_afe_conn_pd",
702 "audio_a1sys_pd",
703 "audio_a2sys_pd",
704 "audio_mrgif_pd";
705
706 assigned-clocks = <&topckgen CLK_TOP_AUD_MUX1_SEL>,
707 <&topckgen CLK_TOP_AUD_MUX2_SEL>,
708 <&topckgen CLK_TOP_AUD_MUX1_DIV>,
709 <&topckgen CLK_TOP_AUD_MUX2_DIV>;
710 assigned-clock-parents = <&topckgen CLK_TOP_AUD1PLL_98M>,
711 <&topckgen CLK_TOP_AUD2PLL_90M>;
712 assigned-clock-rates = <0>, <0>, <49152000>, <45158400>;
713 };
714 };
715
716 mmc0: mmc@11230000 {
717 compatible = "mediatek,mt7623-mmc",
718 "mediatek,mt2701-mmc";
719 reg = <0 0x11230000 0 0x1000>;
720 interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_LOW>;
721 clocks = <&pericfg CLK_PERI_MSDC30_0>,
722 <&topckgen CLK_TOP_MSDC30_0_SEL>;
723 clock-names = "source", "hclk";
724 status = "disabled";
725 };
726
727 mmc1: mmc@11240000 {
728 compatible = "mediatek,mt7623-mmc",
729 "mediatek,mt2701-mmc";
730 reg = <0 0x11240000 0 0x1000>;
731 interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_LOW>;
732 clocks = <&pericfg CLK_PERI_MSDC30_1>,
733 <&topckgen CLK_TOP_MSDC30_1_SEL>;
734 clock-names = "source", "hclk";
735 status = "disabled";
736 };
737
738 vdecsys: syscon@16000000 {
739 compatible = "mediatek,mt7623-vdecsys",
740 "mediatek,mt2701-vdecsys",
741 "syscon";
742 reg = <0 0x16000000 0 0x1000>;
743 #clock-cells = <1>;
744 };
745
746 hifsys: syscon@1a000000 {
747 compatible = "mediatek,mt7623-hifsys",
748 "mediatek,mt2701-hifsys",
749 "syscon";
750 reg = <0 0x1a000000 0 0x1000>;
751 #clock-cells = <1>;
752 #reset-cells = <1>;
753 };
754
755 pcie: pcie@1a140000 {
756 compatible = "mediatek,mt7623-pcie";
757 device_type = "pci";
758 reg = <0 0x1a140000 0 0x1000>, /* PCIe shared registers */
759 <0 0x1a142000 0 0x1000>, /* Port0 registers */
760 <0 0x1a143000 0 0x1000>, /* Port1 registers */
761 <0 0x1a144000 0 0x1000>; /* Port2 registers */
762 reg-names = "subsys", "port0", "port1", "port2";
763 #address-cells = <3>;
764 #size-cells = <2>;
765 #interrupt-cells = <1>;
766 interrupt-map-mask = <0xf800 0 0 0>;
767 interrupt-map = <0x0000 0 0 0 &sysirq GIC_SPI 193 IRQ_TYPE_LEVEL_LOW>,
768 <0x0800 0 0 0 &sysirq GIC_SPI 194 IRQ_TYPE_LEVEL_LOW>,
769 <0x1000 0 0 0 &sysirq GIC_SPI 195 IRQ_TYPE_LEVEL_LOW>;
770 clocks = <&topckgen CLK_TOP_ETHIF_SEL>,
771 <&hifsys CLK_HIFSYS_PCIE0>,
772 <&hifsys CLK_HIFSYS_PCIE1>,
773 <&hifsys CLK_HIFSYS_PCIE2>;
774 clock-names = "free_ck", "sys_ck0", "sys_ck1", "sys_ck2";
775 resets = <&hifsys MT2701_HIFSYS_PCIE0_RST>,
776 <&hifsys MT2701_HIFSYS_PCIE1_RST>,
777 <&hifsys MT2701_HIFSYS_PCIE2_RST>;
778 reset-names = "pcie-rst0", "pcie-rst1", "pcie-rst2";
779 phys = <&pcie0_port PHY_TYPE_PCIE>,
780 <&pcie1_port PHY_TYPE_PCIE>,
781 <&u3port1 PHY_TYPE_PCIE>;
782 phy-names = "pcie-phy0", "pcie-phy1", "pcie-phy2";
783 power-domains = <&scpsys MT2701_POWER_DOMAIN_HIF>;
784 bus-range = <0x00 0xff>;
785 status = "disabled";
786 ranges = <0x81000000 0 0x1a160000 0 0x1a160000 0 0x00010000
787 0x83000000 0 0x60000000 0 0x60000000 0 0x10000000>;
788
789 pcie@0,0 {
790 reg = <0x0000 0 0 0 0>;
791 #address-cells = <3>;
792 #size-cells = <2>;
793 #interrupt-cells = <1>;
794 interrupt-map-mask = <0 0 0 0>;
795 interrupt-map = <0 0 0 0 &sysirq GIC_SPI 193 IRQ_TYPE_LEVEL_LOW>;
796 ranges;
797 status = "disabled";
798 };
799
800 pcie@1,0 {
801 reg = <0x0800 0 0 0 0>;
802 #address-cells = <3>;
803 #size-cells = <2>;
804 #interrupt-cells = <1>;
805 interrupt-map-mask = <0 0 0 0>;
806 interrupt-map = <0 0 0 0 &sysirq GIC_SPI 194 IRQ_TYPE_LEVEL_LOW>;
807 ranges;
808 status = "disabled";
809 };
810
811 pcie@2,0 {
812 reg = <0x1000 0 0 0 0>;
813 #address-cells = <3>;
814 #size-cells = <2>;
815 #interrupt-cells = <1>;
816 interrupt-map-mask = <0 0 0 0>;
817 interrupt-map = <0 0 0 0 &sysirq GIC_SPI 195 IRQ_TYPE_LEVEL_LOW>;
818 ranges;
819 status = "disabled";
820 };
821 };
822
823 pcie0_phy: t-phy@1a149000 {
824 compatible = "mediatek,mt7623-tphy",
825 "mediatek,generic-tphy-v1";
826 reg = <0 0x1a149000 0 0x0700>;
827 #address-cells = <2>;
828 #size-cells = <2>;
829 ranges;
830 status = "disabled";
831
832 pcie0_port: pcie-phy@1a149900 {
833 reg = <0 0x1a149900 0 0x0700>;
834 clocks = <&clk26m>;
835 clock-names = "ref";
836 #phy-cells = <1>;
837 status = "okay";
838 };
839 };
840
841 pcie1_phy: t-phy@1a14a000 {
842 compatible = "mediatek,mt7623-tphy",
843 "mediatek,generic-tphy-v1";
844 reg = <0 0x1a14a000 0 0x0700>;
845 #address-cells = <2>;
846 #size-cells = <2>;
847 ranges;
848 status = "disabled";
849
850 pcie1_port: pcie-phy@1a14a900 {
851 reg = <0 0x1a14a900 0 0x0700>;
852 clocks = <&clk26m>;
853 clock-names = "ref";
854 #phy-cells = <1>;
855 status = "okay";
856 };
857 };
858
859 usb1: usb@1a1c0000 {
860 compatible = "mediatek,mt7623-xhci",
861 "mediatek,mtk-xhci";
862 reg = <0 0x1a1c0000 0 0x1000>,
863 <0 0x1a1c4700 0 0x0100>;
864 reg-names = "mac", "ippc";
865 interrupts = <GIC_SPI 196 IRQ_TYPE_LEVEL_LOW>;
866 clocks = <&hifsys CLK_HIFSYS_USB0PHY>,
867 <&topckgen CLK_TOP_ETHIF_SEL>;
868 clock-names = "sys_ck", "ref_ck";
869 power-domains = <&scpsys MT2701_POWER_DOMAIN_HIF>;
870 phys = <&u2port0 PHY_TYPE_USB2>, <&u3port0 PHY_TYPE_USB3>;
871 status = "disabled";
872 };
873
874 u3phy1: t-phy@1a1c4000 {
875 compatible = "mediatek,mt7623-tphy",
876 "mediatek,generic-tphy-v1";
877 reg = <0 0x1a1c4000 0 0x0700>;
878 #address-cells = <2>;
879 #size-cells = <2>;
880 ranges;
881 status = "disabled";
882
883 u2port0: usb-phy@1a1c4800 {
884 reg = <0 0x1a1c4800 0 0x0100>;
885 clocks = <&topckgen CLK_TOP_USB_PHY48M>;
886 clock-names = "ref";
887 #phy-cells = <1>;
888 status = "okay";
889 };
890
891 u3port0: usb-phy@1a1c4900 {
892 reg = <0 0x1a1c4900 0 0x0700>;
893 clocks = <&clk26m>;
894 clock-names = "ref";
895 #phy-cells = <1>;
896 status = "okay";
897 };
898 };
899
900 usb2: usb@1a240000 {
901 compatible = "mediatek,mt7623-xhci",
902 "mediatek,mtk-xhci";
903 reg = <0 0x1a240000 0 0x1000>,
904 <0 0x1a244700 0 0x0100>;
905 reg-names = "mac", "ippc";
906 interrupts = <GIC_SPI 197 IRQ_TYPE_LEVEL_LOW>;
907 clocks = <&hifsys CLK_HIFSYS_USB1PHY>,
908 <&topckgen CLK_TOP_ETHIF_SEL>;
909 clock-names = "sys_ck", "ref_ck";
910 power-domains = <&scpsys MT2701_POWER_DOMAIN_HIF>;
911 phys = <&u2port1 PHY_TYPE_USB2>, <&u3port1 PHY_TYPE_USB3>;
912 status = "disabled";
913 };
914
915 u3phy2: t-phy@1a244000 {
916 compatible = "mediatek,mt7623-tphy",
917 "mediatek,generic-tphy-v1";
918 reg = <0 0x1a244000 0 0x0700>;
919 #address-cells = <2>;
920 #size-cells = <2>;
921 ranges;
922 status = "disabled";
923
924 u2port1: usb-phy@1a244800 {
925 reg = <0 0x1a244800 0 0x0100>;
926 clocks = <&topckgen CLK_TOP_USB_PHY48M>;
927 clock-names = "ref";
928 #phy-cells = <1>;
929 status = "okay";
930 };
931
932 u3port1: usb-phy@1a244900 {
933 reg = <0 0x1a244900 0 0x0700>;
934 clocks = <&clk26m>;
935 clock-names = "ref";
936 #phy-cells = <1>;
937 status = "okay";
938 };
939 };
940
941 ethsys: syscon@1b000000 {
942 compatible = "mediatek,mt7623-ethsys",
943 "mediatek,mt2701-ethsys",
944 "syscon";
945 reg = <0 0x1b000000 0 0x1000>;
946 #clock-cells = <1>;
947 #reset-cells = <1>;
948 };
949
950 hsdma: dma-controller@1b007000 {
951 compatible = "mediatek,mt7623-hsdma";
952 reg = <0 0x1b007000 0 0x1000>;
953 interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_LOW>;
954 clocks = <ðsys CLK_ETHSYS_HSDMA>;
955 clock-names = "hsdma";
956 power-domains = <&scpsys MT2701_POWER_DOMAIN_ETH>;
957 #dma-cells = <1>;
958 };
959
960 eth: ethernet@1b100000 {
961 compatible = "mediatek,mt7623-eth",
962 "mediatek,mt2701-eth",
963 "syscon";
964 reg = <0 0x1b100000 0 0x20000>;
965 interrupts = <GIC_SPI 200 IRQ_TYPE_LEVEL_LOW>,
966 <GIC_SPI 199 IRQ_TYPE_LEVEL_LOW>,
967 <GIC_SPI 198 IRQ_TYPE_LEVEL_LOW>;
968 clocks = <&topckgen CLK_TOP_ETHIF_SEL>,
969 <ðsys CLK_ETHSYS_ESW>,
970 <ðsys CLK_ETHSYS_GP1>,
971 <ðsys CLK_ETHSYS_GP2>,
972 <&apmixedsys CLK_APMIXED_TRGPLL>;
973 clock-names = "ethif", "esw", "gp1", "gp2", "trgpll";
974 resets = <ðsys MT2701_ETHSYS_FE_RST>,
975 <ðsys MT2701_ETHSYS_GMAC_RST>,
976 <ðsys MT2701_ETHSYS_PPE_RST>;
977 reset-names = "fe", "gmac", "ppe";
978 power-domains = <&scpsys MT2701_POWER_DOMAIN_ETH>;
979 mediatek,ethsys = <ðsys>;
980 mediatek,pctl = <&syscfg_pctl_a>;
981 #address-cells = <1>;
982 #size-cells = <0>;
983 status = "disabled";
984 };
985
986 crypto: crypto@1b240000 {
987 compatible = "mediatek,eip97-crypto";
988 reg = <0 0x1b240000 0 0x20000>;
989 interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_LOW>,
990 <GIC_SPI 83 IRQ_TYPE_LEVEL_LOW>,
991 <GIC_SPI 84 IRQ_TYPE_LEVEL_LOW>,
992 <GIC_SPI 91 IRQ_TYPE_LEVEL_LOW>,
993 <GIC_SPI 97 IRQ_TYPE_LEVEL_LOW>;
994 clocks = <ðsys CLK_ETHSYS_CRYPTO>;
995 clock-names = "cryp";
996 power-domains = <&scpsys MT2701_POWER_DOMAIN_ETH>;
997 status = "disabled";
998 };
999
1000 bdpsys: syscon@1c000000 {
1001 compatible = "mediatek,mt7623-bdpsys",
1002 "mediatek,mt2701-bdpsys",
1003 "syscon";
1004 reg = <0 0x1c000000 0 0x1000>;
1005 #clock-cells = <1>;
1006 };
1007};
1008
1009&pio {
1010 cir_pins_a:cir-default {
1011 pins-cir {
1012 pinmux = <MT7623_PIN_46_IR_FUNC_IR>;
1013 bias-disable;
1014 };
1015 };
1016
1017 i2c0_pins_a: i2c0-default {
1018 pins-i2c0 {
1019 pinmux = <MT7623_PIN_75_SDA0_FUNC_SDA0>,
1020 <MT7623_PIN_76_SCL0_FUNC_SCL0>;
1021 bias-disable;
1022 };
1023 };
1024
1025 i2c1_pins_a: i2c1-default {
1026 pin-i2c1 {
1027 pinmux = <MT7623_PIN_57_SDA1_FUNC_SDA1>,
1028 <MT7623_PIN_58_SCL1_FUNC_SCL1>;
1029 bias-disable;
1030 };
1031 };
1032
1033 i2c1_pins_b: i2c1-alt {
1034 pin-i2c1 {
1035 pinmux = <MT7623_PIN_242_URTS2_FUNC_SCL1>,
1036 <MT7623_PIN_243_UCTS2_FUNC_SDA1>;
1037 bias-disable;
1038 };
1039 };
1040
1041 i2c2_pins_a: i2c2-default {
1042 pin-i2c2 {
1043 pinmux = <MT7623_PIN_77_SDA2_FUNC_SDA2>,
1044 <MT7623_PIN_78_SCL2_FUNC_SCL2>;
1045 bias-disable;
1046 };
1047 };
1048
1049 i2c2_pins_b: i2c2-alt {
1050 pin-i2c2 {
1051 pinmux = <MT7623_PIN_122_GPIO122_FUNC_SDA2>,
1052 <MT7623_PIN_123_HTPLG_FUNC_SCL2>;
1053 bias-disable;
1054 };
1055 };
1056
1057 i2s0_pins_a: i2s0-default {
1058 pin-i2s0 {
1059 pinmux = <MT7623_PIN_49_I2S0_DATA_FUNC_I2S0_DATA>,
1060 <MT7623_PIN_72_I2S0_DATA_IN_FUNC_I2S0_DATA_IN>,
1061 <MT7623_PIN_73_I2S0_LRCK_FUNC_I2S0_LRCK>,
1062 <MT7623_PIN_74_I2S0_BCK_FUNC_I2S0_BCK>,
1063 <MT7623_PIN_126_I2S0_MCLK_FUNC_I2S0_MCLK>;
1064 drive-strength = <MTK_DRIVE_12mA>;
1065 bias-pull-down;
1066 };
1067 };
1068
1069 i2s1_pins_a: i2s1-default {
1070 pin-i2s1 {
1071 pinmux = <MT7623_PIN_33_I2S1_DATA_FUNC_I2S1_DATA>,
1072 <MT7623_PIN_34_I2S1_DATA_IN_FUNC_I2S1_DATA_IN>,
1073 <MT7623_PIN_35_I2S1_BCK_FUNC_I2S1_BCK>,
1074 <MT7623_PIN_36_I2S1_LRCK_FUNC_I2S1_LRCK>,
1075 <MT7623_PIN_37_I2S1_MCLK_FUNC_I2S1_MCLK>;
1076 drive-strength = <MTK_DRIVE_12mA>;
1077 bias-pull-down;
1078 };
1079 };
1080
1081 key_pins_a: keys-alt {
1082 pins-keys {
1083 pinmux = <MT7623_PIN_256_GPIO256_FUNC_GPIO256>,
1084 <MT7623_PIN_257_GPIO257_FUNC_GPIO257> ;
1085 input-enable;
1086 };
1087 };
1088
1089 led_pins_a: leds-alt {
1090 pins-leds {
1091 pinmux = <MT7623_PIN_239_EXT_SDIO0_FUNC_GPIO239>,
1092 <MT7623_PIN_240_EXT_XCS_FUNC_GPIO240>,
1093 <MT7623_PIN_241_EXT_SCK_FUNC_GPIO241>;
1094 };
1095 };
1096
1097 mmc0_pins_default: mmc0default {
1098 pins-cmd-dat {
1099 pinmux = <MT7623_PIN_111_MSDC0_DAT7_FUNC_MSDC0_DAT7>,
1100 <MT7623_PIN_112_MSDC0_DAT6_FUNC_MSDC0_DAT6>,
1101 <MT7623_PIN_113_MSDC0_DAT5_FUNC_MSDC0_DAT5>,
1102 <MT7623_PIN_114_MSDC0_DAT4_FUNC_MSDC0_DAT4>,
1103 <MT7623_PIN_118_MSDC0_DAT3_FUNC_MSDC0_DAT3>,
1104 <MT7623_PIN_119_MSDC0_DAT2_FUNC_MSDC0_DAT2>,
1105 <MT7623_PIN_120_MSDC0_DAT1_FUNC_MSDC0_DAT1>,
1106 <MT7623_PIN_121_MSDC0_DAT0_FUNC_MSDC0_DAT0>,
1107 <MT7623_PIN_116_MSDC0_CMD_FUNC_MSDC0_CMD>;
1108 input-enable;
1109 bias-pull-up;
1110 };
1111
1112 pins-clk {
1113 pinmux = <MT7623_PIN_117_MSDC0_CLK_FUNC_MSDC0_CLK>;
1114 bias-pull-down;
1115 };
1116
1117 pins-rst {
1118 pinmux = <MT7623_PIN_115_MSDC0_RSTB_FUNC_MSDC0_RSTB>;
1119 bias-pull-up;
1120 };
1121 };
1122
1123 mmc0_pins_uhs: mmc0 {
1124 pins-cmd-dat {
1125 pinmux = <MT7623_PIN_111_MSDC0_DAT7_FUNC_MSDC0_DAT7>,
1126 <MT7623_PIN_112_MSDC0_DAT6_FUNC_MSDC0_DAT6>,
1127 <MT7623_PIN_113_MSDC0_DAT5_FUNC_MSDC0_DAT5>,
1128 <MT7623_PIN_114_MSDC0_DAT4_FUNC_MSDC0_DAT4>,
1129 <MT7623_PIN_118_MSDC0_DAT3_FUNC_MSDC0_DAT3>,
1130 <MT7623_PIN_119_MSDC0_DAT2_FUNC_MSDC0_DAT2>,
1131 <MT7623_PIN_120_MSDC0_DAT1_FUNC_MSDC0_DAT1>,
1132 <MT7623_PIN_121_MSDC0_DAT0_FUNC_MSDC0_DAT0>,
1133 <MT7623_PIN_116_MSDC0_CMD_FUNC_MSDC0_CMD>;
1134 input-enable;
1135 drive-strength = <MTK_DRIVE_2mA>;
1136 bias-pull-up = <MTK_PUPD_SET_R1R0_01>;
1137 };
1138
1139 pins-clk {
1140 pinmux = <MT7623_PIN_117_MSDC0_CLK_FUNC_MSDC0_CLK>;
1141 drive-strength = <MTK_DRIVE_2mA>;
1142 bias-pull-down = <MTK_PUPD_SET_R1R0_01>;
1143 };
1144
1145 pins-rst {
1146 pinmux = <MT7623_PIN_115_MSDC0_RSTB_FUNC_MSDC0_RSTB>;
1147 bias-pull-up;
1148 };
1149 };
1150
1151 mmc1_pins_default: mmc1default {
1152 pins-cmd-dat {
1153 pinmux = <MT7623_PIN_107_MSDC1_DAT0_FUNC_MSDC1_DAT0>,
1154 <MT7623_PIN_108_MSDC1_DAT1_FUNC_MSDC1_DAT1>,
1155 <MT7623_PIN_109_MSDC1_DAT2_FUNC_MSDC1_DAT2>,
1156 <MT7623_PIN_110_MSDC1_DAT3_FUNC_MSDC1_DAT3>,
1157 <MT7623_PIN_105_MSDC1_CMD_FUNC_MSDC1_CMD>;
1158 input-enable;
1159 drive-strength = <MTK_DRIVE_4mA>;
1160 bias-pull-up = <MTK_PUPD_SET_R1R0_10>;
1161 };
1162
1163 pins-clk {
1164 pinmux = <MT7623_PIN_106_MSDC1_CLK_FUNC_MSDC1_CLK>;
1165 bias-pull-down;
1166 drive-strength = <MTK_DRIVE_4mA>;
1167 };
1168
1169 pins-wp {
1170 pinmux = <MT7623_PIN_29_EINT7_FUNC_MSDC1_WP>;
1171 input-enable;
1172 bias-pull-up;
1173 };
1174
1175 pins-insert {
1176 pinmux = <MT7623_PIN_261_MSDC1_INS_FUNC_GPIO261>;
1177 bias-pull-up;
1178 };
1179 };
1180
1181 mmc1_pins_uhs: mmc1 {
1182 pins-cmd-dat {
1183 pinmux = <MT7623_PIN_107_MSDC1_DAT0_FUNC_MSDC1_DAT0>,
1184 <MT7623_PIN_108_MSDC1_DAT1_FUNC_MSDC1_DAT1>,
1185 <MT7623_PIN_109_MSDC1_DAT2_FUNC_MSDC1_DAT2>,
1186 <MT7623_PIN_110_MSDC1_DAT3_FUNC_MSDC1_DAT3>,
1187 <MT7623_PIN_105_MSDC1_CMD_FUNC_MSDC1_CMD>;
1188 input-enable;
1189 drive-strength = <MTK_DRIVE_4mA>;
1190 bias-pull-up = <MTK_PUPD_SET_R1R0_10>;
1191 };
1192
1193 pins-clk {
1194 pinmux = <MT7623_PIN_106_MSDC1_CLK_FUNC_MSDC1_CLK>;
1195 drive-strength = <MTK_DRIVE_4mA>;
1196 bias-pull-down = <MTK_PUPD_SET_R1R0_10>;
1197 };
1198 };
1199
1200 nand_pins_default: nanddefault {
1201 pins-ale {
1202 pinmux = <MT7623_PIN_116_MSDC0_CMD_FUNC_NALE>;
1203 drive-strength = <MTK_DRIVE_8mA>;
1204 bias-pull-down = <MTK_PUPD_SET_R1R0_10>;
1205 };
1206
1207 pins-dat {
1208 pinmux = <MT7623_PIN_111_MSDC0_DAT7_FUNC_NLD7>,
1209 <MT7623_PIN_112_MSDC0_DAT6_FUNC_NLD6>,
1210 <MT7623_PIN_114_MSDC0_DAT4_FUNC_NLD4>,
1211 <MT7623_PIN_118_MSDC0_DAT3_FUNC_NLD3>,
1212 <MT7623_PIN_121_MSDC0_DAT0_FUNC_NLD0>,
1213 <MT7623_PIN_120_MSDC0_DAT1_FUNC_NLD1>,
1214 <MT7623_PIN_113_MSDC0_DAT5_FUNC_NLD5>,
1215 <MT7623_PIN_115_MSDC0_RSTB_FUNC_NLD8>,
1216 <MT7623_PIN_119_MSDC0_DAT2_FUNC_NLD2>;
1217 input-enable;
1218 drive-strength = <MTK_DRIVE_8mA>;
1219 bias-pull-up;
1220 };
1221
1222 pins-we {
1223 pinmux = <MT7623_PIN_117_MSDC0_CLK_FUNC_NWEB>;
1224 drive-strength = <MTK_DRIVE_8mA>;
1225 bias-pull-up = <MTK_PUPD_SET_R1R0_10>;
1226 };
1227 };
1228
1229 pcie_default: pcie_pin_default {
1230 pins_cmd_dat {
1231 pinmux = <MT7623_PIN_208_AUD_EXT_CK1_FUNC_PCIE0_PERST_N>,
1232 <MT7623_PIN_209_AUD_EXT_CK2_FUNC_PCIE1_PERST_N>;
1233 bias-disable;
1234 };
1235 };
1236
1237 pwm_pins_a: pwm-default {
1238 pins-pwm {
1239 pinmux = <MT7623_PIN_203_PWM0_FUNC_PWM0>,
1240 <MT7623_PIN_204_PWM1_FUNC_PWM1>,
1241 <MT7623_PIN_205_PWM2_FUNC_PWM2>,
1242 <MT7623_PIN_206_PWM3_FUNC_PWM3>,
1243 <MT7623_PIN_207_PWM4_FUNC_PWM4>;
1244 };
1245 };
1246
1247 spi0_pins_a: spi0-default {
1248 pins-spi {
1249 pinmux = <MT7623_PIN_53_SPI0_CSN_FUNC_SPI0_CS>,
1250 <MT7623_PIN_54_SPI0_CK_FUNC_SPI0_CK>,
1251 <MT7623_PIN_55_SPI0_MI_FUNC_SPI0_MI>,
1252 <MT7623_PIN_56_SPI0_MO_FUNC_SPI0_MO>;
1253 bias-disable;
1254 };
1255 };
1256
1257 spi1_pins_a: spi1-default {
1258 pins-spi {
1259 pinmux = <MT7623_PIN_7_SPI1_CSN_FUNC_SPI1_CS>,
1260 <MT7623_PIN_199_SPI1_CK_FUNC_SPI1_CK>,
1261 <MT7623_PIN_8_SPI1_MI_FUNC_SPI1_MI>,
1262 <MT7623_PIN_9_SPI1_MO_FUNC_SPI1_MO>;
1263 };
1264 };
1265
1266 spi2_pins_a: spi2-default {
1267 pins-spi {
1268 pinmux = <MT7623_PIN_101_SPI2_CSN_FUNC_SPI2_CS>,
1269 <MT7623_PIN_104_SPI2_CK_FUNC_SPI2_CK>,
1270 <MT7623_PIN_102_SPI2_MI_FUNC_SPI2_MI>,
1271 <MT7623_PIN_103_SPI2_MO_FUNC_SPI2_MO>;
1272 };
1273 };
1274
1275 uart0_pins_a: uart0-default {
1276 pins-dat {
1277 pinmux = <MT7623_PIN_79_URXD0_FUNC_URXD0>,
1278 <MT7623_PIN_80_UTXD0_FUNC_UTXD0>;
1279 };
1280 };
1281
1282 uart1_pins_a: uart1-default {
1283 pins-dat {
1284 pinmux = <MT7623_PIN_81_URXD1_FUNC_URXD1>,
1285 <MT7623_PIN_82_UTXD1_FUNC_UTXD1>;
1286 };
1287 };
1288
1289 uart2_pins_a: uart2-default {
1290 pins-dat {
1291 pinmux = <MT7623_PIN_14_GPIO14_FUNC_URXD2>,
1292 <MT7623_PIN_15_GPIO15_FUNC_UTXD2>;
1293 };
1294 };
1295
1296 uart2_pins_b: uart2-alt {
1297 pins-dat {
1298 pinmux = <MT7623_PIN_200_URXD2_FUNC_URXD2>,
1299 <MT7623_PIN_201_UTXD2_FUNC_UTXD2>;
1300 };
1301 };
1302};
1// SPDX-License-Identifier: GPL-2.0
2/*
3 * Copyright (c) 2017-2018 MediaTek Inc.
4 * Author: John Crispin <john@phrozen.org>
5 * Sean Wang <sean.wang@mediatek.com>
6 * Ryder Lee <ryder.lee@mediatek.com>
7 *
8 */
9
10#include <dt-bindings/interrupt-controller/irq.h>
11#include <dt-bindings/interrupt-controller/arm-gic.h>
12#include <dt-bindings/clock/mt2701-clk.h>
13#include <dt-bindings/pinctrl/mt7623-pinfunc.h>
14#include <dt-bindings/power/mt2701-power.h>
15#include <dt-bindings/gpio/gpio.h>
16#include <dt-bindings/phy/phy.h>
17#include <dt-bindings/memory/mt2701-larb-port.h>
18#include <dt-bindings/reset/mt2701-resets.h>
19#include <dt-bindings/thermal/thermal.h>
20
21/ {
22 compatible = "mediatek,mt7623";
23 interrupt-parent = <&sysirq>;
24 #address-cells = <2>;
25 #size-cells = <2>;
26
27 cpu_opp_table: opp-table {
28 compatible = "operating-points-v2";
29 opp-shared;
30
31 opp-98000000 {
32 opp-hz = /bits/ 64 <98000000>;
33 opp-microvolt = <1050000>;
34 };
35
36 opp-198000000 {
37 opp-hz = /bits/ 64 <198000000>;
38 opp-microvolt = <1050000>;
39 };
40
41 opp-398000000 {
42 opp-hz = /bits/ 64 <398000000>;
43 opp-microvolt = <1050000>;
44 };
45
46 opp-598000000 {
47 opp-hz = /bits/ 64 <598000000>;
48 opp-microvolt = <1050000>;
49 };
50
51 opp-747500000 {
52 opp-hz = /bits/ 64 <747500000>;
53 opp-microvolt = <1050000>;
54 };
55
56 opp-1040000000 {
57 opp-hz = /bits/ 64 <1040000000>;
58 opp-microvolt = <1150000>;
59 };
60
61 opp-1196000000 {
62 opp-hz = /bits/ 64 <1196000000>;
63 opp-microvolt = <1200000>;
64 };
65
66 opp-1300000000 {
67 opp-hz = /bits/ 64 <1300000000>;
68 opp-microvolt = <1300000>;
69 };
70 };
71
72 cpus {
73 #address-cells = <1>;
74 #size-cells = <0>;
75 enable-method = "mediatek,mt6589-smp";
76
77 cpu0: cpu@0 {
78 device_type = "cpu";
79 compatible = "arm,cortex-a7";
80 reg = <0x0>;
81 clocks = <&infracfg CLK_INFRA_CPUSEL>,
82 <&apmixedsys CLK_APMIXED_MAINPLL>;
83 clock-names = "cpu", "intermediate";
84 operating-points-v2 = <&cpu_opp_table>;
85 #cooling-cells = <2>;
86 clock-frequency = <1300000000>;
87 };
88
89 cpu1: cpu@1 {
90 device_type = "cpu";
91 compatible = "arm,cortex-a7";
92 reg = <0x1>;
93 clocks = <&infracfg CLK_INFRA_CPUSEL>,
94 <&apmixedsys CLK_APMIXED_MAINPLL>;
95 clock-names = "cpu", "intermediate";
96 operating-points-v2 = <&cpu_opp_table>;
97 #cooling-cells = <2>;
98 clock-frequency = <1300000000>;
99 };
100
101 cpu2: cpu@2 {
102 device_type = "cpu";
103 compatible = "arm,cortex-a7";
104 reg = <0x2>;
105 clocks = <&infracfg CLK_INFRA_CPUSEL>,
106 <&apmixedsys CLK_APMIXED_MAINPLL>;
107 clock-names = "cpu", "intermediate";
108 operating-points-v2 = <&cpu_opp_table>;
109 #cooling-cells = <2>;
110 clock-frequency = <1300000000>;
111 };
112
113 cpu3: cpu@3 {
114 device_type = "cpu";
115 compatible = "arm,cortex-a7";
116 reg = <0x3>;
117 clocks = <&infracfg CLK_INFRA_CPUSEL>,
118 <&apmixedsys CLK_APMIXED_MAINPLL>;
119 clock-names = "cpu", "intermediate";
120 operating-points-v2 = <&cpu_opp_table>;
121 #cooling-cells = <2>;
122 clock-frequency = <1300000000>;
123 };
124 };
125
126 pmu {
127 compatible = "arm,cortex-a7-pmu";
128 interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_LOW>,
129 <GIC_SPI 5 IRQ_TYPE_LEVEL_LOW>,
130 <GIC_SPI 6 IRQ_TYPE_LEVEL_LOW>,
131 <GIC_SPI 7 IRQ_TYPE_LEVEL_LOW>;
132 interrupt-affinity = <&cpu0>, <&cpu1>, <&cpu2>, <&cpu3>;
133 };
134
135 system_clk: dummy13m {
136 compatible = "fixed-clock";
137 clock-frequency = <13000000>;
138 #clock-cells = <0>;
139 };
140
141 rtc32k: oscillator-1 {
142 compatible = "fixed-clock";
143 #clock-cells = <0>;
144 clock-frequency = <32000>;
145 clock-output-names = "rtc32k";
146 };
147
148 clk26m: oscillator-0 {
149 compatible = "fixed-clock";
150 #clock-cells = <0>;
151 clock-frequency = <26000000>;
152 clock-output-names = "clk26m";
153 };
154
155 thermal-zones {
156 cpu_thermal: cpu-thermal {
157 polling-delay-passive = <1000>;
158 polling-delay = <1000>;
159
160 thermal-sensors = <&thermal 0>;
161
162 trips {
163 cpu_passive: cpu-passive {
164 temperature = <47000>;
165 hysteresis = <2000>;
166 type = "passive";
167 };
168
169 cpu_active: cpu-active {
170 temperature = <67000>;
171 hysteresis = <2000>;
172 type = "active";
173 };
174
175 cpu_hot: cpu-hot {
176 temperature = <87000>;
177 hysteresis = <2000>;
178 type = "hot";
179 };
180
181 cpu-crit {
182 temperature = <107000>;
183 hysteresis = <2000>;
184 type = "critical";
185 };
186 };
187
188 cooling-maps {
189 map0 {
190 trip = <&cpu_passive>;
191 cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
192 <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
193 <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
194 <&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
195 };
196
197 map1 {
198 trip = <&cpu_active>;
199 cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
200 <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
201 <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
202 <&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
203 };
204
205 map2 {
206 trip = <&cpu_hot>;
207 cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
208 <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
209 <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
210 <&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
211 };
212 };
213 };
214 };
215
216 timer {
217 compatible = "arm,armv7-timer";
218 interrupt-parent = <&gic>;
219 interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
220 <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
221 <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
222 <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
223 clock-frequency = <13000000>;
224 arm,cpu-registers-not-fw-configured;
225 };
226
227 topckgen: syscon@10000000 {
228 compatible = "mediatek,mt7623-topckgen",
229 "mediatek,mt2701-topckgen",
230 "syscon";
231 reg = <0 0x10000000 0 0x1000>;
232 #clock-cells = <1>;
233 };
234
235 infracfg: syscon@10001000 {
236 compatible = "mediatek,mt7623-infracfg",
237 "mediatek,mt2701-infracfg",
238 "syscon";
239 reg = <0 0x10001000 0 0x1000>;
240 #clock-cells = <1>;
241 #reset-cells = <1>;
242 };
243
244 pericfg: syscon@10003000 {
245 compatible = "mediatek,mt7623-pericfg",
246 "mediatek,mt2701-pericfg",
247 "syscon";
248 reg = <0 0x10003000 0 0x1000>;
249 #clock-cells = <1>;
250 #reset-cells = <1>;
251 };
252
253 pio: pinctrl@10005000 {
254 compatible = "mediatek,mt7623-pinctrl";
255 reg = <0 0x1000b000 0 0x1000>;
256 mediatek,pctl-regmap = <&syscfg_pctl_a>;
257 pins-are-numbered;
258 gpio-controller;
259 #gpio-cells = <2>;
260 interrupt-controller;
261 interrupt-parent = <&gic>;
262 #interrupt-cells = <2>;
263 interrupts = <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>,
264 <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>;
265 };
266
267 syscfg_pctl_a: syscfg@10005000 {
268 compatible = "mediatek,mt7623-pctl-a-syscfg", "syscon";
269 reg = <0 0x10005000 0 0x1000>;
270 };
271
272 scpsys: power-controller@10006000 {
273 compatible = "mediatek,mt7623-scpsys",
274 "mediatek,mt2701-scpsys",
275 "syscon";
276 #power-domain-cells = <1>;
277 reg = <0 0x10006000 0 0x1000>;
278 infracfg = <&infracfg>;
279 clocks = <&topckgen CLK_TOP_MM_SEL>,
280 <&topckgen CLK_TOP_MFG_SEL>,
281 <&topckgen CLK_TOP_ETHIF_SEL>;
282 clock-names = "mm", "mfg", "ethif";
283 };
284
285 watchdog: watchdog@10007000 {
286 compatible = "mediatek,mt7623-wdt",
287 "mediatek,mt6589-wdt";
288 reg = <0 0x10007000 0 0x100>;
289 };
290
291 timer: timer@10008000 {
292 compatible = "mediatek,mt7623-timer",
293 "mediatek,mt6577-timer";
294 reg = <0 0x10008000 0 0x80>;
295 interrupts = <GIC_SPI 112 IRQ_TYPE_LEVEL_LOW>;
296 clocks = <&system_clk>, <&rtc32k>;
297 clock-names = "system-clk", "rtc-clk";
298 };
299
300 smi_common: smi@1000c000 {
301 compatible = "mediatek,mt7623-smi-common",
302 "mediatek,mt2701-smi-common";
303 reg = <0 0x1000c000 0 0x1000>;
304 clocks = <&infracfg CLK_INFRA_SMI>,
305 <&mmsys CLK_MM_SMI_COMMON>,
306 <&infracfg CLK_INFRA_SMI>;
307 clock-names = "apb", "smi", "async";
308 power-domains = <&scpsys MT2701_POWER_DOMAIN_DISP>;
309 };
310
311 pwrap: pwrap@1000d000 {
312 compatible = "mediatek,mt7623-pwrap",
313 "mediatek,mt2701-pwrap";
314 reg = <0 0x1000d000 0 0x1000>;
315 reg-names = "pwrap";
316 interrupts = <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>;
317 resets = <&infracfg MT2701_INFRA_PMIC_WRAP_RST>;
318 reset-names = "pwrap";
319 clocks = <&infracfg CLK_INFRA_PMICSPI>,
320 <&infracfg CLK_INFRA_PMICWRAP>;
321 clock-names = "spi", "wrap";
322 };
323
324 cir: cir@10013000 {
325 compatible = "mediatek,mt7623-cir";
326 reg = <0 0x10013000 0 0x1000>;
327 interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_LOW>;
328 clocks = <&infracfg CLK_INFRA_IRRX>;
329 clock-names = "clk";
330 status = "disabled";
331 };
332
333 sysirq: interrupt-controller@10200100 {
334 compatible = "mediatek,mt7623-sysirq",
335 "mediatek,mt6577-sysirq";
336 interrupt-controller;
337 #interrupt-cells = <3>;
338 interrupt-parent = <&gic>;
339 reg = <0 0x10200100 0 0x1c>;
340 };
341
342 iommu: mmsys_iommu@10205000 {
343 compatible = "mediatek,mt7623-m4u",
344 "mediatek,mt2701-m4u";
345 reg = <0 0x10205000 0 0x1000>;
346 interrupts = <GIC_SPI 106 IRQ_TYPE_LEVEL_LOW>;
347 clocks = <&infracfg CLK_INFRA_M4U>;
348 clock-names = "bclk";
349 mediatek,larbs = <&larb0 &larb1 &larb2>;
350 #iommu-cells = <1>;
351 };
352
353 efuse: efuse@10206000 {
354 compatible = "mediatek,mt7623-efuse",
355 "mediatek,mt8173-efuse";
356 reg = <0 0x10206000 0 0x1000>;
357 #address-cells = <1>;
358 #size-cells = <1>;
359 thermal_calibration_data: calib@424 {
360 reg = <0x424 0xc>;
361 };
362 };
363
364 apmixedsys: syscon@10209000 {
365 compatible = "mediatek,mt7623-apmixedsys",
366 "mediatek,mt2701-apmixedsys",
367 "syscon";
368 reg = <0 0x10209000 0 0x1000>;
369 #clock-cells = <1>;
370 };
371
372 rng: rng@1020f000 {
373 compatible = "mediatek,mt7623-rng";
374 reg = <0 0x1020f000 0 0x1000>;
375 clocks = <&infracfg CLK_INFRA_TRNG>;
376 clock-names = "rng";
377 };
378
379 gic: interrupt-controller@10211000 {
380 compatible = "arm,cortex-a7-gic";
381 interrupt-controller;
382 #interrupt-cells = <3>;
383 interrupt-parent = <&gic>;
384 reg = <0 0x10211000 0 0x1000>,
385 <0 0x10212000 0 0x2000>,
386 <0 0x10214000 0 0x2000>,
387 <0 0x10216000 0 0x2000>;
388 };
389
390 auxadc: adc@11001000 {
391 compatible = "mediatek,mt7623-auxadc",
392 "mediatek,mt2701-auxadc";
393 reg = <0 0x11001000 0 0x1000>;
394 clocks = <&pericfg CLK_PERI_AUXADC>;
395 clock-names = "main";
396 #io-channel-cells = <1>;
397 };
398
399 uart0: serial@11002000 {
400 compatible = "mediatek,mt7623-uart",
401 "mediatek,mt6577-uart";
402 reg = <0 0x11002000 0 0x400>;
403 interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_LOW>;
404 clocks = <&pericfg CLK_PERI_UART0_SEL>,
405 <&pericfg CLK_PERI_UART0>;
406 clock-names = "baud", "bus";
407 status = "disabled";
408 };
409
410 uart1: serial@11003000 {
411 compatible = "mediatek,mt7623-uart",
412 "mediatek,mt6577-uart";
413 reg = <0 0x11003000 0 0x400>;
414 interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_LOW>;
415 clocks = <&pericfg CLK_PERI_UART1_SEL>,
416 <&pericfg CLK_PERI_UART1>;
417 clock-names = "baud", "bus";
418 status = "disabled";
419 };
420
421 uart2: serial@11004000 {
422 compatible = "mediatek,mt7623-uart",
423 "mediatek,mt6577-uart";
424 reg = <0 0x11004000 0 0x400>;
425 interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_LOW>;
426 clocks = <&pericfg CLK_PERI_UART2_SEL>,
427 <&pericfg CLK_PERI_UART2>;
428 clock-names = "baud", "bus";
429 status = "disabled";
430 };
431
432 uart3: serial@11005000 {
433 compatible = "mediatek,mt7623-uart",
434 "mediatek,mt6577-uart";
435 reg = <0 0x11005000 0 0x400>;
436 interrupts = <GIC_SPI 54 IRQ_TYPE_LEVEL_LOW>;
437 clocks = <&pericfg CLK_PERI_UART3_SEL>,
438 <&pericfg CLK_PERI_UART3>;
439 clock-names = "baud", "bus";
440 status = "disabled";
441 };
442
443 pwm: pwm@11006000 {
444 compatible = "mediatek,mt7623-pwm";
445 reg = <0 0x11006000 0 0x1000>;
446 #pwm-cells = <2>;
447 clocks = <&topckgen CLK_TOP_PWM_SEL>,
448 <&pericfg CLK_PERI_PWM>,
449 <&pericfg CLK_PERI_PWM1>,
450 <&pericfg CLK_PERI_PWM2>,
451 <&pericfg CLK_PERI_PWM3>,
452 <&pericfg CLK_PERI_PWM4>,
453 <&pericfg CLK_PERI_PWM5>;
454 clock-names = "top", "main", "pwm1", "pwm2",
455 "pwm3", "pwm4", "pwm5";
456 status = "disabled";
457 };
458
459 i2c0: i2c@11007000 {
460 compatible = "mediatek,mt7623-i2c",
461 "mediatek,mt6577-i2c";
462 reg = <0 0x11007000 0 0x70>,
463 <0 0x11000200 0 0x80>;
464 interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_LOW>;
465 clock-div = <16>;
466 clocks = <&pericfg CLK_PERI_I2C0>,
467 <&pericfg CLK_PERI_AP_DMA>;
468 clock-names = "main", "dma";
469 #address-cells = <1>;
470 #size-cells = <0>;
471 status = "disabled";
472 };
473
474 i2c1: i2c@11008000 {
475 compatible = "mediatek,mt7623-i2c",
476 "mediatek,mt6577-i2c";
477 reg = <0 0x11008000 0 0x70>,
478 <0 0x11000280 0 0x80>;
479 interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_LOW>;
480 clock-div = <16>;
481 clocks = <&pericfg CLK_PERI_I2C1>,
482 <&pericfg CLK_PERI_AP_DMA>;
483 clock-names = "main", "dma";
484 #address-cells = <1>;
485 #size-cells = <0>;
486 status = "disabled";
487 };
488
489 i2c2: i2c@11009000 {
490 compatible = "mediatek,mt7623-i2c",
491 "mediatek,mt6577-i2c";
492 reg = <0 0x11009000 0 0x70>,
493 <0 0x11000300 0 0x80>;
494 interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_LOW>;
495 clock-div = <16>;
496 clocks = <&pericfg CLK_PERI_I2C2>,
497 <&pericfg CLK_PERI_AP_DMA>;
498 clock-names = "main", "dma";
499 #address-cells = <1>;
500 #size-cells = <0>;
501 status = "disabled";
502 };
503
504 spi0: spi@1100a000 {
505 compatible = "mediatek,mt7623-spi",
506 "mediatek,mt2701-spi";
507 #address-cells = <1>;
508 #size-cells = <0>;
509 reg = <0 0x1100a000 0 0x100>;
510 interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_LOW>;
511 clocks = <&topckgen CLK_TOP_SYSPLL3_D2>,
512 <&topckgen CLK_TOP_SPI0_SEL>,
513 <&pericfg CLK_PERI_SPI0>;
514 clock-names = "parent-clk", "sel-clk", "spi-clk";
515 status = "disabled";
516 };
517
518 thermal: thermal@1100b000 {
519 #thermal-sensor-cells = <1>;
520 compatible = "mediatek,mt7623-thermal",
521 "mediatek,mt2701-thermal";
522 reg = <0 0x1100b000 0 0x1000>;
523 interrupts = <0 70 IRQ_TYPE_LEVEL_LOW>;
524 clocks = <&pericfg CLK_PERI_THERM>, <&pericfg CLK_PERI_AUXADC>;
525 clock-names = "therm", "auxadc";
526 resets = <&pericfg MT2701_PERI_THERM_SW_RST>;
527 reset-names = "therm";
528 mediatek,auxadc = <&auxadc>;
529 mediatek,apmixedsys = <&apmixedsys>;
530 nvmem-cells = <&thermal_calibration_data>;
531 nvmem-cell-names = "calibration-data";
532 };
533
534 btif: serial@1100c000 {
535 compatible = "mediatek,mt7623-btif",
536 "mediatek,mtk-btif";
537 reg = <0 0x1100c000 0 0x1000>;
538 interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_LOW>;
539 clocks = <&pericfg CLK_PERI_BTIF>;
540 clock-names = "main";
541 reg-shift = <2>;
542 reg-io-width = <4>;
543 status = "disabled";
544 };
545
546 nandc: nfi@1100d000 {
547 compatible = "mediatek,mt7623-nfc",
548 "mediatek,mt2701-nfc";
549 reg = <0 0x1100d000 0 0x1000>;
550 interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_LOW>;
551 power-domains = <&scpsys MT2701_POWER_DOMAIN_IFR_MSC>;
552 clocks = <&pericfg CLK_PERI_NFI>,
553 <&pericfg CLK_PERI_NFI_PAD>;
554 clock-names = "nfi_clk", "pad_clk";
555 status = "disabled";
556 ecc-engine = <&bch>;
557 #address-cells = <1>;
558 #size-cells = <0>;
559 };
560
561 bch: ecc@1100e000 {
562 compatible = "mediatek,mt7623-ecc",
563 "mediatek,mt2701-ecc";
564 reg = <0 0x1100e000 0 0x1000>;
565 interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_LOW>;
566 clocks = <&pericfg CLK_PERI_NFI_ECC>;
567 clock-names = "nfiecc_clk";
568 status = "disabled";
569 };
570
571 nor_flash: spi@11014000 {
572 compatible = "mediatek,mt7623-nor",
573 "mediatek,mt8173-nor";
574 reg = <0 0x11014000 0 0x1000>;
575 clocks = <&pericfg CLK_PERI_FLASH>,
576 <&topckgen CLK_TOP_FLASH_SEL>;
577 clock-names = "spi", "sf";
578 #address-cells = <1>;
579 #size-cells = <0>;
580 status = "disabled";
581 };
582
583 spi1: spi@11016000 {
584 compatible = "mediatek,mt7623-spi",
585 "mediatek,mt2701-spi";
586 #address-cells = <1>;
587 #size-cells = <0>;
588 reg = <0 0x11016000 0 0x100>;
589 interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_LOW>;
590 clocks = <&topckgen CLK_TOP_SYSPLL3_D2>,
591 <&topckgen CLK_TOP_SPI1_SEL>,
592 <&pericfg CLK_PERI_SPI1>;
593 clock-names = "parent-clk", "sel-clk", "spi-clk";
594 status = "disabled";
595 };
596
597 spi2: spi@11017000 {
598 compatible = "mediatek,mt7623-spi",
599 "mediatek,mt2701-spi";
600 #address-cells = <1>;
601 #size-cells = <0>;
602 reg = <0 0x11017000 0 0x1000>;
603 interrupts = <GIC_SPI 142 IRQ_TYPE_LEVEL_LOW>;
604 clocks = <&topckgen CLK_TOP_SYSPLL3_D2>,
605 <&topckgen CLK_TOP_SPI2_SEL>,
606 <&pericfg CLK_PERI_SPI2>;
607 clock-names = "parent-clk", "sel-clk", "spi-clk";
608 status = "disabled";
609 };
610
611 audsys: clock-controller@11220000 {
612 compatible = "mediatek,mt7623-audsys",
613 "mediatek,mt2701-audsys",
614 "syscon";
615 reg = <0 0x11220000 0 0x2000>;
616 #clock-cells = <1>;
617
618 afe: audio-controller {
619 compatible = "mediatek,mt7623-audio",
620 "mediatek,mt2701-audio";
621 interrupts = <GIC_SPI 104 IRQ_TYPE_LEVEL_LOW>,
622 <GIC_SPI 132 IRQ_TYPE_LEVEL_LOW>;
623 interrupt-names = "afe", "asys";
624 power-domains = <&scpsys MT2701_POWER_DOMAIN_IFR_MSC>;
625
626 clocks = <&infracfg CLK_INFRA_AUDIO>,
627 <&topckgen CLK_TOP_AUD_MUX1_SEL>,
628 <&topckgen CLK_TOP_AUD_MUX2_SEL>,
629 <&topckgen CLK_TOP_AUD_48K_TIMING>,
630 <&topckgen CLK_TOP_AUD_44K_TIMING>,
631 <&topckgen CLK_TOP_AUD_K1_SRC_SEL>,
632 <&topckgen CLK_TOP_AUD_K2_SRC_SEL>,
633 <&topckgen CLK_TOP_AUD_K3_SRC_SEL>,
634 <&topckgen CLK_TOP_AUD_K4_SRC_SEL>,
635 <&topckgen CLK_TOP_AUD_K1_SRC_DIV>,
636 <&topckgen CLK_TOP_AUD_K2_SRC_DIV>,
637 <&topckgen CLK_TOP_AUD_K3_SRC_DIV>,
638 <&topckgen CLK_TOP_AUD_K4_SRC_DIV>,
639 <&topckgen CLK_TOP_AUD_I2S1_MCLK>,
640 <&topckgen CLK_TOP_AUD_I2S2_MCLK>,
641 <&topckgen CLK_TOP_AUD_I2S3_MCLK>,
642 <&topckgen CLK_TOP_AUD_I2S4_MCLK>,
643 <&audsys CLK_AUD_I2SO1>,
644 <&audsys CLK_AUD_I2SO2>,
645 <&audsys CLK_AUD_I2SO3>,
646 <&audsys CLK_AUD_I2SO4>,
647 <&audsys CLK_AUD_I2SIN1>,
648 <&audsys CLK_AUD_I2SIN2>,
649 <&audsys CLK_AUD_I2SIN3>,
650 <&audsys CLK_AUD_I2SIN4>,
651 <&audsys CLK_AUD_ASRCO1>,
652 <&audsys CLK_AUD_ASRCO2>,
653 <&audsys CLK_AUD_ASRCO3>,
654 <&audsys CLK_AUD_ASRCO4>,
655 <&audsys CLK_AUD_AFE>,
656 <&audsys CLK_AUD_AFE_CONN>,
657 <&audsys CLK_AUD_A1SYS>,
658 <&audsys CLK_AUD_A2SYS>,
659 <&audsys CLK_AUD_AFE_MRGIF>;
660
661 clock-names = "infra_sys_audio_clk",
662 "top_audio_mux1_sel",
663 "top_audio_mux2_sel",
664 "top_audio_a1sys_hp",
665 "top_audio_a2sys_hp",
666 "i2s0_src_sel",
667 "i2s1_src_sel",
668 "i2s2_src_sel",
669 "i2s3_src_sel",
670 "i2s0_src_div",
671 "i2s1_src_div",
672 "i2s2_src_div",
673 "i2s3_src_div",
674 "i2s0_mclk_en",
675 "i2s1_mclk_en",
676 "i2s2_mclk_en",
677 "i2s3_mclk_en",
678 "i2so0_hop_ck",
679 "i2so1_hop_ck",
680 "i2so2_hop_ck",
681 "i2so3_hop_ck",
682 "i2si0_hop_ck",
683 "i2si1_hop_ck",
684 "i2si2_hop_ck",
685 "i2si3_hop_ck",
686 "asrc0_out_ck",
687 "asrc1_out_ck",
688 "asrc2_out_ck",
689 "asrc3_out_ck",
690 "audio_afe_pd",
691 "audio_afe_conn_pd",
692 "audio_a1sys_pd",
693 "audio_a2sys_pd",
694 "audio_mrgif_pd";
695
696 assigned-clocks = <&topckgen CLK_TOP_AUD_MUX1_SEL>,
697 <&topckgen CLK_TOP_AUD_MUX2_SEL>,
698 <&topckgen CLK_TOP_AUD_MUX1_DIV>,
699 <&topckgen CLK_TOP_AUD_MUX2_DIV>;
700 assigned-clock-parents = <&topckgen CLK_TOP_AUD1PLL_98M>,
701 <&topckgen CLK_TOP_AUD2PLL_90M>;
702 assigned-clock-rates = <0>, <0>, <49152000>, <45158400>;
703 };
704 };
705
706 mmc0: mmc@11230000 {
707 compatible = "mediatek,mt7623-mmc",
708 "mediatek,mt2701-mmc";
709 reg = <0 0x11230000 0 0x1000>;
710 interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_LOW>;
711 clocks = <&pericfg CLK_PERI_MSDC30_0>,
712 <&topckgen CLK_TOP_MSDC30_0_SEL>;
713 clock-names = "source", "hclk";
714 status = "disabled";
715 };
716
717 mmc1: mmc@11240000 {
718 compatible = "mediatek,mt7623-mmc",
719 "mediatek,mt2701-mmc";
720 reg = <0 0x11240000 0 0x1000>;
721 interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_LOW>;
722 clocks = <&pericfg CLK_PERI_MSDC30_1>,
723 <&topckgen CLK_TOP_MSDC30_1_SEL>;
724 clock-names = "source", "hclk";
725 status = "disabled";
726 };
727
728 g3dsys: syscon@13000000 {
729 compatible = "mediatek,mt7623-g3dsys",
730 "mediatek,mt2701-g3dsys",
731 "syscon";
732 reg = <0 0x13000000 0 0x200>;
733 #clock-cells = <1>;
734 #reset-cells = <1>;
735 };
736
737 mali: gpu@13040000 {
738 compatible = "mediatek,mt7623-mali", "arm,mali-450";
739 reg = <0 0x13040000 0 0x30000>;
740 interrupts = <GIC_SPI 170 IRQ_TYPE_LEVEL_LOW>,
741 <GIC_SPI 171 IRQ_TYPE_LEVEL_LOW>,
742 <GIC_SPI 172 IRQ_TYPE_LEVEL_LOW>,
743 <GIC_SPI 173 IRQ_TYPE_LEVEL_LOW>,
744 <GIC_SPI 174 IRQ_TYPE_LEVEL_LOW>,
745 <GIC_SPI 175 IRQ_TYPE_LEVEL_LOW>,
746 <GIC_SPI 176 IRQ_TYPE_LEVEL_LOW>,
747 <GIC_SPI 177 IRQ_TYPE_LEVEL_LOW>,
748 <GIC_SPI 178 IRQ_TYPE_LEVEL_LOW>,
749 <GIC_SPI 179 IRQ_TYPE_LEVEL_LOW>,
750 <GIC_SPI 180 IRQ_TYPE_LEVEL_LOW>;
751 interrupt-names = "gp", "gpmmu", "pp0", "ppmmu0", "pp1",
752 "ppmmu1", "pp2", "ppmmu2", "pp3", "ppmmu3",
753 "pp";
754 clocks = <&topckgen CLK_TOP_MMPLL>,
755 <&g3dsys CLK_G3DSYS_CORE>;
756 clock-names = "bus", "core";
757 power-domains = <&scpsys MT2701_POWER_DOMAIN_MFG>;
758 resets = <&g3dsys MT2701_G3DSYS_CORE_RST>;
759 };
760
761 mmsys: syscon@14000000 {
762 compatible = "mediatek,mt7623-mmsys",
763 "mediatek,mt2701-mmsys",
764 "syscon";
765 reg = <0 0x14000000 0 0x1000>;
766 #clock-cells = <1>;
767 };
768
769 larb0: larb@14010000 {
770 compatible = "mediatek,mt7623-smi-larb",
771 "mediatek,mt2701-smi-larb";
772 reg = <0 0x14010000 0 0x1000>;
773 mediatek,smi = <&smi_common>;
774 mediatek,larb-id = <0>;
775 clocks = <&mmsys CLK_MM_SMI_LARB0>,
776 <&mmsys CLK_MM_SMI_LARB0>;
777 clock-names = "apb", "smi";
778 power-domains = <&scpsys MT2701_POWER_DOMAIN_DISP>;
779 };
780
781 imgsys: syscon@15000000 {
782 compatible = "mediatek,mt7623-imgsys",
783 "mediatek,mt2701-imgsys",
784 "syscon";
785 reg = <0 0x15000000 0 0x1000>;
786 #clock-cells = <1>;
787 };
788
789 larb2: larb@15001000 {
790 compatible = "mediatek,mt7623-smi-larb",
791 "mediatek,mt2701-smi-larb";
792 reg = <0 0x15001000 0 0x1000>;
793 mediatek,smi = <&smi_common>;
794 mediatek,larb-id = <2>;
795 clocks = <&imgsys CLK_IMG_SMI_COMM>,
796 <&imgsys CLK_IMG_SMI_COMM>;
797 clock-names = "apb", "smi";
798 power-domains = <&scpsys MT2701_POWER_DOMAIN_ISP>;
799 };
800
801 jpegdec: jpegdec@15004000 {
802 compatible = "mediatek,mt7623-jpgdec",
803 "mediatek,mt2701-jpgdec";
804 reg = <0 0x15004000 0 0x1000>;
805 interrupts = <GIC_SPI 143 IRQ_TYPE_LEVEL_LOW>;
806 clocks = <&imgsys CLK_IMG_JPGDEC_SMI>,
807 <&imgsys CLK_IMG_JPGDEC>;
808 clock-names = "jpgdec-smi",
809 "jpgdec";
810 power-domains = <&scpsys MT2701_POWER_DOMAIN_ISP>;
811 mediatek,larb = <&larb2>;
812 iommus = <&iommu MT2701_M4U_PORT_JPGDEC_WDMA>,
813 <&iommu MT2701_M4U_PORT_JPGDEC_BSDMA>;
814 };
815
816 vdecsys: syscon@16000000 {
817 compatible = "mediatek,mt7623-vdecsys",
818 "mediatek,mt2701-vdecsys",
819 "syscon";
820 reg = <0 0x16000000 0 0x1000>;
821 #clock-cells = <1>;
822 };
823
824 larb1: larb@16010000 {
825 compatible = "mediatek,mt7623-smi-larb",
826 "mediatek,mt2701-smi-larb";
827 reg = <0 0x16010000 0 0x1000>;
828 mediatek,smi = <&smi_common>;
829 mediatek,larb-id = <1>;
830 clocks = <&vdecsys CLK_VDEC_CKGEN>,
831 <&vdecsys CLK_VDEC_LARB>;
832 clock-names = "apb", "smi";
833 power-domains = <&scpsys MT2701_POWER_DOMAIN_VDEC>;
834 };
835
836 hifsys: syscon@1a000000 {
837 compatible = "mediatek,mt7623-hifsys",
838 "mediatek,mt2701-hifsys",
839 "syscon";
840 reg = <0 0x1a000000 0 0x1000>;
841 #clock-cells = <1>;
842 #reset-cells = <1>;
843 };
844
845 pcie: pcie@1a140000 {
846 compatible = "mediatek,mt7623-pcie";
847 device_type = "pci";
848 reg = <0 0x1a140000 0 0x1000>, /* PCIe shared registers */
849 <0 0x1a142000 0 0x1000>, /* Port0 registers */
850 <0 0x1a143000 0 0x1000>, /* Port1 registers */
851 <0 0x1a144000 0 0x1000>; /* Port2 registers */
852 reg-names = "subsys", "port0", "port1", "port2";
853 #address-cells = <3>;
854 #size-cells = <2>;
855 #interrupt-cells = <1>;
856 interrupt-map-mask = <0xf800 0 0 0>;
857 interrupt-map = <0x0000 0 0 0 &sysirq GIC_SPI 193 IRQ_TYPE_LEVEL_LOW>,
858 <0x0800 0 0 0 &sysirq GIC_SPI 194 IRQ_TYPE_LEVEL_LOW>,
859 <0x1000 0 0 0 &sysirq GIC_SPI 195 IRQ_TYPE_LEVEL_LOW>;
860 clocks = <&topckgen CLK_TOP_ETHIF_SEL>,
861 <&hifsys CLK_HIFSYS_PCIE0>,
862 <&hifsys CLK_HIFSYS_PCIE1>,
863 <&hifsys CLK_HIFSYS_PCIE2>;
864 clock-names = "free_ck", "sys_ck0", "sys_ck1", "sys_ck2";
865 resets = <&hifsys MT2701_HIFSYS_PCIE0_RST>,
866 <&hifsys MT2701_HIFSYS_PCIE1_RST>,
867 <&hifsys MT2701_HIFSYS_PCIE2_RST>;
868 reset-names = "pcie-rst0", "pcie-rst1", "pcie-rst2";
869 phys = <&pcie0_port PHY_TYPE_PCIE>,
870 <&pcie1_port PHY_TYPE_PCIE>,
871 <&u3port1 PHY_TYPE_PCIE>;
872 phy-names = "pcie-phy0", "pcie-phy1", "pcie-phy2";
873 power-domains = <&scpsys MT2701_POWER_DOMAIN_HIF>;
874 bus-range = <0x00 0xff>;
875 status = "disabled";
876 ranges = <0x81000000 0 0x1a160000 0 0x1a160000 0 0x00010000
877 0x83000000 0 0x60000000 0 0x60000000 0 0x10000000>;
878
879 pcie@0,0 {
880 reg = <0x0000 0 0 0 0>;
881 #address-cells = <3>;
882 #size-cells = <2>;
883 #interrupt-cells = <1>;
884 interrupt-map-mask = <0 0 0 0>;
885 interrupt-map = <0 0 0 0 &sysirq GIC_SPI 193 IRQ_TYPE_LEVEL_LOW>;
886 ranges;
887 status = "disabled";
888 };
889
890 pcie@1,0 {
891 reg = <0x0800 0 0 0 0>;
892 #address-cells = <3>;
893 #size-cells = <2>;
894 #interrupt-cells = <1>;
895 interrupt-map-mask = <0 0 0 0>;
896 interrupt-map = <0 0 0 0 &sysirq GIC_SPI 194 IRQ_TYPE_LEVEL_LOW>;
897 ranges;
898 status = "disabled";
899 };
900
901 pcie@2,0 {
902 reg = <0x1000 0 0 0 0>;
903 #address-cells = <3>;
904 #size-cells = <2>;
905 #interrupt-cells = <1>;
906 interrupt-map-mask = <0 0 0 0>;
907 interrupt-map = <0 0 0 0 &sysirq GIC_SPI 195 IRQ_TYPE_LEVEL_LOW>;
908 ranges;
909 status = "disabled";
910 };
911 };
912
913 pcie0_phy: pcie-phy@1a149000 {
914 compatible = "mediatek,generic-tphy-v1";
915 reg = <0 0x1a149000 0 0x0700>;
916 #address-cells = <2>;
917 #size-cells = <2>;
918 ranges;
919 status = "disabled";
920
921 pcie0_port: pcie-phy@1a149900 {
922 reg = <0 0x1a149900 0 0x0700>;
923 clocks = <&clk26m>;
924 clock-names = "ref";
925 #phy-cells = <1>;
926 status = "okay";
927 };
928 };
929
930 pcie1_phy: pcie-phy@1a14a000 {
931 compatible = "mediatek,generic-tphy-v1";
932 reg = <0 0x1a14a000 0 0x0700>;
933 #address-cells = <2>;
934 #size-cells = <2>;
935 ranges;
936 status = "disabled";
937
938 pcie1_port: pcie-phy@1a14a900 {
939 reg = <0 0x1a14a900 0 0x0700>;
940 clocks = <&clk26m>;
941 clock-names = "ref";
942 #phy-cells = <1>;
943 status = "okay";
944 };
945 };
946
947 usb1: usb@1a1c0000 {
948 compatible = "mediatek,mt7623-xhci",
949 "mediatek,mt8173-xhci";
950 reg = <0 0x1a1c0000 0 0x1000>,
951 <0 0x1a1c4700 0 0x0100>;
952 reg-names = "mac", "ippc";
953 interrupts = <GIC_SPI 196 IRQ_TYPE_LEVEL_LOW>;
954 clocks = <&hifsys CLK_HIFSYS_USB0PHY>,
955 <&topckgen CLK_TOP_ETHIF_SEL>;
956 clock-names = "sys_ck", "ref_ck";
957 power-domains = <&scpsys MT2701_POWER_DOMAIN_HIF>;
958 phys = <&u2port0 PHY_TYPE_USB2>, <&u3port0 PHY_TYPE_USB3>;
959 status = "disabled";
960 };
961
962 u3phy1: usb-phy@1a1c4000 {
963 compatible = "mediatek,mt7623-u3phy",
964 "mediatek,mt2701-u3phy";
965 reg = <0 0x1a1c4000 0 0x0700>;
966 #address-cells = <2>;
967 #size-cells = <2>;
968 ranges;
969 status = "disabled";
970
971 u2port0: usb-phy@1a1c4800 {
972 reg = <0 0x1a1c4800 0 0x0100>;
973 clocks = <&topckgen CLK_TOP_USB_PHY48M>;
974 clock-names = "ref";
975 #phy-cells = <1>;
976 status = "okay";
977 };
978
979 u3port0: usb-phy@1a1c4900 {
980 reg = <0 0x1a1c4900 0 0x0700>;
981 clocks = <&clk26m>;
982 clock-names = "ref";
983 #phy-cells = <1>;
984 status = "okay";
985 };
986 };
987
988 usb2: usb@1a240000 {
989 compatible = "mediatek,mt7623-xhci",
990 "mediatek,mt8173-xhci";
991 reg = <0 0x1a240000 0 0x1000>,
992 <0 0x1a244700 0 0x0100>;
993 reg-names = "mac", "ippc";
994 interrupts = <GIC_SPI 197 IRQ_TYPE_LEVEL_LOW>;
995 clocks = <&hifsys CLK_HIFSYS_USB1PHY>,
996 <&topckgen CLK_TOP_ETHIF_SEL>;
997 clock-names = "sys_ck", "ref_ck";
998 power-domains = <&scpsys MT2701_POWER_DOMAIN_HIF>;
999 phys = <&u2port1 PHY_TYPE_USB2>, <&u3port1 PHY_TYPE_USB3>;
1000 status = "disabled";
1001 };
1002
1003 u3phy2: usb-phy@1a244000 {
1004 compatible = "mediatek,mt7623-u3phy",
1005 "mediatek,mt2701-u3phy";
1006 reg = <0 0x1a244000 0 0x0700>;
1007 #address-cells = <2>;
1008 #size-cells = <2>;
1009 ranges;
1010 status = "disabled";
1011
1012 u2port1: usb-phy@1a244800 {
1013 reg = <0 0x1a244800 0 0x0100>;
1014 clocks = <&topckgen CLK_TOP_USB_PHY48M>;
1015 clock-names = "ref";
1016 #phy-cells = <1>;
1017 status = "okay";
1018 };
1019
1020 u3port1: usb-phy@1a244900 {
1021 reg = <0 0x1a244900 0 0x0700>;
1022 clocks = <&clk26m>;
1023 clock-names = "ref";
1024 #phy-cells = <1>;
1025 status = "okay";
1026 };
1027 };
1028
1029 ethsys: syscon@1b000000 {
1030 compatible = "mediatek,mt7623-ethsys",
1031 "mediatek,mt2701-ethsys",
1032 "syscon";
1033 reg = <0 0x1b000000 0 0x1000>;
1034 #clock-cells = <1>;
1035 #reset-cells = <1>;
1036 };
1037
1038 hsdma: dma-controller@1b007000 {
1039 compatible = "mediatek,mt7623-hsdma";
1040 reg = <0 0x1b007000 0 0x1000>;
1041 interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_LOW>;
1042 clocks = <ðsys CLK_ETHSYS_HSDMA>;
1043 clock-names = "hsdma";
1044 power-domains = <&scpsys MT2701_POWER_DOMAIN_ETH>;
1045 #dma-cells = <1>;
1046 };
1047
1048 eth: ethernet@1b100000 {
1049 compatible = "mediatek,mt7623-eth",
1050 "mediatek,mt2701-eth",
1051 "syscon";
1052 reg = <0 0x1b100000 0 0x20000>;
1053 interrupts = <GIC_SPI 200 IRQ_TYPE_LEVEL_LOW>,
1054 <GIC_SPI 199 IRQ_TYPE_LEVEL_LOW>,
1055 <GIC_SPI 198 IRQ_TYPE_LEVEL_LOW>;
1056 clocks = <&topckgen CLK_TOP_ETHIF_SEL>,
1057 <ðsys CLK_ETHSYS_ESW>,
1058 <ðsys CLK_ETHSYS_GP1>,
1059 <ðsys CLK_ETHSYS_GP2>,
1060 <&apmixedsys CLK_APMIXED_TRGPLL>;
1061 clock-names = "ethif", "esw", "gp1", "gp2", "trgpll";
1062 resets = <ðsys MT2701_ETHSYS_FE_RST>,
1063 <ðsys MT2701_ETHSYS_GMAC_RST>,
1064 <ðsys MT2701_ETHSYS_PPE_RST>;
1065 reset-names = "fe", "gmac", "ppe";
1066 power-domains = <&scpsys MT2701_POWER_DOMAIN_ETH>;
1067 mediatek,ethsys = <ðsys>;
1068 mediatek,pctl = <&syscfg_pctl_a>;
1069 #address-cells = <1>;
1070 #size-cells = <0>;
1071 status = "disabled";
1072 };
1073
1074 crypto: crypto@1b240000 {
1075 compatible = "mediatek,eip97-crypto";
1076 reg = <0 0x1b240000 0 0x20000>;
1077 interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_LOW>,
1078 <GIC_SPI 83 IRQ_TYPE_LEVEL_LOW>,
1079 <GIC_SPI 84 IRQ_TYPE_LEVEL_LOW>,
1080 <GIC_SPI 91 IRQ_TYPE_LEVEL_LOW>,
1081 <GIC_SPI 97 IRQ_TYPE_LEVEL_LOW>;
1082 clocks = <ðsys CLK_ETHSYS_CRYPTO>;
1083 clock-names = "cryp";
1084 power-domains = <&scpsys MT2701_POWER_DOMAIN_ETH>;
1085 status = "disabled";
1086 };
1087
1088 bdpsys: syscon@1c000000 {
1089 compatible = "mediatek,mt7623-bdpsys",
1090 "mediatek,mt2701-bdpsys",
1091 "syscon";
1092 reg = <0 0x1c000000 0 0x1000>;
1093 #clock-cells = <1>;
1094 };
1095};
1096
1097&pio {
1098 cir_pins_a:cir-default {
1099 pins-cir {
1100 pinmux = <MT7623_PIN_46_IR_FUNC_IR>;
1101 bias-disable;
1102 };
1103 };
1104
1105 i2c0_pins_a: i2c0-default {
1106 pins-i2c0 {
1107 pinmux = <MT7623_PIN_75_SDA0_FUNC_SDA0>,
1108 <MT7623_PIN_76_SCL0_FUNC_SCL0>;
1109 bias-disable;
1110 };
1111 };
1112
1113 i2c1_pins_a: i2c1-default {
1114 pin-i2c1 {
1115 pinmux = <MT7623_PIN_57_SDA1_FUNC_SDA1>,
1116 <MT7623_PIN_58_SCL1_FUNC_SCL1>;
1117 bias-disable;
1118 };
1119 };
1120
1121 i2c1_pins_b: i2c1-alt {
1122 pin-i2c1 {
1123 pinmux = <MT7623_PIN_242_URTS2_FUNC_SCL1>,
1124 <MT7623_PIN_243_UCTS2_FUNC_SDA1>;
1125 bias-disable;
1126 };
1127 };
1128
1129 i2c2_pins_a: i2c2-default {
1130 pin-i2c2 {
1131 pinmux = <MT7623_PIN_77_SDA2_FUNC_SDA2>,
1132 <MT7623_PIN_78_SCL2_FUNC_SCL2>;
1133 bias-disable;
1134 };
1135 };
1136
1137 i2c2_pins_b: i2c2-alt {
1138 pin-i2c2 {
1139 pinmux = <MT7623_PIN_122_GPIO122_FUNC_SDA2>,
1140 <MT7623_PIN_123_HTPLG_FUNC_SCL2>;
1141 bias-disable;
1142 };
1143 };
1144
1145 i2s0_pins_a: i2s0-default {
1146 pin-i2s0 {
1147 pinmux = <MT7623_PIN_49_I2S0_DATA_FUNC_I2S0_DATA>,
1148 <MT7623_PIN_72_I2S0_DATA_IN_FUNC_I2S0_DATA_IN>,
1149 <MT7623_PIN_73_I2S0_LRCK_FUNC_I2S0_LRCK>,
1150 <MT7623_PIN_74_I2S0_BCK_FUNC_I2S0_BCK>,
1151 <MT7623_PIN_126_I2S0_MCLK_FUNC_I2S0_MCLK>;
1152 drive-strength = <MTK_DRIVE_12mA>;
1153 bias-pull-down;
1154 };
1155 };
1156
1157 i2s1_pins_a: i2s1-default {
1158 pin-i2s1 {
1159 pinmux = <MT7623_PIN_33_I2S1_DATA_FUNC_I2S1_DATA>,
1160 <MT7623_PIN_34_I2S1_DATA_IN_FUNC_I2S1_DATA_IN>,
1161 <MT7623_PIN_35_I2S1_BCK_FUNC_I2S1_BCK>,
1162 <MT7623_PIN_36_I2S1_LRCK_FUNC_I2S1_LRCK>,
1163 <MT7623_PIN_37_I2S1_MCLK_FUNC_I2S1_MCLK>;
1164 drive-strength = <MTK_DRIVE_12mA>;
1165 bias-pull-down;
1166 };
1167 };
1168
1169 key_pins_a: keys-alt {
1170 pins-keys {
1171 pinmux = <MT7623_PIN_256_GPIO256_FUNC_GPIO256>,
1172 <MT7623_PIN_257_GPIO257_FUNC_GPIO257> ;
1173 input-enable;
1174 };
1175 };
1176
1177 led_pins_a: leds-alt {
1178 pins-leds {
1179 pinmux = <MT7623_PIN_239_EXT_SDIO0_FUNC_GPIO239>,
1180 <MT7623_PIN_240_EXT_XCS_FUNC_GPIO240>,
1181 <MT7623_PIN_241_EXT_SCK_FUNC_GPIO241>;
1182 };
1183 };
1184
1185 mmc0_pins_default: mmc0default {
1186 pins-cmd-dat {
1187 pinmux = <MT7623_PIN_111_MSDC0_DAT7_FUNC_MSDC0_DAT7>,
1188 <MT7623_PIN_112_MSDC0_DAT6_FUNC_MSDC0_DAT6>,
1189 <MT7623_PIN_113_MSDC0_DAT5_FUNC_MSDC0_DAT5>,
1190 <MT7623_PIN_114_MSDC0_DAT4_FUNC_MSDC0_DAT4>,
1191 <MT7623_PIN_118_MSDC0_DAT3_FUNC_MSDC0_DAT3>,
1192 <MT7623_PIN_119_MSDC0_DAT2_FUNC_MSDC0_DAT2>,
1193 <MT7623_PIN_120_MSDC0_DAT1_FUNC_MSDC0_DAT1>,
1194 <MT7623_PIN_121_MSDC0_DAT0_FUNC_MSDC0_DAT0>,
1195 <MT7623_PIN_116_MSDC0_CMD_FUNC_MSDC0_CMD>;
1196 input-enable;
1197 bias-pull-up;
1198 };
1199
1200 pins-clk {
1201 pinmux = <MT7623_PIN_117_MSDC0_CLK_FUNC_MSDC0_CLK>;
1202 bias-pull-down;
1203 };
1204
1205 pins-rst {
1206 pinmux = <MT7623_PIN_115_MSDC0_RSTB_FUNC_MSDC0_RSTB>;
1207 bias-pull-up;
1208 };
1209 };
1210
1211 mmc0_pins_uhs: mmc0 {
1212 pins-cmd-dat {
1213 pinmux = <MT7623_PIN_111_MSDC0_DAT7_FUNC_MSDC0_DAT7>,
1214 <MT7623_PIN_112_MSDC0_DAT6_FUNC_MSDC0_DAT6>,
1215 <MT7623_PIN_113_MSDC0_DAT5_FUNC_MSDC0_DAT5>,
1216 <MT7623_PIN_114_MSDC0_DAT4_FUNC_MSDC0_DAT4>,
1217 <MT7623_PIN_118_MSDC0_DAT3_FUNC_MSDC0_DAT3>,
1218 <MT7623_PIN_119_MSDC0_DAT2_FUNC_MSDC0_DAT2>,
1219 <MT7623_PIN_120_MSDC0_DAT1_FUNC_MSDC0_DAT1>,
1220 <MT7623_PIN_121_MSDC0_DAT0_FUNC_MSDC0_DAT0>,
1221 <MT7623_PIN_116_MSDC0_CMD_FUNC_MSDC0_CMD>;
1222 input-enable;
1223 drive-strength = <MTK_DRIVE_2mA>;
1224 bias-pull-up = <MTK_PUPD_SET_R1R0_01>;
1225 };
1226
1227 pins-clk {
1228 pinmux = <MT7623_PIN_117_MSDC0_CLK_FUNC_MSDC0_CLK>;
1229 drive-strength = <MTK_DRIVE_2mA>;
1230 bias-pull-down = <MTK_PUPD_SET_R1R0_01>;
1231 };
1232
1233 pins-rst {
1234 pinmux = <MT7623_PIN_115_MSDC0_RSTB_FUNC_MSDC0_RSTB>;
1235 bias-pull-up;
1236 };
1237 };
1238
1239 mmc1_pins_default: mmc1default {
1240 pins-cmd-dat {
1241 pinmux = <MT7623_PIN_107_MSDC1_DAT0_FUNC_MSDC1_DAT0>,
1242 <MT7623_PIN_108_MSDC1_DAT1_FUNC_MSDC1_DAT1>,
1243 <MT7623_PIN_109_MSDC1_DAT2_FUNC_MSDC1_DAT2>,
1244 <MT7623_PIN_110_MSDC1_DAT3_FUNC_MSDC1_DAT3>,
1245 <MT7623_PIN_105_MSDC1_CMD_FUNC_MSDC1_CMD>;
1246 input-enable;
1247 drive-strength = <MTK_DRIVE_4mA>;
1248 bias-pull-up = <MTK_PUPD_SET_R1R0_10>;
1249 };
1250
1251 pins-clk {
1252 pinmux = <MT7623_PIN_106_MSDC1_CLK_FUNC_MSDC1_CLK>;
1253 bias-pull-down;
1254 drive-strength = <MTK_DRIVE_4mA>;
1255 };
1256
1257 pins-wp {
1258 pinmux = <MT7623_PIN_29_EINT7_FUNC_MSDC1_WP>;
1259 input-enable;
1260 bias-pull-up;
1261 };
1262
1263 pins-insert {
1264 pinmux = <MT7623_PIN_261_MSDC1_INS_FUNC_GPIO261>;
1265 bias-pull-up;
1266 };
1267 };
1268
1269 mmc1_pins_uhs: mmc1 {
1270 pins-cmd-dat {
1271 pinmux = <MT7623_PIN_107_MSDC1_DAT0_FUNC_MSDC1_DAT0>,
1272 <MT7623_PIN_108_MSDC1_DAT1_FUNC_MSDC1_DAT1>,
1273 <MT7623_PIN_109_MSDC1_DAT2_FUNC_MSDC1_DAT2>,
1274 <MT7623_PIN_110_MSDC1_DAT3_FUNC_MSDC1_DAT3>,
1275 <MT7623_PIN_105_MSDC1_CMD_FUNC_MSDC1_CMD>;
1276 input-enable;
1277 drive-strength = <MTK_DRIVE_4mA>;
1278 bias-pull-up = <MTK_PUPD_SET_R1R0_10>;
1279 };
1280
1281 pins-clk {
1282 pinmux = <MT7623_PIN_106_MSDC1_CLK_FUNC_MSDC1_CLK>;
1283 drive-strength = <MTK_DRIVE_4mA>;
1284 bias-pull-down = <MTK_PUPD_SET_R1R0_10>;
1285 };
1286 };
1287
1288 nand_pins_default: nanddefault {
1289 pins-ale {
1290 pinmux = <MT7623_PIN_116_MSDC0_CMD_FUNC_NALE>;
1291 drive-strength = <MTK_DRIVE_8mA>;
1292 bias-pull-down = <MTK_PUPD_SET_R1R0_10>;
1293 };
1294
1295 pins-dat {
1296 pinmux = <MT7623_PIN_111_MSDC0_DAT7_FUNC_NLD7>,
1297 <MT7623_PIN_112_MSDC0_DAT6_FUNC_NLD6>,
1298 <MT7623_PIN_114_MSDC0_DAT4_FUNC_NLD4>,
1299 <MT7623_PIN_118_MSDC0_DAT3_FUNC_NLD3>,
1300 <MT7623_PIN_121_MSDC0_DAT0_FUNC_NLD0>,
1301 <MT7623_PIN_120_MSDC0_DAT1_FUNC_NLD1>,
1302 <MT7623_PIN_113_MSDC0_DAT5_FUNC_NLD5>,
1303 <MT7623_PIN_115_MSDC0_RSTB_FUNC_NLD8>,
1304 <MT7623_PIN_119_MSDC0_DAT2_FUNC_NLD2>;
1305 input-enable;
1306 drive-strength = <MTK_DRIVE_8mA>;
1307 bias-pull-up;
1308 };
1309
1310 pins-we {
1311 pinmux = <MT7623_PIN_117_MSDC0_CLK_FUNC_NWEB>;
1312 drive-strength = <MTK_DRIVE_8mA>;
1313 bias-pull-up = <MTK_PUPD_SET_R1R0_10>;
1314 };
1315 };
1316
1317 pcie_default: pcie_pin_default {
1318 pins_cmd_dat {
1319 pinmux = <MT7623_PIN_208_AUD_EXT_CK1_FUNC_PCIE0_PERST_N>,
1320 <MT7623_PIN_209_AUD_EXT_CK2_FUNC_PCIE1_PERST_N>;
1321 bias-disable;
1322 };
1323 };
1324
1325 pwm_pins_a: pwm-default {
1326 pins-pwm {
1327 pinmux = <MT7623_PIN_203_PWM0_FUNC_PWM0>,
1328 <MT7623_PIN_204_PWM1_FUNC_PWM1>,
1329 <MT7623_PIN_205_PWM2_FUNC_PWM2>,
1330 <MT7623_PIN_206_PWM3_FUNC_PWM3>,
1331 <MT7623_PIN_207_PWM4_FUNC_PWM4>;
1332 };
1333 };
1334
1335 spi0_pins_a: spi0-default {
1336 pins-spi {
1337 pinmux = <MT7623_PIN_53_SPI0_CSN_FUNC_SPI0_CS>,
1338 <MT7623_PIN_54_SPI0_CK_FUNC_SPI0_CK>,
1339 <MT7623_PIN_55_SPI0_MI_FUNC_SPI0_MI>,
1340 <MT7623_PIN_56_SPI0_MO_FUNC_SPI0_MO>;
1341 bias-disable;
1342 };
1343 };
1344
1345 spi1_pins_a: spi1-default {
1346 pins-spi {
1347 pinmux = <MT7623_PIN_7_SPI1_CSN_FUNC_SPI1_CS>,
1348 <MT7623_PIN_199_SPI1_CK_FUNC_SPI1_CK>,
1349 <MT7623_PIN_8_SPI1_MI_FUNC_SPI1_MI>,
1350 <MT7623_PIN_9_SPI1_MO_FUNC_SPI1_MO>;
1351 };
1352 };
1353
1354 spi2_pins_a: spi2-default {
1355 pins-spi {
1356 pinmux = <MT7623_PIN_101_SPI2_CSN_FUNC_SPI2_CS>,
1357 <MT7623_PIN_104_SPI2_CK_FUNC_SPI2_CK>,
1358 <MT7623_PIN_102_SPI2_MI_FUNC_SPI2_MI>,
1359 <MT7623_PIN_103_SPI2_MO_FUNC_SPI2_MO>;
1360 };
1361 };
1362
1363 uart0_pins_a: uart0-default {
1364 pins-dat {
1365 pinmux = <MT7623_PIN_79_URXD0_FUNC_URXD0>,
1366 <MT7623_PIN_80_UTXD0_FUNC_UTXD0>;
1367 };
1368 };
1369
1370 uart1_pins_a: uart1-default {
1371 pins-dat {
1372 pinmux = <MT7623_PIN_81_URXD1_FUNC_URXD1>,
1373 <MT7623_PIN_82_UTXD1_FUNC_UTXD1>;
1374 };
1375 };
1376
1377 uart2_pins_a: uart2-default {
1378 pins-dat {
1379 pinmux = <MT7623_PIN_14_GPIO14_FUNC_URXD2>,
1380 <MT7623_PIN_15_GPIO15_FUNC_UTXD2>;
1381 };
1382 };
1383
1384 uart2_pins_b: uart2-alt {
1385 pins-dat {
1386 pinmux = <MT7623_PIN_200_URXD2_FUNC_URXD2>,
1387 <MT7623_PIN_201_UTXD2_FUNC_UTXD2>;
1388 };
1389 };
1390};