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