GNU Linux-libre 4.14.266-gnu1
[releases.git] / arch / arm / boot / dts / mt7623.dtsi
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
26 / {
27         compatible = "mediatek,mt7623";
28         interrupt-parent = <&sysirq>;
29         #address-cells = <2>;
30         #size-cells = <2>;
31
32         cpu_opp_table: opp_table {
33                 compatible = "operating-points-v2";
34                 opp-shared;
35
36                 opp-98000000 {
37                         opp-hz = /bits/ 64 <98000000>;
38                         opp-microvolt = <1050000>;
39                 };
40
41                 opp-198000000 {
42                         opp-hz = /bits/ 64 <198000000>;
43                         opp-microvolt = <1050000>;
44                 };
45
46                 opp-398000000 {
47                         opp-hz = /bits/ 64 <398000000>;
48                         opp-microvolt = <1050000>;
49                 };
50
51                 opp-598000000 {
52                         opp-hz = /bits/ 64 <598000000>;
53                         opp-microvolt = <1050000>;
54                 };
55
56                 opp-747500000 {
57                         opp-hz = /bits/ 64 <747500000>;
58                         opp-microvolt = <1050000>;
59                 };
60
61                 opp-1040000000 {
62                         opp-hz = /bits/ 64 <1040000000>;
63                         opp-microvolt = <1150000>;
64                 };
65
66                 opp-1196000000 {
67                         opp-hz = /bits/ 64 <1196000000>;
68                         opp-microvolt = <1200000>;
69                 };
70
71                 opp-1300000000 {
72                         opp-hz = /bits/ 64 <1300000000>;
73                         opp-microvolt = <1300000>;
74                 };
75         };
76
77         cpus {
78                 #address-cells = <1>;
79                 #size-cells = <0>;
80                 enable-method = "mediatek,mt6589-smp";
81
82                 cpu0: cpu@0 {
83                         device_type = "cpu";
84                         compatible = "arm,cortex-a7";
85                         reg = <0x0>;
86                         clocks = <&infracfg CLK_INFRA_CPUSEL>,
87                                  <&apmixedsys CLK_APMIXED_MAINPLL>;
88                         clock-names = "cpu", "intermediate";
89                         operating-points-v2 = <&cpu_opp_table>;
90                         #cooling-cells = <2>;
91                         cooling-min-level = <0>;
92                         cooling-max-level = <7>;
93                         clock-frequency = <1300000000>;
94                 };
95
96                 cpu1: cpu@1 {
97                         device_type = "cpu";
98                         compatible = "arm,cortex-a7";
99                         reg = <0x1>;
100                         operating-points-v2 = <&cpu_opp_table>;
101                         #cooling-cells = <2>;
102                         clock-frequency = <1300000000>;
103                 };
104
105                 cpu2: cpu@2 {
106                         device_type = "cpu";
107                         compatible = "arm,cortex-a7";
108                         reg = <0x2>;
109                         operating-points-v2 = <&cpu_opp_table>;
110                         #cooling-cells = <2>;
111                         clock-frequency = <1300000000>;
112                 };
113
114                 cpu3: cpu@3 {
115                         device_type = "cpu";
116                         compatible = "arm,cortex-a7";
117                         reg = <0x3>;
118                         operating-points-v2 = <&cpu_opp_table>;
119                         #cooling-cells = <2>;
120                         clock-frequency = <1300000000>;
121                 };
122         };
123
124         system_clk: dummy13m {
125                 compatible = "fixed-clock";
126                 clock-frequency = <13000000>;
127                 #clock-cells = <0>;
128         };
129
130         rtc32k: oscillator@1 {
131                 compatible = "fixed-clock";
132                 #clock-cells = <0>;
133                 clock-frequency = <32000>;
134                 clock-output-names = "rtc32k";
135         };
136
137         clk26m: oscillator@0 {
138                 compatible = "fixed-clock";
139                 #clock-cells = <0>;
140                 clock-frequency = <26000000>;
141                 clock-output-names = "clk26m";
142         };
143
144         thermal-zones {
145                         cpu_thermal: cpu_thermal {
146                                 polling-delay-passive = <1000>;
147                                 polling-delay = <1000>;
148
149                                 thermal-sensors = <&thermal 0>;
150
151                                 trips {
152                                         cpu_passive: cpu_passive {
153                                                 temperature = <47000>;
154                                                 hysteresis = <2000>;
155                                                 type = "passive";
156                                         };
157
158                                         cpu_active: cpu_active {
159                                                 temperature = <67000>;
160                                                 hysteresis = <2000>;
161                                                 type = "active";
162                                         };
163
164                                         cpu_hot: cpu_hot {
165                                                 temperature = <87000>;
166                                                 hysteresis = <2000>;
167                                                 type = "hot";
168                                         };
169
170                                         cpu_crit {
171                                                 temperature = <107000>;
172                                                 hysteresis = <2000>;
173                                                 type = "critical";
174                                         };
175                                 };
176
177                         cooling-maps {
178                                 map0 {
179                                         trip = <&cpu_passive>;
180                                         cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
181                                 };
182
183                                 map1 {
184                                         trip = <&cpu_active>;
185                                         cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
186                                 };
187
188                                 map2 {
189                                         trip = <&cpu_hot>;
190                                         cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
191                                 };
192                         };
193                 };
194         };
195
196         timer {
197                 compatible = "arm,armv7-timer";
198                 interrupt-parent = <&gic>;
199                 interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
200                              <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
201                              <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
202                              <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
203                 clock-frequency = <13000000>;
204                 arm,cpu-registers-not-fw-configured;
205         };
206
207         topckgen: syscon@10000000 {
208                 compatible = "mediatek,mt7623-topckgen",
209                              "mediatek,mt2701-topckgen",
210                              "syscon";
211                 reg = <0 0x10000000 0 0x1000>;
212                 #clock-cells = <1>;
213         };
214
215         infracfg: syscon@10001000 {
216                 compatible = "mediatek,mt7623-infracfg",
217                              "mediatek,mt2701-infracfg",
218                              "syscon";
219                 reg = <0 0x10001000 0 0x1000>;
220                 #clock-cells = <1>;
221                 #reset-cells = <1>;
222         };
223
224         pericfg: syscon@10003000 {
225                 compatible =  "mediatek,mt7623-pericfg",
226                               "mediatek,mt2701-pericfg",
227                               "syscon";
228                 reg = <0 0x10003000 0 0x1000>;
229                 #clock-cells = <1>;
230                 #reset-cells = <1>;
231         };
232
233         pio: pinctrl@10005000 {
234                 compatible = "mediatek,mt7623-pinctrl",
235                              "mediatek,mt2701-pinctrl";
236                 reg = <0 0x1000b000 0 0x1000>;
237                 mediatek,pctl-regmap = <&syscfg_pctl_a>;
238                 pins-are-numbered;
239                 gpio-controller;
240                 #gpio-cells = <2>;
241                 interrupt-controller;
242                 interrupt-parent = <&gic>;
243                 #interrupt-cells = <2>;
244                 interrupts = <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>,
245                              <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>;
246         };
247
248         syscfg_pctl_a: syscfg@10005000 {
249                 compatible = "mediatek,mt7623-pctl-a-syscfg", "syscon";
250                 reg = <0 0x10005000 0 0x1000>;
251         };
252
253         scpsys: scpsys@10006000 {
254                 compatible = "mediatek,mt7623-scpsys",
255                              "mediatek,mt2701-scpsys",
256                              "syscon";
257                 #power-domain-cells = <1>;
258                 reg = <0 0x10006000 0 0x1000>;
259                 infracfg = <&infracfg>;
260                 clocks = <&topckgen CLK_TOP_MM_SEL>,
261                          <&topckgen CLK_TOP_MFG_SEL>,
262                          <&topckgen CLK_TOP_ETHIF_SEL>;
263                 clock-names = "mm", "mfg", "ethif";
264         };
265
266         watchdog: watchdog@10007000 {
267                 compatible = "mediatek,mt7623-wdt",
268                              "mediatek,mt6589-wdt";
269                 reg = <0 0x10007000 0 0x100>;
270         };
271
272         timer: timer@10008000 {
273                 compatible = "mediatek,mt7623-timer",
274                              "mediatek,mt6577-timer";
275                 reg = <0 0x10008000 0 0x80>;
276                 interrupts = <GIC_SPI 112 IRQ_TYPE_LEVEL_LOW>;
277                 clocks = <&system_clk>, <&rtc32k>;
278                 clock-names = "system-clk", "rtc-clk";
279         };
280
281         pwrap: pwrap@1000d000 {
282                 compatible = "mediatek,mt7623-pwrap",
283                              "mediatek,mt2701-pwrap";
284                 reg = <0 0x1000d000 0 0x1000>;
285                 reg-names = "pwrap";
286                 interrupts = <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>;
287                 resets = <&infracfg MT2701_INFRA_PMIC_WRAP_RST>;
288                 reset-names = "pwrap";
289                 clocks = <&infracfg CLK_INFRA_PMICSPI>,
290                          <&infracfg CLK_INFRA_PMICWRAP>;
291                 clock-names = "spi", "wrap";
292         };
293
294         cir: cir@10013000 {
295                 compatible = "mediatek,mt7623-cir";
296                 reg = <0 0x10013000 0 0x1000>;
297                 interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_LOW>;
298                 clocks = <&infracfg CLK_INFRA_IRRX>;
299                 clock-names = "clk";
300                 status = "disabled";
301         };
302
303         sysirq: interrupt-controller@10200100 {
304                 compatible = "mediatek,mt7623-sysirq",
305                              "mediatek,mt6577-sysirq";
306                 interrupt-controller;
307                 #interrupt-cells = <3>;
308                 interrupt-parent = <&gic>;
309                 reg = <0 0x10200100 0 0x1c>;
310         };
311
312         efuse: efuse@10206000 {
313                 compatible = "mediatek,mt7623-efuse",
314                              "mediatek,mt8173-efuse";
315                 reg = <0 0x10206000 0 0x1000>;
316                 #address-cells = <1>;
317                 #size-cells = <1>;
318                 thermal_calibration_data: calib@424 {
319                         reg = <0x424 0xc>;
320                 };
321         };
322
323         apmixedsys: syscon@10209000 {
324                 compatible = "mediatek,mt7623-apmixedsys",
325                              "mediatek,mt2701-apmixedsys",
326                              "syscon";
327                 reg = <0 0x10209000 0 0x1000>;
328                 #clock-cells = <1>;
329         };
330
331         rng: rng@1020f000 {
332                 compatible = "mediatek,mt7623-rng";
333                 reg = <0 0x1020f000 0 0x1000>;
334                 clocks = <&infracfg CLK_INFRA_TRNG>;
335                 clock-names = "rng";
336         };
337
338         gic: interrupt-controller@10211000 {
339                 compatible = "arm,cortex-a7-gic";
340                 interrupt-controller;
341                 #interrupt-cells = <3>;
342                 interrupt-parent = <&gic>;
343                 reg = <0 0x10211000 0 0x1000>,
344                       <0 0x10212000 0 0x2000>,
345                       <0 0x10214000 0 0x2000>,
346                       <0 0x10216000 0 0x2000>;
347         };
348
349         auxadc: adc@11001000 {
350                 compatible = "mediatek,mt7623-auxadc",
351                              "mediatek,mt2701-auxadc";
352                 reg = <0 0x11001000 0 0x1000>;
353                 clocks = <&pericfg CLK_PERI_AUXADC>;
354                 clock-names = "main";
355                 #io-channel-cells = <1>;
356         };
357
358         uart0: serial@11002000 {
359                 compatible = "mediatek,mt7623-uart",
360                              "mediatek,mt6577-uart";
361                 reg = <0 0x11002000 0 0x400>;
362                 interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_LOW>;
363                 clocks = <&pericfg CLK_PERI_UART0_SEL>,
364                          <&pericfg CLK_PERI_UART0>;
365                 clock-names = "baud", "bus";
366                 status = "disabled";
367         };
368
369         uart1: serial@11003000 {
370                 compatible = "mediatek,mt7623-uart",
371                              "mediatek,mt6577-uart";
372                 reg = <0 0x11003000 0 0x400>;
373                 interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_LOW>;
374                 clocks = <&pericfg CLK_PERI_UART1_SEL>,
375                          <&pericfg CLK_PERI_UART1>;
376                 clock-names = "baud", "bus";
377                 status = "disabled";
378         };
379
380         uart2: serial@11004000 {
381                 compatible = "mediatek,mt7623-uart",
382                              "mediatek,mt6577-uart";
383                 reg = <0 0x11004000 0 0x400>;
384                 interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_LOW>;
385                 clocks = <&pericfg CLK_PERI_UART2_SEL>,
386                          <&pericfg CLK_PERI_UART2>;
387                 clock-names = "baud", "bus";
388                 status = "disabled";
389         };
390
391         uart3: serial@11005000 {
392                 compatible = "mediatek,mt7623-uart",
393                              "mediatek,mt6577-uart";
394                 reg = <0 0x11005000 0 0x400>;
395                 interrupts = <GIC_SPI 54 IRQ_TYPE_LEVEL_LOW>;
396                 clocks = <&pericfg CLK_PERI_UART3_SEL>,
397                          <&pericfg CLK_PERI_UART3>;
398                 clock-names = "baud", "bus";
399                 status = "disabled";
400         };
401
402         pwm: pwm@11006000 {
403                 compatible = "mediatek,mt7623-pwm";
404                 reg = <0 0x11006000 0 0x1000>;
405                 #pwm-cells = <2>;
406                 clocks = <&topckgen CLK_TOP_PWM_SEL>,
407                          <&pericfg CLK_PERI_PWM>,
408                          <&pericfg CLK_PERI_PWM1>,
409                          <&pericfg CLK_PERI_PWM2>,
410                          <&pericfg CLK_PERI_PWM3>,
411                          <&pericfg CLK_PERI_PWM4>,
412                          <&pericfg CLK_PERI_PWM5>;
413                 clock-names = "top", "main", "pwm1", "pwm2",
414                               "pwm3", "pwm4", "pwm5";
415                 status = "disabled";
416         };
417
418         i2c0: i2c@11007000 {
419                 compatible = "mediatek,mt7623-i2c",
420                              "mediatek,mt6577-i2c";
421                 reg = <0 0x11007000 0 0x70>,
422                       <0 0x11000200 0 0x80>;
423                 interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_LOW>;
424                 clock-div = <16>;
425                 clocks = <&pericfg CLK_PERI_I2C0>,
426                          <&pericfg CLK_PERI_AP_DMA>;
427                 clock-names = "main", "dma";
428                 #address-cells = <1>;
429                 #size-cells = <0>;
430                 status = "disabled";
431         };
432
433         i2c1: i2c@11008000 {
434                 compatible = "mediatek,mt7623-i2c",
435                              "mediatek,mt6577-i2c";
436                 reg = <0 0x11008000 0 0x70>,
437                       <0 0x11000280 0 0x80>;
438                 interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_LOW>;
439                 clock-div = <16>;
440                 clocks = <&pericfg CLK_PERI_I2C1>,
441                          <&pericfg CLK_PERI_AP_DMA>;
442                 clock-names = "main", "dma";
443                 #address-cells = <1>;
444                 #size-cells = <0>;
445                 status = "disabled";
446         };
447
448         i2c2: i2c@11009000 {
449                 compatible = "mediatek,mt7623-i2c",
450                              "mediatek,mt6577-i2c";
451                 reg = <0 0x11009000 0 0x70>,
452                       <0 0x11000300 0 0x80>;
453                 interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_LOW>;
454                 clock-div = <16>;
455                 clocks = <&pericfg CLK_PERI_I2C2>,
456                          <&pericfg CLK_PERI_AP_DMA>;
457                 clock-names = "main", "dma";
458                 #address-cells = <1>;
459                 #size-cells = <0>;
460                 status = "disabled";
461         };
462
463         spi0: spi@1100a000 {
464                 compatible = "mediatek,mt7623-spi",
465                              "mediatek,mt2701-spi";
466                 #address-cells = <1>;
467                 #size-cells = <0>;
468                 reg = <0 0x1100a000 0 0x100>;
469                 interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_LOW>;
470                 clocks = <&topckgen CLK_TOP_SYSPLL3_D2>,
471                          <&topckgen CLK_TOP_SPI0_SEL>,
472                          <&pericfg CLK_PERI_SPI0>;
473                 clock-names = "parent-clk", "sel-clk", "spi-clk";
474                 status = "disabled";
475         };
476
477         thermal: thermal@1100b000 {
478                 #thermal-sensor-cells = <1>;
479                 compatible = "mediatek,mt7623-thermal",
480                              "mediatek,mt2701-thermal";
481                 reg = <0 0x1100b000 0 0x1000>;
482                 interrupts = <0 70 IRQ_TYPE_LEVEL_LOW>;
483                 clocks = <&pericfg CLK_PERI_THERM>, <&pericfg CLK_PERI_AUXADC>;
484                 clock-names = "therm", "auxadc";
485                 resets = <&pericfg MT2701_PERI_THERM_SW_RST>;
486                 reset-names = "therm";
487                 mediatek,auxadc = <&auxadc>;
488                 mediatek,apmixedsys = <&apmixedsys>;
489                 nvmem-cells = <&thermal_calibration_data>;
490                 nvmem-cell-names = "calibration-data";
491         };
492
493         nandc: nfi@1100d000 {
494                 compatible = "mediatek,mt7623-nfc",
495                              "mediatek,mt2701-nfc";
496                 reg = <0 0x1100d000 0 0x1000>;
497                 interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_LOW>;
498                 power-domains = <&scpsys MT2701_POWER_DOMAIN_IFR_MSC>;
499                 clocks = <&pericfg CLK_PERI_NFI>,
500                          <&pericfg CLK_PERI_NFI_PAD>;
501                 clock-names = "nfi_clk", "pad_clk";
502                 status = "disabled";
503                 ecc-engine = <&bch>;
504                 #address-cells = <1>;
505                 #size-cells = <0>;
506         };
507
508         bch: ecc@1100e000 {
509                 compatible = "mediatek,mt7623-ecc",
510                              "mediatek,mt2701-ecc";
511                 reg = <0 0x1100e000 0 0x1000>;
512                 interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_LOW>;
513                 clocks = <&pericfg CLK_PERI_NFI_ECC>;
514                 clock-names = "nfiecc_clk";
515                 status = "disabled";
516         };
517
518         spi1: spi@11016000 {
519                 compatible = "mediatek,mt7623-spi",
520                              "mediatek,mt2701-spi";
521                 #address-cells = <1>;
522                 #size-cells = <0>;
523                 reg = <0 0x11016000 0 0x100>;
524                 interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_LOW>;
525                 clocks = <&topckgen CLK_TOP_SYSPLL3_D2>,
526                          <&topckgen CLK_TOP_SPI1_SEL>,
527                          <&pericfg CLK_PERI_SPI1>;
528                 clock-names = "parent-clk", "sel-clk", "spi-clk";
529                 status = "disabled";
530         };
531
532         spi2: spi@11017000 {
533                 compatible = "mediatek,mt7623-spi",
534                              "mediatek,mt2701-spi";
535                 #address-cells = <1>;
536                 #size-cells = <0>;
537                 reg = <0 0x11017000 0 0x1000>;
538                 interrupts = <GIC_SPI 142 IRQ_TYPE_LEVEL_LOW>;
539                 clocks = <&topckgen CLK_TOP_SYSPLL3_D2>,
540                          <&topckgen CLK_TOP_SPI2_SEL>,
541                          <&pericfg CLK_PERI_SPI2>;
542                 clock-names = "parent-clk", "sel-clk", "spi-clk";
543                 status = "disabled";
544         };
545
546         afe: audio-controller@11220000 {
547                 compatible = "mediatek,mt7623-audio",
548                              "mediatek,mt2701-audio";
549                 reg = <0 0x11220000 0 0x2000>,
550                       <0 0x112a0000 0 0x20000>;
551                 interrupts = <GIC_SPI 132 IRQ_TYPE_LEVEL_LOW>;
552                 power-domains = <&scpsys MT2701_POWER_DOMAIN_IFR_MSC>;
553
554                 clocks = <&infracfg CLK_INFRA_AUDIO>,
555                          <&topckgen CLK_TOP_AUD_MUX1_SEL>,
556                          <&topckgen CLK_TOP_AUD_MUX2_SEL>,
557                          <&topckgen CLK_TOP_AUD_MUX1_DIV>,
558                          <&topckgen CLK_TOP_AUD_MUX2_DIV>,
559                          <&topckgen CLK_TOP_AUD_48K_TIMING>,
560                          <&topckgen CLK_TOP_AUD_44K_TIMING>,
561                          <&topckgen CLK_TOP_AUDPLL_MUX_SEL>,
562                          <&topckgen CLK_TOP_APLL_SEL>,
563                          <&topckgen CLK_TOP_AUD1PLL_98M>,
564                          <&topckgen CLK_TOP_AUD2PLL_90M>,
565                          <&topckgen CLK_TOP_HADDS2PLL_98M>,
566                          <&topckgen CLK_TOP_HADDS2PLL_294M>,
567                          <&topckgen CLK_TOP_AUDPLL>,
568                          <&topckgen CLK_TOP_AUDPLL_D4>,
569                          <&topckgen CLK_TOP_AUDPLL_D8>,
570                          <&topckgen CLK_TOP_AUDPLL_D16>,
571                          <&topckgen CLK_TOP_AUDPLL_D24>,
572                          <&topckgen CLK_TOP_AUDINTBUS_SEL>,
573                          <&clk26m>,
574                          <&topckgen CLK_TOP_SYSPLL1_D4>,
575                          <&topckgen CLK_TOP_AUD_K1_SRC_SEL>,
576                          <&topckgen CLK_TOP_AUD_K2_SRC_SEL>,
577                          <&topckgen CLK_TOP_AUD_K3_SRC_SEL>,
578                          <&topckgen CLK_TOP_AUD_K4_SRC_SEL>,
579                          <&topckgen CLK_TOP_AUD_K5_SRC_SEL>,
580                          <&topckgen CLK_TOP_AUD_K6_SRC_SEL>,
581                          <&topckgen CLK_TOP_AUD_K1_SRC_DIV>,
582                          <&topckgen CLK_TOP_AUD_K2_SRC_DIV>,
583                          <&topckgen CLK_TOP_AUD_K3_SRC_DIV>,
584                          <&topckgen CLK_TOP_AUD_K4_SRC_DIV>,
585                          <&topckgen CLK_TOP_AUD_K5_SRC_DIV>,
586                          <&topckgen CLK_TOP_AUD_K6_SRC_DIV>,
587                          <&topckgen CLK_TOP_AUD_I2S1_MCLK>,
588                          <&topckgen CLK_TOP_AUD_I2S2_MCLK>,
589                          <&topckgen CLK_TOP_AUD_I2S3_MCLK>,
590                          <&topckgen CLK_TOP_AUD_I2S4_MCLK>,
591                          <&topckgen CLK_TOP_AUD_I2S5_MCLK>,
592                          <&topckgen CLK_TOP_AUD_I2S6_MCLK>,
593                          <&topckgen CLK_TOP_ASM_M_SEL>,
594                          <&topckgen CLK_TOP_ASM_H_SEL>,
595                          <&topckgen CLK_TOP_UNIVPLL2_D4>,
596                          <&topckgen CLK_TOP_UNIVPLL2_D2>,
597                          <&topckgen CLK_TOP_SYSPLL_D5>;
598
599                 clock-names = "infra_sys_audio_clk",
600                          "top_audio_mux1_sel",
601                          "top_audio_mux2_sel",
602                          "top_audio_mux1_div",
603                          "top_audio_mux2_div",
604                          "top_audio_48k_timing",
605                          "top_audio_44k_timing",
606                          "top_audpll_mux_sel",
607                          "top_apll_sel",
608                          "top_aud1_pll_98M",
609                          "top_aud2_pll_90M",
610                          "top_hadds2_pll_98M",
611                          "top_hadds2_pll_294M",
612                          "top_audpll",
613                          "top_audpll_d4",
614                          "top_audpll_d8",
615                          "top_audpll_d16",
616                          "top_audpll_d24",
617                          "top_audintbus_sel",
618                          "clk_26m",
619                          "top_syspll1_d4",
620                          "top_aud_k1_src_sel",
621                          "top_aud_k2_src_sel",
622                          "top_aud_k3_src_sel",
623                          "top_aud_k4_src_sel",
624                          "top_aud_k5_src_sel",
625                          "top_aud_k6_src_sel",
626                          "top_aud_k1_src_div",
627                          "top_aud_k2_src_div",
628                          "top_aud_k3_src_div",
629                          "top_aud_k4_src_div",
630                          "top_aud_k5_src_div",
631                          "top_aud_k6_src_div",
632                          "top_aud_i2s1_mclk",
633                          "top_aud_i2s2_mclk",
634                          "top_aud_i2s3_mclk",
635                          "top_aud_i2s4_mclk",
636                          "top_aud_i2s5_mclk",
637                          "top_aud_i2s6_mclk",
638                          "top_asm_m_sel",
639                          "top_asm_h_sel",
640                          "top_univpll2_d4",
641                          "top_univpll2_d2",
642                          "top_syspll_d5";
643         };
644
645         mmc0: mmc@11230000 {
646                 compatible = "mediatek,mt7623-mmc",
647                              "mediatek,mt8135-mmc";
648                 reg = <0 0x11230000 0 0x1000>;
649                 interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_LOW>;
650                 clocks = <&pericfg CLK_PERI_MSDC30_0>,
651                          <&topckgen CLK_TOP_MSDC30_0_SEL>;
652                 clock-names = "source", "hclk";
653                 status = "disabled";
654         };
655
656         mmc1: mmc@11240000 {
657                 compatible = "mediatek,mt7623-mmc",
658                              "mediatek,mt8135-mmc";
659                 reg = <0 0x11240000 0 0x1000>;
660                 interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_LOW>;
661                 clocks = <&pericfg CLK_PERI_MSDC30_1>,
662                          <&topckgen CLK_TOP_MSDC30_1_SEL>;
663                 clock-names = "source", "hclk";
664                 status = "disabled";
665         };
666
667         hifsys: syscon@1a000000 {
668                 compatible = "mediatek,mt7623-hifsys",
669                              "mediatek,mt2701-hifsys",
670                              "syscon";
671                 reg = <0 0x1a000000 0 0x1000>;
672                 #clock-cells = <1>;
673                 #reset-cells = <1>;
674         };
675
676         usb1: usb@1a1c0000 {
677                 compatible = "mediatek,mt7623-xhci",
678                              "mediatek,mt8173-xhci";
679                 reg = <0 0x1a1c0000 0 0x1000>,
680                       <0 0x1a1c4700 0 0x0100>;
681                 reg-names = "mac", "ippc";
682                 interrupts = <GIC_SPI 196 IRQ_TYPE_LEVEL_LOW>;
683                 clocks = <&hifsys CLK_HIFSYS_USB0PHY>,
684                          <&topckgen CLK_TOP_ETHIF_SEL>;
685                 clock-names = "sys_ck", "free_ck";
686                 power-domains = <&scpsys MT2701_POWER_DOMAIN_HIF>;
687                 phys = <&u2port0 PHY_TYPE_USB2>, <&u3port0 PHY_TYPE_USB3>;
688                 status = "disabled";
689         };
690
691         u3phy1: usb-phy@1a1c4000 {
692                 compatible = "mediatek,mt7623-u3phy",
693                              "mediatek,mt2701-u3phy";
694                 reg = <0 0x1a1c4000 0 0x0700>;
695                 clocks = <&clk26m>;
696                 clock-names = "u3phya_ref";
697                 #address-cells = <2>;
698                 #size-cells = <2>;
699                 ranges;
700                 status = "disabled";
701
702                 u2port0: usb-phy@1a1c4800 {
703                         reg = <0 0x1a1c4800 0 0x0100>;
704                         #phy-cells = <1>;
705                         status = "okay";
706                 };
707
708                 u3port0: usb-phy@1a1c4900 {
709                         reg = <0 0x1a1c4900 0 0x0700>;
710                         #phy-cells = <1>;
711                         status = "okay";
712                 };
713         };
714
715         usb2: usb@1a240000 {
716                 compatible = "mediatek,mt7623-xhci",
717                              "mediatek,mt8173-xhci";
718                 reg = <0 0x1a240000 0 0x1000>,
719                       <0 0x1a244700 0 0x0100>;
720                 reg-names = "mac", "ippc";
721                 interrupts = <GIC_SPI 197 IRQ_TYPE_LEVEL_LOW>;
722                 clocks = <&hifsys CLK_HIFSYS_USB1PHY>,
723                          <&topckgen CLK_TOP_ETHIF_SEL>;
724                 clock-names = "sys_ck", "free_ck";
725                 power-domains = <&scpsys MT2701_POWER_DOMAIN_HIF>;
726                 phys = <&u2port1 PHY_TYPE_USB2>, <&u3port1 PHY_TYPE_USB3>;
727                 status = "disabled";
728         };
729
730         u3phy2: usb-phy@1a244000 {
731                 compatible = "mediatek,mt7623-u3phy",
732                              "mediatek,mt2701-u3phy";
733                 reg = <0 0x1a244000 0 0x0700>;
734                 clocks = <&clk26m>;
735                 clock-names = "u3phya_ref";
736                 #address-cells = <2>;
737                 #size-cells = <2>;
738                 ranges;
739                 status = "disabled";
740
741                 u2port1: usb-phy@1a244800 {
742                         reg = <0 0x1a244800 0 0x0100>;
743                         #phy-cells = <1>;
744                         status = "okay";
745                 };
746
747                 u3port1: usb-phy@1a244900 {
748                         reg = <0 0x1a244900 0 0x0700>;
749                         #phy-cells = <1>;
750                         status = "okay";
751                 };
752         };
753
754         ethsys: syscon@1b000000 {
755                 compatible = "mediatek,mt7623-ethsys",
756                              "mediatek,mt2701-ethsys",
757                              "syscon";
758                 reg = <0 0x1b000000 0 0x1000>;
759                 #clock-cells = <1>;
760                 #reset-cells = <1>;
761         };
762
763         eth: ethernet@1b100000 {
764                 compatible = "mediatek,mt7623-eth",
765                              "mediatek,mt2701-eth",
766                              "syscon";
767                 reg = <0 0x1b100000 0 0x20000>;
768                 interrupts = <GIC_SPI 200 IRQ_TYPE_LEVEL_LOW>,
769                              <GIC_SPI 199 IRQ_TYPE_LEVEL_LOW>,
770                              <GIC_SPI 198 IRQ_TYPE_LEVEL_LOW>;
771                 clocks = <&topckgen CLK_TOP_ETHIF_SEL>,
772                          <&ethsys CLK_ETHSYS_ESW>,
773                          <&ethsys CLK_ETHSYS_GP1>,
774                          <&ethsys CLK_ETHSYS_GP2>,
775                          <&apmixedsys CLK_APMIXED_TRGPLL>;
776                 clock-names = "ethif", "esw", "gp1", "gp2", "trgpll";
777                 resets = <&ethsys MT2701_ETHSYS_FE_RST>,
778                          <&ethsys MT2701_ETHSYS_GMAC_RST>,
779                          <&ethsys MT2701_ETHSYS_PPE_RST>;
780                 reset-names = "fe", "gmac", "ppe";
781                 power-domains = <&scpsys MT2701_POWER_DOMAIN_ETH>;
782                 mediatek,ethsys = <&ethsys>;
783                 mediatek,pctl = <&syscfg_pctl_a>;
784                 #address-cells = <1>;
785                 #size-cells = <0>;
786                 status = "disabled";
787         };
788
789         crypto: crypto@1b240000 {
790                 compatible = "mediatek,mt7623-crypto";
791                 reg = <0 0x1b240000 0 0x20000>;
792                 interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_LOW>,
793                              <GIC_SPI 83 IRQ_TYPE_LEVEL_LOW>,
794                              <GIC_SPI 84 IRQ_TYPE_LEVEL_LOW>,
795                              <GIC_SPI 91 IRQ_TYPE_LEVEL_LOW>,
796                              <GIC_SPI 97 IRQ_TYPE_LEVEL_LOW>;
797                 clocks = <&topckgen CLK_TOP_ETHIF_SEL>,
798                          <&ethsys CLK_ETHSYS_CRYPTO>;
799                 clock-names = "ethif","cryp";
800                 power-domains = <&scpsys MT2701_POWER_DOMAIN_ETH>;
801                 status = "disabled";
802         };
803 };