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