Merge tag 'for-linus-5.15-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rw/uml
[linux-2.6-microblaze.git] / arch / arm64 / boot / dts / mediatek / mt8183.dtsi
1 // SPDX-License-Identifier: (GPL-2.0 OR MIT)
2 /*
3  * Copyright (c) 2018 MediaTek Inc.
4  * Author: Ben Ho <ben.ho@mediatek.com>
5  *         Erin Lo <erin.lo@mediatek.com>
6  */
7
8 #include <dt-bindings/clock/mt8183-clk.h>
9 #include <dt-bindings/gce/mt8183-gce.h>
10 #include <dt-bindings/interrupt-controller/arm-gic.h>
11 #include <dt-bindings/interrupt-controller/irq.h>
12 #include <dt-bindings/memory/mt8183-larb-port.h>
13 #include <dt-bindings/power/mt8183-power.h>
14 #include <dt-bindings/reset-controller/mt8183-resets.h>
15 #include <dt-bindings/phy/phy.h>
16 #include <dt-bindings/thermal/thermal.h>
17 #include <dt-bindings/pinctrl/mt8183-pinfunc.h>
18
19 / {
20         compatible = "mediatek,mt8183";
21         interrupt-parent = <&sysirq>;
22         #address-cells = <2>;
23         #size-cells = <2>;
24
25         aliases {
26                 i2c0 = &i2c0;
27                 i2c1 = &i2c1;
28                 i2c2 = &i2c2;
29                 i2c3 = &i2c3;
30                 i2c4 = &i2c4;
31                 i2c5 = &i2c5;
32                 i2c6 = &i2c6;
33                 i2c7 = &i2c7;
34                 i2c8 = &i2c8;
35                 i2c9 = &i2c9;
36                 i2c10 = &i2c10;
37                 i2c11 = &i2c11;
38                 ovl0 = &ovl0;
39                 ovl-2l0 = &ovl_2l0;
40                 ovl-2l1 = &ovl_2l1;
41                 rdma0 = &rdma0;
42                 rdma1 = &rdma1;
43         };
44
45         cpus {
46                 #address-cells = <1>;
47                 #size-cells = <0>;
48
49                 cpu-map {
50                         cluster0 {
51                                 core0 {
52                                         cpu = <&cpu0>;
53                                 };
54                                 core1 {
55                                         cpu = <&cpu1>;
56                                 };
57                                 core2 {
58                                         cpu = <&cpu2>;
59                                 };
60                                 core3 {
61                                         cpu = <&cpu3>;
62                                 };
63                         };
64
65                         cluster1 {
66                                 core0 {
67                                         cpu = <&cpu4>;
68                                 };
69                                 core1 {
70                                         cpu = <&cpu5>;
71                                 };
72                                 core2 {
73                                         cpu = <&cpu6>;
74                                 };
75                                 core3 {
76                                         cpu = <&cpu7>;
77                                 };
78                         };
79                 };
80
81                 cpu0: cpu@0 {
82                         device_type = "cpu";
83                         compatible = "arm,cortex-a53";
84                         reg = <0x000>;
85                         enable-method = "psci";
86                         capacity-dmips-mhz = <741>;
87                         cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP0>;
88                         dynamic-power-coefficient = <84>;
89                         #cooling-cells = <2>;
90                 };
91
92                 cpu1: cpu@1 {
93                         device_type = "cpu";
94                         compatible = "arm,cortex-a53";
95                         reg = <0x001>;
96                         enable-method = "psci";
97                         capacity-dmips-mhz = <741>;
98                         cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP0>;
99                         dynamic-power-coefficient = <84>;
100                         #cooling-cells = <2>;
101                 };
102
103                 cpu2: cpu@2 {
104                         device_type = "cpu";
105                         compatible = "arm,cortex-a53";
106                         reg = <0x002>;
107                         enable-method = "psci";
108                         capacity-dmips-mhz = <741>;
109                         cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP0>;
110                         dynamic-power-coefficient = <84>;
111                         #cooling-cells = <2>;
112                 };
113
114                 cpu3: cpu@3 {
115                         device_type = "cpu";
116                         compatible = "arm,cortex-a53";
117                         reg = <0x003>;
118                         enable-method = "psci";
119                         capacity-dmips-mhz = <741>;
120                         cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP0>;
121                         dynamic-power-coefficient = <84>;
122                         #cooling-cells = <2>;
123                 };
124
125                 cpu4: cpu@100 {
126                         device_type = "cpu";
127                         compatible = "arm,cortex-a73";
128                         reg = <0x100>;
129                         enable-method = "psci";
130                         capacity-dmips-mhz = <1024>;
131                         cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP1>;
132                         dynamic-power-coefficient = <211>;
133                         #cooling-cells = <2>;
134                 };
135
136                 cpu5: cpu@101 {
137                         device_type = "cpu";
138                         compatible = "arm,cortex-a73";
139                         reg = <0x101>;
140                         enable-method = "psci";
141                         capacity-dmips-mhz = <1024>;
142                         cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP1>;
143                         dynamic-power-coefficient = <211>;
144                         #cooling-cells = <2>;
145                 };
146
147                 cpu6: cpu@102 {
148                         device_type = "cpu";
149                         compatible = "arm,cortex-a73";
150                         reg = <0x102>;
151                         enable-method = "psci";
152                         capacity-dmips-mhz = <1024>;
153                         cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP1>;
154                         dynamic-power-coefficient = <211>;
155                         #cooling-cells = <2>;
156                 };
157
158                 cpu7: cpu@103 {
159                         device_type = "cpu";
160                         compatible = "arm,cortex-a73";
161                         reg = <0x103>;
162                         enable-method = "psci";
163                         capacity-dmips-mhz = <1024>;
164                         cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP1>;
165                         dynamic-power-coefficient = <211>;
166                         #cooling-cells = <2>;
167                 };
168
169                 idle-states {
170                         entry-method = "psci";
171
172                         CPU_SLEEP: cpu-sleep {
173                                 compatible = "arm,idle-state";
174                                 local-timer-stop;
175                                 arm,psci-suspend-param = <0x00010001>;
176                                 entry-latency-us = <200>;
177                                 exit-latency-us = <200>;
178                                 min-residency-us = <800>;
179                         };
180
181                         CLUSTER_SLEEP0: cluster-sleep-0 {
182                                 compatible = "arm,idle-state";
183                                 local-timer-stop;
184                                 arm,psci-suspend-param = <0x01010001>;
185                                 entry-latency-us = <250>;
186                                 exit-latency-us = <400>;
187                                 min-residency-us = <1000>;
188                         };
189                         CLUSTER_SLEEP1: cluster-sleep-1 {
190                                 compatible = "arm,idle-state";
191                                 local-timer-stop;
192                                 arm,psci-suspend-param = <0x01010001>;
193                                 entry-latency-us = <250>;
194                                 exit-latency-us = <400>;
195                                 min-residency-us = <1300>;
196                         };
197                 };
198         };
199
200         gpu_opp_table: opp_table0 {
201                 compatible = "operating-points-v2";
202                 opp-shared;
203
204                 opp-300000000 {
205                         opp-hz = /bits/ 64 <300000000>;
206                         opp-microvolt = <625000>, <850000>;
207                 };
208
209                 opp-320000000 {
210                         opp-hz = /bits/ 64 <320000000>;
211                         opp-microvolt = <631250>, <850000>;
212                 };
213
214                 opp-340000000 {
215                         opp-hz = /bits/ 64 <340000000>;
216                         opp-microvolt = <637500>, <850000>;
217                 };
218
219                 opp-360000000 {
220                         opp-hz = /bits/ 64 <360000000>;
221                         opp-microvolt = <643750>, <850000>;
222                 };
223
224                 opp-380000000 {
225                         opp-hz = /bits/ 64 <380000000>;
226                         opp-microvolt = <650000>, <850000>;
227                 };
228
229                 opp-400000000 {
230                         opp-hz = /bits/ 64 <400000000>;
231                         opp-microvolt = <656250>, <850000>;
232                 };
233
234                 opp-420000000 {
235                         opp-hz = /bits/ 64 <420000000>;
236                         opp-microvolt = <662500>, <850000>;
237                 };
238
239                 opp-460000000 {
240                         opp-hz = /bits/ 64 <460000000>;
241                         opp-microvolt = <675000>, <850000>;
242                 };
243
244                 opp-500000000 {
245                         opp-hz = /bits/ 64 <500000000>;
246                         opp-microvolt = <687500>, <850000>;
247                 };
248
249                 opp-540000000 {
250                         opp-hz = /bits/ 64 <540000000>;
251                         opp-microvolt = <700000>, <850000>;
252                 };
253
254                 opp-580000000 {
255                         opp-hz = /bits/ 64 <580000000>;
256                         opp-microvolt = <712500>, <850000>;
257                 };
258
259                 opp-620000000 {
260                         opp-hz = /bits/ 64 <620000000>;
261                         opp-microvolt = <725000>, <850000>;
262                 };
263
264                 opp-653000000 {
265                         opp-hz = /bits/ 64 <653000000>;
266                         opp-microvolt = <743750>, <850000>;
267                 };
268
269                 opp-698000000 {
270                         opp-hz = /bits/ 64 <698000000>;
271                         opp-microvolt = <768750>, <868750>;
272                 };
273
274                 opp-743000000 {
275                         opp-hz = /bits/ 64 <743000000>;
276                         opp-microvolt = <793750>, <893750>;
277                 };
278
279                 opp-800000000 {
280                         opp-hz = /bits/ 64 <800000000>;
281                         opp-microvolt = <825000>, <925000>;
282                 };
283         };
284
285         pmu-a53 {
286                 compatible = "arm,cortex-a53-pmu";
287                 interrupt-parent = <&gic>;
288                 interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_LOW &ppi_cluster0>;
289         };
290
291         pmu-a73 {
292                 compatible = "arm,cortex-a73-pmu";
293                 interrupt-parent = <&gic>;
294                 interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_LOW &ppi_cluster1>;
295         };
296
297         psci {
298                 compatible      = "arm,psci-1.0";
299                 method          = "smc";
300         };
301
302         clk26m: oscillator {
303                 compatible = "fixed-clock";
304                 #clock-cells = <0>;
305                 clock-frequency = <26000000>;
306                 clock-output-names = "clk26m";
307         };
308
309         timer {
310                 compatible = "arm,armv8-timer";
311                 interrupt-parent = <&gic>;
312                 interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW 0>,
313                              <GIC_PPI 14 IRQ_TYPE_LEVEL_LOW 0>,
314                              <GIC_PPI 11 IRQ_TYPE_LEVEL_LOW 0>,
315                              <GIC_PPI 10 IRQ_TYPE_LEVEL_LOW 0>;
316         };
317
318         soc {
319                 #address-cells = <2>;
320                 #size-cells = <2>;
321                 compatible = "simple-bus";
322                 ranges;
323
324                 soc_data: soc_data@8000000 {
325                         compatible = "mediatek,mt8183-efuse",
326                                      "mediatek,efuse";
327                         reg = <0 0x08000000 0 0x0010>;
328                         #address-cells = <1>;
329                         #size-cells = <1>;
330                         status = "disabled";
331                 };
332
333                 gic: interrupt-controller@c000000 {
334                         compatible = "arm,gic-v3";
335                         #interrupt-cells = <4>;
336                         interrupt-parent = <&gic>;
337                         interrupt-controller;
338                         reg = <0 0x0c000000 0 0x40000>,  /* GICD */
339                               <0 0x0c100000 0 0x200000>, /* GICR */
340                               <0 0x0c400000 0 0x2000>,   /* GICC */
341                               <0 0x0c410000 0 0x1000>,   /* GICH */
342                               <0 0x0c420000 0 0x2000>;   /* GICV */
343
344                         interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH 0>;
345                         ppi-partitions {
346                                 ppi_cluster0: interrupt-partition-0 {
347                                         affinity = <&cpu0 &cpu1 &cpu2 &cpu3>;
348                                 };
349                                 ppi_cluster1: interrupt-partition-1 {
350                                         affinity = <&cpu4 &cpu5 &cpu6 &cpu7>;
351                                 };
352                         };
353                 };
354
355                 mcucfg: syscon@c530000 {
356                         compatible = "mediatek,mt8183-mcucfg", "syscon";
357                         reg = <0 0x0c530000 0 0x1000>;
358                         #clock-cells = <1>;
359                 };
360
361                 sysirq: interrupt-controller@c530a80 {
362                         compatible = "mediatek,mt8183-sysirq",
363                                      "mediatek,mt6577-sysirq";
364                         interrupt-controller;
365                         #interrupt-cells = <3>;
366                         interrupt-parent = <&gic>;
367                         reg = <0 0x0c530a80 0 0x50>;
368                 };
369
370                 topckgen: syscon@10000000 {
371                         compatible = "mediatek,mt8183-topckgen", "syscon";
372                         reg = <0 0x10000000 0 0x1000>;
373                         #clock-cells = <1>;
374                 };
375
376                 infracfg: syscon@10001000 {
377                         compatible = "mediatek,mt8183-infracfg", "syscon";
378                         reg = <0 0x10001000 0 0x1000>;
379                         #clock-cells = <1>;
380                         #reset-cells = <1>;
381                 };
382
383                 pericfg: syscon@10003000 {
384                         compatible = "mediatek,mt8183-pericfg", "syscon";
385                         reg = <0 0x10003000 0 0x1000>;
386                         #clock-cells = <1>;
387                 };
388
389                 pio: pinctrl@10005000 {
390                         compatible = "mediatek,mt8183-pinctrl";
391                         reg = <0 0x10005000 0 0x1000>,
392                               <0 0x11f20000 0 0x1000>,
393                               <0 0x11e80000 0 0x1000>,
394                               <0 0x11e70000 0 0x1000>,
395                               <0 0x11e90000 0 0x1000>,
396                               <0 0x11d30000 0 0x1000>,
397                               <0 0x11d20000 0 0x1000>,
398                               <0 0x11c50000 0 0x1000>,
399                               <0 0x11f30000 0 0x1000>,
400                               <0 0x1000b000 0 0x1000>;
401                         reg-names = "iocfg0", "iocfg1", "iocfg2",
402                                     "iocfg3", "iocfg4", "iocfg5",
403                                     "iocfg6", "iocfg7", "iocfg8",
404                                     "eint";
405                         gpio-controller;
406                         #gpio-cells = <2>;
407                         gpio-ranges = <&pio 0 0 192>;
408                         interrupt-controller;
409                         interrupts = <GIC_SPI 177 IRQ_TYPE_LEVEL_HIGH>;
410                         #interrupt-cells = <2>;
411                 };
412
413                 scpsys: syscon@10006000 {
414                         compatible = "syscon", "simple-mfd";
415                         reg = <0 0x10006000 0 0x1000>;
416                         #power-domain-cells = <1>;
417
418                         /* System Power Manager */
419                         spm: power-controller {
420                                 compatible = "mediatek,mt8183-power-controller";
421                                 #address-cells = <1>;
422                                 #size-cells = <0>;
423                                 #power-domain-cells = <1>;
424
425                                 /* power domain of the SoC */
426                                 power-domain@MT8183_POWER_DOMAIN_AUDIO {
427                                         reg = <MT8183_POWER_DOMAIN_AUDIO>;
428                                         clocks = <&topckgen CLK_TOP_MUX_AUD_INTBUS>,
429                                                  <&infracfg CLK_INFRA_AUDIO>,
430                                                  <&infracfg CLK_INFRA_AUDIO_26M_BCLK>;
431                                         clock-names = "audio", "audio1", "audio2";
432                                         #power-domain-cells = <0>;
433                                 };
434
435                                 power-domain@MT8183_POWER_DOMAIN_CONN {
436                                         reg = <MT8183_POWER_DOMAIN_CONN>;
437                                         mediatek,infracfg = <&infracfg>;
438                                         #power-domain-cells = <0>;
439                                 };
440
441                                 power-domain@MT8183_POWER_DOMAIN_MFG_ASYNC {
442                                         reg = <MT8183_POWER_DOMAIN_MFG_ASYNC>;
443                                         clocks =  <&topckgen CLK_TOP_MUX_MFG>;
444                                         clock-names = "mfg";
445                                         #address-cells = <1>;
446                                         #size-cells = <0>;
447                                         #power-domain-cells = <1>;
448
449                                         mfg: power-domain@MT8183_POWER_DOMAIN_MFG {
450                                                 reg = <MT8183_POWER_DOMAIN_MFG>;
451                                                 #address-cells = <1>;
452                                                 #size-cells = <0>;
453                                                 #power-domain-cells = <1>;
454
455                                                 power-domain@MT8183_POWER_DOMAIN_MFG_CORE0 {
456                                                         reg = <MT8183_POWER_DOMAIN_MFG_CORE0>;
457                                                         #power-domain-cells = <0>;
458                                                 };
459
460                                                 power-domain@MT8183_POWER_DOMAIN_MFG_CORE1 {
461                                                         reg = <MT8183_POWER_DOMAIN_MFG_CORE1>;
462                                                         #power-domain-cells = <0>;
463                                                 };
464
465                                                 power-domain@MT8183_POWER_DOMAIN_MFG_2D {
466                                                         reg = <MT8183_POWER_DOMAIN_MFG_2D>;
467                                                         mediatek,infracfg = <&infracfg>;
468                                                         #power-domain-cells = <0>;
469                                                 };
470                                         };
471                                 };
472
473                                 power-domain@MT8183_POWER_DOMAIN_DISP {
474                                         reg = <MT8183_POWER_DOMAIN_DISP>;
475                                         clocks = <&topckgen CLK_TOP_MUX_MM>,
476                                                  <&mmsys CLK_MM_SMI_COMMON>,
477                                                  <&mmsys CLK_MM_SMI_LARB0>,
478                                                  <&mmsys CLK_MM_SMI_LARB1>,
479                                                  <&mmsys CLK_MM_GALS_COMM0>,
480                                                  <&mmsys CLK_MM_GALS_COMM1>,
481                                                  <&mmsys CLK_MM_GALS_CCU2MM>,
482                                                  <&mmsys CLK_MM_GALS_IPU12MM>,
483                                                  <&mmsys CLK_MM_GALS_IMG2MM>,
484                                                  <&mmsys CLK_MM_GALS_CAM2MM>,
485                                                  <&mmsys CLK_MM_GALS_IPU2MM>;
486                                         clock-names = "mm", "mm-0", "mm-1", "mm-2", "mm-3",
487                                                       "mm-4", "mm-5", "mm-6", "mm-7",
488                                                       "mm-8", "mm-9";
489                                         mediatek,infracfg = <&infracfg>;
490                                         mediatek,smi = <&smi_common>;
491                                         #address-cells = <1>;
492                                         #size-cells = <0>;
493                                         #power-domain-cells = <1>;
494
495                                         power-domain@MT8183_POWER_DOMAIN_CAM {
496                                                 reg = <MT8183_POWER_DOMAIN_CAM>;
497                                                 clocks = <&topckgen CLK_TOP_MUX_CAM>,
498                                                          <&camsys CLK_CAM_LARB6>,
499                                                          <&camsys CLK_CAM_LARB3>,
500                                                          <&camsys CLK_CAM_SENINF>,
501                                                          <&camsys CLK_CAM_CAMSV0>,
502                                                          <&camsys CLK_CAM_CAMSV1>,
503                                                          <&camsys CLK_CAM_CAMSV2>,
504                                                          <&camsys CLK_CAM_CCU>;
505                                                 clock-names = "cam", "cam-0", "cam-1",
506                                                               "cam-2", "cam-3", "cam-4",
507                                                               "cam-5", "cam-6";
508                                                 mediatek,infracfg = <&infracfg>;
509                                                 mediatek,smi = <&smi_common>;
510                                                 #power-domain-cells = <0>;
511                                         };
512
513                                         power-domain@MT8183_POWER_DOMAIN_ISP {
514                                                 reg = <MT8183_POWER_DOMAIN_ISP>;
515                                                 clocks = <&topckgen CLK_TOP_MUX_IMG>,
516                                                          <&imgsys CLK_IMG_LARB5>,
517                                                          <&imgsys CLK_IMG_LARB2>;
518                                                 clock-names = "isp", "isp-0", "isp-1";
519                                                 mediatek,infracfg = <&infracfg>;
520                                                 mediatek,smi = <&smi_common>;
521                                                 #power-domain-cells = <0>;
522                                         };
523
524                                         power-domain@MT8183_POWER_DOMAIN_VDEC {
525                                                 reg = <MT8183_POWER_DOMAIN_VDEC>;
526                                                 mediatek,smi = <&smi_common>;
527                                                 #power-domain-cells = <0>;
528                                         };
529
530                                         power-domain@MT8183_POWER_DOMAIN_VENC {
531                                                 reg = <MT8183_POWER_DOMAIN_VENC>;
532                                                 mediatek,smi = <&smi_common>;
533                                                 #power-domain-cells = <0>;
534                                         };
535
536                                         power-domain@MT8183_POWER_DOMAIN_VPU_TOP {
537                                                 reg = <MT8183_POWER_DOMAIN_VPU_TOP>;
538                                                 clocks = <&topckgen CLK_TOP_MUX_IPU_IF>,
539                                                          <&topckgen CLK_TOP_MUX_DSP>,
540                                                          <&ipu_conn CLK_IPU_CONN_IPU>,
541                                                          <&ipu_conn CLK_IPU_CONN_AHB>,
542                                                          <&ipu_conn CLK_IPU_CONN_AXI>,
543                                                          <&ipu_conn CLK_IPU_CONN_ISP>,
544                                                          <&ipu_conn CLK_IPU_CONN_CAM_ADL>,
545                                                          <&ipu_conn CLK_IPU_CONN_IMG_ADL>;
546                                                 clock-names = "vpu", "vpu1", "vpu-0", "vpu-1",
547                                                               "vpu-2", "vpu-3", "vpu-4", "vpu-5";
548                                                 mediatek,infracfg = <&infracfg>;
549                                                 mediatek,smi = <&smi_common>;
550                                                 #address-cells = <1>;
551                                                 #size-cells = <0>;
552                                                 #power-domain-cells = <1>;
553
554                                                 power-domain@MT8183_POWER_DOMAIN_VPU_CORE0 {
555                                                         reg = <MT8183_POWER_DOMAIN_VPU_CORE0>;
556                                                         clocks = <&topckgen CLK_TOP_MUX_DSP1>;
557                                                         clock-names = "vpu2";
558                                                         mediatek,infracfg = <&infracfg>;
559                                                         #power-domain-cells = <0>;
560                                                 };
561
562                                                 power-domain@MT8183_POWER_DOMAIN_VPU_CORE1 {
563                                                         reg = <MT8183_POWER_DOMAIN_VPU_CORE1>;
564                                                         clocks = <&topckgen CLK_TOP_MUX_DSP2>;
565                                                         clock-names = "vpu3";
566                                                         mediatek,infracfg = <&infracfg>;
567                                                         #power-domain-cells = <0>;
568                                                 };
569                                         };
570                                 };
571                         };
572                 };
573
574                 watchdog: watchdog@10007000 {
575                         compatible = "mediatek,mt8183-wdt";
576                         reg = <0 0x10007000 0 0x100>;
577                         #reset-cells = <1>;
578                 };
579
580                 apmixedsys: syscon@1000c000 {
581                         compatible = "mediatek,mt8183-apmixedsys", "syscon";
582                         reg = <0 0x1000c000 0 0x1000>;
583                         #clock-cells = <1>;
584                 };
585
586                 pwrap: pwrap@1000d000 {
587                         compatible = "mediatek,mt8183-pwrap";
588                         reg = <0 0x1000d000 0 0x1000>;
589                         reg-names = "pwrap";
590                         interrupts = <GIC_SPI 185 IRQ_TYPE_LEVEL_HIGH>;
591                         clocks = <&topckgen CLK_TOP_MUX_PMICSPI>,
592                                  <&infracfg CLK_INFRA_PMIC_AP>;
593                         clock-names = "spi", "wrap";
594                 };
595
596                 scp: scp@10500000 {
597                         compatible = "mediatek,mt8183-scp";
598                         reg = <0 0x10500000 0 0x80000>,
599                               <0 0x105c0000 0 0x19080>;
600                         reg-names = "sram", "cfg";
601                         interrupts = <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>;
602                         clocks = <&infracfg CLK_INFRA_SCPSYS>;
603                         clock-names = "main";
604                         memory-region = <&scp_mem_reserved>;
605                         status = "disabled";
606                 };
607
608                 systimer: timer@10017000 {
609                         compatible = "mediatek,mt8183-timer",
610                                      "mediatek,mt6765-timer";
611                         reg = <0 0x10017000 0 0x1000>;
612                         interrupts = <GIC_SPI 200 IRQ_TYPE_LEVEL_HIGH>;
613                         clocks = <&topckgen CLK_TOP_CLK13M>;
614                         clock-names = "clk13m";
615                 };
616
617                 iommu: iommu@10205000 {
618                         compatible = "mediatek,mt8183-m4u";
619                         reg = <0 0x10205000 0 0x1000>;
620                         interrupts = <GIC_SPI 166 IRQ_TYPE_LEVEL_LOW>;
621                         mediatek,larbs = <&larb0 &larb1 &larb2 &larb3
622                                           &larb4 &larb5 &larb6>;
623                         #iommu-cells = <1>;
624                 };
625
626                 gce: mailbox@10238000 {
627                         compatible = "mediatek,mt8183-gce";
628                         reg = <0 0x10238000 0 0x4000>;
629                         interrupts = <GIC_SPI 162 IRQ_TYPE_LEVEL_LOW>;
630                         #mbox-cells = <2>;
631                         clocks = <&infracfg CLK_INFRA_GCE>;
632                         clock-names = "gce";
633                 };
634
635                 auxadc: auxadc@11001000 {
636                         compatible = "mediatek,mt8183-auxadc",
637                                      "mediatek,mt8173-auxadc";
638                         reg = <0 0x11001000 0 0x1000>;
639                         clocks = <&infracfg CLK_INFRA_AUXADC>;
640                         clock-names = "main";
641                         #io-channel-cells = <1>;
642                         status = "disabled";
643                 };
644
645                 uart0: serial@11002000 {
646                         compatible = "mediatek,mt8183-uart",
647                                      "mediatek,mt6577-uart";
648                         reg = <0 0x11002000 0 0x1000>;
649                         interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_LOW>;
650                         clocks = <&clk26m>, <&infracfg CLK_INFRA_UART0>;
651                         clock-names = "baud", "bus";
652                         status = "disabled";
653                 };
654
655                 uart1: serial@11003000 {
656                         compatible = "mediatek,mt8183-uart",
657                                      "mediatek,mt6577-uart";
658                         reg = <0 0x11003000 0 0x1000>;
659                         interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_LOW>;
660                         clocks = <&clk26m>, <&infracfg CLK_INFRA_UART1>;
661                         clock-names = "baud", "bus";
662                         status = "disabled";
663                 };
664
665                 uart2: serial@11004000 {
666                         compatible = "mediatek,mt8183-uart",
667                                      "mediatek,mt6577-uart";
668                         reg = <0 0x11004000 0 0x1000>;
669                         interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_LOW>;
670                         clocks = <&clk26m>, <&infracfg CLK_INFRA_UART2>;
671                         clock-names = "baud", "bus";
672                         status = "disabled";
673                 };
674
675                 i2c6: i2c@11005000 {
676                         compatible = "mediatek,mt8183-i2c";
677                         reg = <0 0x11005000 0 0x1000>,
678                               <0 0x11000600 0 0x80>;
679                         interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_LOW>;
680                         clocks = <&infracfg CLK_INFRA_I2C6>,
681                                  <&infracfg CLK_INFRA_AP_DMA>;
682                         clock-names = "main", "dma";
683                         clock-div = <1>;
684                         #address-cells = <1>;
685                         #size-cells = <0>;
686                         status = "disabled";
687                 };
688
689                 i2c0: i2c@11007000 {
690                         compatible = "mediatek,mt8183-i2c";
691                         reg = <0 0x11007000 0 0x1000>,
692                               <0 0x11000080 0 0x80>;
693                         interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_LOW>;
694                         clocks = <&infracfg CLK_INFRA_I2C0>,
695                                  <&infracfg CLK_INFRA_AP_DMA>;
696                         clock-names = "main", "dma";
697                         clock-div = <1>;
698                         #address-cells = <1>;
699                         #size-cells = <0>;
700                         status = "disabled";
701                 };
702
703                 i2c4: i2c@11008000 {
704                         compatible = "mediatek,mt8183-i2c";
705                         reg = <0 0x11008000 0 0x1000>,
706                               <0 0x11000100 0 0x80>;
707                         interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_LOW>;
708                         clocks = <&infracfg CLK_INFRA_I2C1>,
709                                  <&infracfg CLK_INFRA_AP_DMA>,
710                                  <&infracfg CLK_INFRA_I2C1_ARBITER>;
711                         clock-names = "main", "dma","arb";
712                         clock-div = <1>;
713                         #address-cells = <1>;
714                         #size-cells = <0>;
715                         status = "disabled";
716                 };
717
718                 i2c2: i2c@11009000 {
719                         compatible = "mediatek,mt8183-i2c";
720                         reg = <0 0x11009000 0 0x1000>,
721                               <0 0x11000280 0 0x80>;
722                         interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_LOW>;
723                         clocks = <&infracfg CLK_INFRA_I2C2>,
724                                  <&infracfg CLK_INFRA_AP_DMA>,
725                                  <&infracfg CLK_INFRA_I2C2_ARBITER>;
726                         clock-names = "main", "dma", "arb";
727                         clock-div = <1>;
728                         #address-cells = <1>;
729                         #size-cells = <0>;
730                         status = "disabled";
731                 };
732
733                 spi0: spi@1100a000 {
734                         compatible = "mediatek,mt8183-spi";
735                         #address-cells = <1>;
736                         #size-cells = <0>;
737                         reg = <0 0x1100a000 0 0x1000>;
738                         interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_LOW>;
739                         clocks = <&topckgen CLK_TOP_SYSPLL_D5_D2>,
740                                  <&topckgen CLK_TOP_MUX_SPI>,
741                                  <&infracfg CLK_INFRA_SPI0>;
742                         clock-names = "parent-clk", "sel-clk", "spi-clk";
743                         status = "disabled";
744                 };
745
746                 thermal: thermal@1100b000 {
747                         #thermal-sensor-cells = <1>;
748                         compatible = "mediatek,mt8183-thermal";
749                         reg = <0 0x1100b000 0 0x1000>;
750                         clocks = <&infracfg CLK_INFRA_THERM>,
751                                  <&infracfg CLK_INFRA_AUXADC>;
752                         clock-names = "therm", "auxadc";
753                         resets = <&infracfg  MT8183_INFRACFG_AO_THERM_SW_RST>;
754                         interrupts = <0 76 IRQ_TYPE_LEVEL_LOW>;
755                         mediatek,auxadc = <&auxadc>;
756                         mediatek,apmixedsys = <&apmixedsys>;
757                         nvmem-cells = <&thermal_calibration>;
758                         nvmem-cell-names = "calibration-data";
759                 };
760
761                 thermal_zones: thermal-zones {
762                         cpu_thermal: cpu_thermal {
763                                 polling-delay-passive = <100>;
764                                 polling-delay = <500>;
765                                 thermal-sensors = <&thermal 0>;
766                                 sustainable-power = <5000>;
767
768                                 trips {
769                                         threshold: trip-point0 {
770                                                 temperature = <68000>;
771                                                 hysteresis = <2000>;
772                                                 type = "passive";
773                                         };
774
775                                         target: trip-point1 {
776                                                 temperature = <80000>;
777                                                 hysteresis = <2000>;
778                                                 type = "passive";
779                                         };
780
781                                         cpu_crit: cpu-crit {
782                                                 temperature = <115000>;
783                                                 hysteresis = <2000>;
784                                                 type = "critical";
785                                         };
786                                 };
787
788                                 cooling-maps {
789                                         map0 {
790                                                 trip = <&target>;
791                                                 cooling-device = <&cpu0
792                                                         THERMAL_NO_LIMIT
793                                                         THERMAL_NO_LIMIT>,
794                                                                  <&cpu1
795                                                         THERMAL_NO_LIMIT
796                                                         THERMAL_NO_LIMIT>,
797                                                                  <&cpu2
798                                                         THERMAL_NO_LIMIT
799                                                         THERMAL_NO_LIMIT>,
800                                                                  <&cpu3
801                                                         THERMAL_NO_LIMIT
802                                                         THERMAL_NO_LIMIT>;
803                                                 contribution = <3072>;
804                                         };
805                                         map1 {
806                                                 trip = <&target>;
807                                                 cooling-device = <&cpu4
808                                                         THERMAL_NO_LIMIT
809                                                         THERMAL_NO_LIMIT>,
810                                                                  <&cpu5
811                                                         THERMAL_NO_LIMIT
812                                                         THERMAL_NO_LIMIT>,
813                                                                  <&cpu6
814                                                         THERMAL_NO_LIMIT
815                                                         THERMAL_NO_LIMIT>,
816                                                                  <&cpu7
817                                                         THERMAL_NO_LIMIT
818                                                         THERMAL_NO_LIMIT>;
819                                                 contribution = <1024>;
820                                         };
821                                 };
822                         };
823
824                         /* The tzts1 ~ tzts6 don't need to polling */
825                         /* The tzts1 ~ tzts6 don't need to thermal throttle */
826
827                         tzts1: tzts1 {
828                                 polling-delay-passive = <0>;
829                                 polling-delay = <0>;
830                                 thermal-sensors = <&thermal 1>;
831                                 sustainable-power = <5000>;
832                                 trips {};
833                                 cooling-maps {};
834                         };
835
836                         tzts2: tzts2 {
837                                 polling-delay-passive = <0>;
838                                 polling-delay = <0>;
839                                 thermal-sensors = <&thermal 2>;
840                                 sustainable-power = <5000>;
841                                 trips {};
842                                 cooling-maps {};
843                         };
844
845                         tzts3: tzts3 {
846                                 polling-delay-passive = <0>;
847                                 polling-delay = <0>;
848                                 thermal-sensors = <&thermal 3>;
849                                 sustainable-power = <5000>;
850                                 trips {};
851                                 cooling-maps {};
852                         };
853
854                         tzts4: tzts4 {
855                                 polling-delay-passive = <0>;
856                                 polling-delay = <0>;
857                                 thermal-sensors = <&thermal 4>;
858                                 sustainable-power = <5000>;
859                                 trips {};
860                                 cooling-maps {};
861                         };
862
863                         tzts5: tzts5 {
864                                 polling-delay-passive = <0>;
865                                 polling-delay = <0>;
866                                 thermal-sensors = <&thermal 5>;
867                                 sustainable-power = <5000>;
868                                 trips {};
869                                 cooling-maps {};
870                         };
871
872                         tztsABB: tztsABB {
873                                 polling-delay-passive = <0>;
874                                 polling-delay = <0>;
875                                 thermal-sensors = <&thermal 6>;
876                                 sustainable-power = <5000>;
877                                 trips {};
878                                 cooling-maps {};
879                         };
880                 };
881
882                 pwm0: pwm@1100e000 {
883                         compatible = "mediatek,mt8183-disp-pwm";
884                         reg = <0 0x1100e000 0 0x1000>;
885                         interrupts = <GIC_SPI 128 IRQ_TYPE_LEVEL_LOW>;
886                         power-domains = <&spm MT8183_POWER_DOMAIN_DISP>;
887                         #pwm-cells = <2>;
888                         clocks = <&topckgen CLK_TOP_MUX_DISP_PWM>,
889                                         <&infracfg CLK_INFRA_DISP_PWM>;
890                         clock-names = "main", "mm";
891                 };
892
893                 pwm1: pwm@11006000 {
894                         compatible = "mediatek,mt8183-pwm";
895                         reg = <0 0x11006000 0 0x1000>;
896                         #pwm-cells = <2>;
897                         clocks = <&infracfg CLK_INFRA_PWM>,
898                                  <&infracfg CLK_INFRA_PWM_HCLK>,
899                                  <&infracfg CLK_INFRA_PWM1>,
900                                  <&infracfg CLK_INFRA_PWM2>,
901                                  <&infracfg CLK_INFRA_PWM3>,
902                                  <&infracfg CLK_INFRA_PWM4>;
903                         clock-names = "top", "main", "pwm1", "pwm2", "pwm3",
904                                       "pwm4";
905                 };
906
907                 i2c3: i2c@1100f000 {
908                         compatible = "mediatek,mt8183-i2c";
909                         reg = <0 0x1100f000 0 0x1000>,
910                               <0 0x11000400 0 0x80>;
911                         interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_LOW>;
912                         clocks = <&infracfg CLK_INFRA_I2C3>,
913                                  <&infracfg CLK_INFRA_AP_DMA>;
914                         clock-names = "main", "dma";
915                         clock-div = <1>;
916                         #address-cells = <1>;
917                         #size-cells = <0>;
918                         status = "disabled";
919                 };
920
921                 spi1: spi@11010000 {
922                         compatible = "mediatek,mt8183-spi";
923                         #address-cells = <1>;
924                         #size-cells = <0>;
925                         reg = <0 0x11010000 0 0x1000>;
926                         interrupts = <GIC_SPI 124 IRQ_TYPE_LEVEL_LOW>;
927                         clocks = <&topckgen CLK_TOP_SYSPLL_D5_D2>,
928                                  <&topckgen CLK_TOP_MUX_SPI>,
929                                  <&infracfg CLK_INFRA_SPI1>;
930                         clock-names = "parent-clk", "sel-clk", "spi-clk";
931                         status = "disabled";
932                 };
933
934                 i2c1: i2c@11011000 {
935                         compatible = "mediatek,mt8183-i2c";
936                         reg = <0 0x11011000 0 0x1000>,
937                               <0 0x11000480 0 0x80>;
938                         interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_LOW>;
939                         clocks = <&infracfg CLK_INFRA_I2C4>,
940                                  <&infracfg CLK_INFRA_AP_DMA>;
941                         clock-names = "main", "dma";
942                         clock-div = <1>;
943                         #address-cells = <1>;
944                         #size-cells = <0>;
945                         status = "disabled";
946                 };
947
948                 spi2: spi@11012000 {
949                         compatible = "mediatek,mt8183-spi";
950                         #address-cells = <1>;
951                         #size-cells = <0>;
952                         reg = <0 0x11012000 0 0x1000>;
953                         interrupts = <GIC_SPI 129 IRQ_TYPE_LEVEL_LOW>;
954                         clocks = <&topckgen CLK_TOP_SYSPLL_D5_D2>,
955                                  <&topckgen CLK_TOP_MUX_SPI>,
956                                  <&infracfg CLK_INFRA_SPI2>;
957                         clock-names = "parent-clk", "sel-clk", "spi-clk";
958                         status = "disabled";
959                 };
960
961                 spi3: spi@11013000 {
962                         compatible = "mediatek,mt8183-spi";
963                         #address-cells = <1>;
964                         #size-cells = <0>;
965                         reg = <0 0x11013000 0 0x1000>;
966                         interrupts = <GIC_SPI 130 IRQ_TYPE_LEVEL_LOW>;
967                         clocks = <&topckgen CLK_TOP_SYSPLL_D5_D2>,
968                                  <&topckgen CLK_TOP_MUX_SPI>,
969                                  <&infracfg CLK_INFRA_SPI3>;
970                         clock-names = "parent-clk", "sel-clk", "spi-clk";
971                         status = "disabled";
972                 };
973
974                 i2c9: i2c@11014000 {
975                         compatible = "mediatek,mt8183-i2c";
976                         reg = <0 0x11014000 0 0x1000>,
977                               <0 0x11000180 0 0x80>;
978                         interrupts = <GIC_SPI 131 IRQ_TYPE_LEVEL_LOW>;
979                         clocks = <&infracfg CLK_INFRA_I2C1_IMM>,
980                                  <&infracfg CLK_INFRA_AP_DMA>,
981                                  <&infracfg CLK_INFRA_I2C1_ARBITER>;
982                         clock-names = "main", "dma", "arb";
983                         clock-div = <1>;
984                         #address-cells = <1>;
985                         #size-cells = <0>;
986                         status = "disabled";
987                 };
988
989                 i2c10: i2c@11015000 {
990                         compatible = "mediatek,mt8183-i2c";
991                         reg = <0 0x11015000 0 0x1000>,
992                               <0 0x11000300 0 0x80>;
993                         interrupts = <GIC_SPI 132 IRQ_TYPE_LEVEL_LOW>;
994                         clocks = <&infracfg CLK_INFRA_I2C2_IMM>,
995                                  <&infracfg CLK_INFRA_AP_DMA>,
996                                  <&infracfg CLK_INFRA_I2C2_ARBITER>;
997                         clock-names = "main", "dma", "arb";
998                         clock-div = <1>;
999                         #address-cells = <1>;
1000                         #size-cells = <0>;
1001                         status = "disabled";
1002                 };
1003
1004                 i2c5: i2c@11016000 {
1005                         compatible = "mediatek,mt8183-i2c";
1006                         reg = <0 0x11016000 0 0x1000>,
1007                               <0 0x11000500 0 0x80>;
1008                         interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_LOW>;
1009                         clocks = <&infracfg CLK_INFRA_I2C5>,
1010                                  <&infracfg CLK_INFRA_AP_DMA>,
1011                                  <&infracfg CLK_INFRA_I2C5_ARBITER>;
1012                         clock-names = "main", "dma", "arb";
1013                         clock-div = <1>;
1014                         #address-cells = <1>;
1015                         #size-cells = <0>;
1016                         status = "disabled";
1017                 };
1018
1019                 i2c11: i2c@11017000 {
1020                         compatible = "mediatek,mt8183-i2c";
1021                         reg = <0 0x11017000 0 0x1000>,
1022                               <0 0x11000580 0 0x80>;
1023                         interrupts = <GIC_SPI 133 IRQ_TYPE_LEVEL_LOW>;
1024                         clocks = <&infracfg CLK_INFRA_I2C5_IMM>,
1025                                  <&infracfg CLK_INFRA_AP_DMA>,
1026                                  <&infracfg CLK_INFRA_I2C5_ARBITER>;
1027                         clock-names = "main", "dma", "arb";
1028                         clock-div = <1>;
1029                         #address-cells = <1>;
1030                         #size-cells = <0>;
1031                         status = "disabled";
1032                 };
1033
1034                 spi4: spi@11018000 {
1035                         compatible = "mediatek,mt8183-spi";
1036                         #address-cells = <1>;
1037                         #size-cells = <0>;
1038                         reg = <0 0x11018000 0 0x1000>;
1039                         interrupts = <GIC_SPI 134 IRQ_TYPE_LEVEL_LOW>;
1040                         clocks = <&topckgen CLK_TOP_SYSPLL_D5_D2>,
1041                                  <&topckgen CLK_TOP_MUX_SPI>,
1042                                  <&infracfg CLK_INFRA_SPI4>;
1043                         clock-names = "parent-clk", "sel-clk", "spi-clk";
1044                         status = "disabled";
1045                 };
1046
1047                 spi5: spi@11019000 {
1048                         compatible = "mediatek,mt8183-spi";
1049                         #address-cells = <1>;
1050                         #size-cells = <0>;
1051                         reg = <0 0x11019000 0 0x1000>;
1052                         interrupts = <GIC_SPI 135 IRQ_TYPE_LEVEL_LOW>;
1053                         clocks = <&topckgen CLK_TOP_SYSPLL_D5_D2>,
1054                                  <&topckgen CLK_TOP_MUX_SPI>,
1055                                  <&infracfg CLK_INFRA_SPI5>;
1056                         clock-names = "parent-clk", "sel-clk", "spi-clk";
1057                         status = "disabled";
1058                 };
1059
1060                 i2c7: i2c@1101a000 {
1061                         compatible = "mediatek,mt8183-i2c";
1062                         reg = <0 0x1101a000 0 0x1000>,
1063                               <0 0x11000680 0 0x80>;
1064                         interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_LOW>;
1065                         clocks = <&infracfg CLK_INFRA_I2C7>,
1066                                  <&infracfg CLK_INFRA_AP_DMA>;
1067                         clock-names = "main", "dma";
1068                         clock-div = <1>;
1069                         #address-cells = <1>;
1070                         #size-cells = <0>;
1071                         status = "disabled";
1072                 };
1073
1074                 i2c8: i2c@1101b000 {
1075                         compatible = "mediatek,mt8183-i2c";
1076                         reg = <0 0x1101b000 0 0x1000>,
1077                               <0 0x11000700 0 0x80>;
1078                         interrupts = <GIC_SPI 89 IRQ_TYPE_LEVEL_LOW>;
1079                         clocks = <&infracfg CLK_INFRA_I2C8>,
1080                                  <&infracfg CLK_INFRA_AP_DMA>;
1081                         clock-names = "main", "dma";
1082                         clock-div = <1>;
1083                         #address-cells = <1>;
1084                         #size-cells = <0>;
1085                         status = "disabled";
1086                 };
1087
1088                 ssusb: usb@11201000 {
1089                         compatible ="mediatek,mt8183-mtu3", "mediatek,mtu3";
1090                         reg = <0 0x11201000 0 0x2e00>,
1091                               <0 0x11203e00 0 0x0100>;
1092                         reg-names = "mac", "ippc";
1093                         interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_LOW>;
1094                         phys = <&u2port0 PHY_TYPE_USB2>,
1095                                <&u3port0 PHY_TYPE_USB3>;
1096                         clocks = <&infracfg CLK_INFRA_UNIPRO_SCK>,
1097                                  <&infracfg CLK_INFRA_USB>;
1098                         clock-names = "sys_ck", "ref_ck";
1099                         mediatek,syscon-wakeup = <&pericfg 0x420 101>;
1100                         #address-cells = <2>;
1101                         #size-cells = <2>;
1102                         ranges;
1103                         status = "disabled";
1104
1105                         usb_host: usb@11200000 {
1106                                 compatible = "mediatek,mt8183-xhci",
1107                                              "mediatek,mtk-xhci";
1108                                 reg = <0 0x11200000 0 0x1000>;
1109                                 reg-names = "mac";
1110                                 interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_LOW>;
1111                                 clocks = <&infracfg CLK_INFRA_UNIPRO_SCK>,
1112                                          <&infracfg CLK_INFRA_USB>;
1113                                 clock-names = "sys_ck", "ref_ck";
1114                                 status = "disabled";
1115                         };
1116                 };
1117
1118                 audiosys: syscon@11220000 {
1119                         compatible = "mediatek,mt8183-audiosys", "syscon";
1120                         reg = <0 0x11220000 0 0x1000>;
1121                         #clock-cells = <1>;
1122                 };
1123
1124                 mmc0: mmc@11230000 {
1125                         compatible = "mediatek,mt8183-mmc";
1126                         reg = <0 0x11230000 0 0x1000>,
1127                               <0 0x11f50000 0 0x1000>;
1128                         interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_LOW>;
1129                         clocks = <&topckgen CLK_TOP_MUX_MSDC50_0>,
1130                                  <&infracfg CLK_INFRA_MSDC0>,
1131                                  <&infracfg CLK_INFRA_MSDC0_SCK>;
1132                         clock-names = "source", "hclk", "source_cg";
1133                         status = "disabled";
1134                 };
1135
1136                 mmc1: mmc@11240000 {
1137                         compatible = "mediatek,mt8183-mmc";
1138                         reg = <0 0x11240000 0 0x1000>,
1139                               <0 0x11e10000 0 0x1000>;
1140                         interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_LOW>;
1141                         clocks = <&topckgen CLK_TOP_MUX_MSDC30_1>,
1142                                  <&infracfg CLK_INFRA_MSDC1>,
1143                                  <&infracfg CLK_INFRA_MSDC1_SCK>;
1144                         clock-names = "source", "hclk", "source_cg";
1145                         status = "disabled";
1146                 };
1147
1148                 mipi_tx0: dsi-phy@11e50000 {
1149                         compatible = "mediatek,mt8183-mipi-tx";
1150                         reg = <0 0x11e50000 0 0x1000>;
1151                         clocks = <&apmixedsys CLK_APMIXED_MIPID0_26M>;
1152                         #clock-cells = <0>;
1153                         #phy-cells = <0>;
1154                         clock-output-names = "mipi_tx0_pll";
1155                         nvmem-cells = <&mipi_tx_calibration>;
1156                         nvmem-cell-names = "calibration-data";
1157                 };
1158
1159                 efuse: efuse@11f10000 {
1160                         compatible = "mediatek,mt8183-efuse",
1161                                      "mediatek,efuse";
1162                         reg = <0 0x11f10000 0 0x1000>;
1163                         #address-cells = <1>;
1164                         #size-cells = <1>;
1165                         thermal_calibration: calib@180 {
1166                                 reg = <0x180 0xc>;
1167                         };
1168
1169                         mipi_tx_calibration: calib@190 {
1170                                 reg = <0x190 0xc>;
1171                         };
1172                 };
1173
1174                 u3phy: t-phy@11f40000 {
1175                         compatible = "mediatek,mt8183-tphy",
1176                                      "mediatek,generic-tphy-v2";
1177                         #address-cells = <1>;
1178                         #size-cells = <1>;
1179                         ranges = <0 0 0x11f40000 0x1000>;
1180                         status = "okay";
1181
1182                         u2port0: usb-phy@0 {
1183                                 reg = <0x0 0x700>;
1184                                 clocks = <&clk26m>;
1185                                 clock-names = "ref";
1186                                 #phy-cells = <1>;
1187                                 mediatek,discth = <15>;
1188                                 status = "okay";
1189                         };
1190
1191                         u3port0: usb-phy@700 {
1192                                 reg = <0x0700 0x900>;
1193                                 clocks = <&clk26m>;
1194                                 clock-names = "ref";
1195                                 #phy-cells = <1>;
1196                                 status = "okay";
1197                         };
1198                 };
1199
1200                 mfgcfg: syscon@13000000 {
1201                         compatible = "mediatek,mt8183-mfgcfg", "syscon";
1202                         reg = <0 0x13000000 0 0x1000>;
1203                         #clock-cells = <1>;
1204                 };
1205
1206                 gpu: gpu@13040000 {
1207                         compatible = "mediatek,mt8183-mali", "arm,mali-bifrost";
1208                         reg = <0 0x13040000 0 0x4000>;
1209                         interrupts =
1210                                 <GIC_SPI 280 IRQ_TYPE_LEVEL_LOW>,
1211                                 <GIC_SPI 279 IRQ_TYPE_LEVEL_LOW>,
1212                                 <GIC_SPI 278 IRQ_TYPE_LEVEL_LOW>;
1213                         interrupt-names = "job", "mmu", "gpu";
1214
1215                         clocks = <&topckgen CLK_TOP_MFGPLL_CK>;
1216
1217                         power-domains =
1218                                 <&spm MT8183_POWER_DOMAIN_MFG_CORE0>,
1219                                 <&spm MT8183_POWER_DOMAIN_MFG_CORE1>,
1220                                 <&spm MT8183_POWER_DOMAIN_MFG_2D>;
1221                         power-domain-names = "core0", "core1", "core2";
1222
1223                         operating-points-v2 = <&gpu_opp_table>;
1224                 };
1225
1226                 mmsys: syscon@14000000 {
1227                         compatible = "mediatek,mt8183-mmsys", "syscon";
1228                         reg = <0 0x14000000 0 0x1000>;
1229                         #clock-cells = <1>;
1230                         mboxes = <&gce 0 CMDQ_THR_PRIO_HIGHEST>,
1231                                  <&gce 1 CMDQ_THR_PRIO_HIGHEST>;
1232                         mediatek,gce-client-reg = <&gce SUBSYS_1400XXXX 0 0x1000>;
1233                 };
1234
1235                 ovl0: ovl@14008000 {
1236                         compatible = "mediatek,mt8183-disp-ovl";
1237                         reg = <0 0x14008000 0 0x1000>;
1238                         interrupts = <GIC_SPI 225 IRQ_TYPE_LEVEL_LOW>;
1239                         power-domains = <&spm MT8183_POWER_DOMAIN_DISP>;
1240                         clocks = <&mmsys CLK_MM_DISP_OVL0>;
1241                         iommus = <&iommu M4U_PORT_DISP_OVL0>;
1242                         mediatek,larb = <&larb0>;
1243                         mediatek,gce-client-reg = <&gce SUBSYS_1400XXXX 0x8000 0x1000>;
1244                 };
1245
1246                 ovl_2l0: ovl@14009000 {
1247                         compatible = "mediatek,mt8183-disp-ovl-2l";
1248                         reg = <0 0x14009000 0 0x1000>;
1249                         interrupts = <GIC_SPI 226 IRQ_TYPE_LEVEL_LOW>;
1250                         power-domains = <&spm MT8183_POWER_DOMAIN_DISP>;
1251                         clocks = <&mmsys CLK_MM_DISP_OVL0_2L>;
1252                         iommus = <&iommu M4U_PORT_DISP_2L_OVL0_LARB0>;
1253                         mediatek,larb = <&larb0>;
1254                         mediatek,gce-client-reg = <&gce SUBSYS_1400XXXX 0x9000 0x1000>;
1255                 };
1256
1257                 ovl_2l1: ovl@1400a000 {
1258                         compatible = "mediatek,mt8183-disp-ovl-2l";
1259                         reg = <0 0x1400a000 0 0x1000>;
1260                         interrupts = <GIC_SPI 227 IRQ_TYPE_LEVEL_LOW>;
1261                         power-domains = <&spm MT8183_POWER_DOMAIN_DISP>;
1262                         clocks = <&mmsys CLK_MM_DISP_OVL1_2L>;
1263                         iommus = <&iommu M4U_PORT_DISP_2L_OVL1_LARB0>;
1264                         mediatek,larb = <&larb0>;
1265                         mediatek,gce-client-reg = <&gce SUBSYS_1400XXXX 0xa000 0x1000>;
1266                 };
1267
1268                 rdma0: rdma@1400b000 {
1269                         compatible = "mediatek,mt8183-disp-rdma";
1270                         reg = <0 0x1400b000 0 0x1000>;
1271                         interrupts = <GIC_SPI 228 IRQ_TYPE_LEVEL_LOW>;
1272                         power-domains = <&spm MT8183_POWER_DOMAIN_DISP>;
1273                         clocks = <&mmsys CLK_MM_DISP_RDMA0>;
1274                         iommus = <&iommu M4U_PORT_DISP_RDMA0>;
1275                         mediatek,larb = <&larb0>;
1276                         mediatek,rdma-fifo-size = <5120>;
1277                         mediatek,gce-client-reg = <&gce SUBSYS_1400XXXX 0xb000 0x1000>;
1278                 };
1279
1280                 rdma1: rdma@1400c000 {
1281                         compatible = "mediatek,mt8183-disp-rdma";
1282                         reg = <0 0x1400c000 0 0x1000>;
1283                         interrupts = <GIC_SPI 229 IRQ_TYPE_LEVEL_LOW>;
1284                         power-domains = <&spm MT8183_POWER_DOMAIN_DISP>;
1285                         clocks = <&mmsys CLK_MM_DISP_RDMA1>;
1286                         iommus = <&iommu M4U_PORT_DISP_RDMA1>;
1287                         mediatek,larb = <&larb0>;
1288                         mediatek,rdma-fifo-size = <2048>;
1289                         mediatek,gce-client-reg = <&gce SUBSYS_1400XXXX 0xc000 0x1000>;
1290                 };
1291
1292                 color0: color@1400e000 {
1293                         compatible = "mediatek,mt8183-disp-color",
1294                                      "mediatek,mt8173-disp-color";
1295                         reg = <0 0x1400e000 0 0x1000>;
1296                         interrupts = <GIC_SPI 231 IRQ_TYPE_LEVEL_LOW>;
1297                         power-domains = <&spm MT8183_POWER_DOMAIN_DISP>;
1298                         clocks = <&mmsys CLK_MM_DISP_COLOR0>;
1299                         mediatek,gce-client-reg = <&gce SUBSYS_1400XXXX 0xe000 0x1000>;
1300                 };
1301
1302                 ccorr0: ccorr@1400f000 {
1303                         compatible = "mediatek,mt8183-disp-ccorr";
1304                         reg = <0 0x1400f000 0 0x1000>;
1305                         interrupts = <GIC_SPI 232 IRQ_TYPE_LEVEL_LOW>;
1306                         power-domains = <&spm MT8183_POWER_DOMAIN_DISP>;
1307                         clocks = <&mmsys CLK_MM_DISP_CCORR0>;
1308                         mediatek,gce-client-reg = <&gce SUBSYS_1400XXXX 0xf000 0x1000>;
1309                 };
1310
1311                 aal0: aal@14010000 {
1312                         compatible = "mediatek,mt8183-disp-aal",
1313                                      "mediatek,mt8173-disp-aal";
1314                         reg = <0 0x14010000 0 0x1000>;
1315                         interrupts = <GIC_SPI 233 IRQ_TYPE_LEVEL_LOW>;
1316                         power-domains = <&spm MT8183_POWER_DOMAIN_DISP>;
1317                         clocks = <&mmsys CLK_MM_DISP_AAL0>;
1318                         mediatek,gce-client-reg = <&gce SUBSYS_1401XXXX 0 0x1000>;
1319                 };
1320
1321                 gamma0: gamma@14011000 {
1322                         compatible = "mediatek,mt8183-disp-gamma";
1323                         reg = <0 0x14011000 0 0x1000>;
1324                         interrupts = <GIC_SPI 234 IRQ_TYPE_LEVEL_LOW>;
1325                         power-domains = <&spm MT8183_POWER_DOMAIN_DISP>;
1326                         clocks = <&mmsys CLK_MM_DISP_GAMMA0>;
1327                         mediatek,gce-client-reg = <&gce SUBSYS_1401XXXX 0x1000 0x1000>;
1328                 };
1329
1330                 dither0: dither@14012000 {
1331                         compatible = "mediatek,mt8183-disp-dither";
1332                         reg = <0 0x14012000 0 0x1000>;
1333                         interrupts = <GIC_SPI 235 IRQ_TYPE_LEVEL_LOW>;
1334                         power-domains = <&spm MT8183_POWER_DOMAIN_DISP>;
1335                         clocks = <&mmsys CLK_MM_DISP_DITHER0>;
1336                         mediatek,gce-client-reg = <&gce SUBSYS_1401XXXX 0x2000 0x1000>;
1337                 };
1338
1339                 dsi0: dsi@14014000 {
1340                         compatible = "mediatek,mt8183-dsi";
1341                         reg = <0 0x14014000 0 0x1000>;
1342                         interrupts = <GIC_SPI 236 IRQ_TYPE_LEVEL_LOW>;
1343                         power-domains = <&spm MT8183_POWER_DOMAIN_DISP>;
1344                         mediatek,syscon-dsi = <&mmsys 0x140>;
1345                         clocks = <&mmsys CLK_MM_DSI0_MM>,
1346                                  <&mmsys CLK_MM_DSI0_IF>,
1347                                  <&mipi_tx0>;
1348                         clock-names = "engine", "digital", "hs";
1349                         phys = <&mipi_tx0>;
1350                         phy-names = "dphy";
1351                 };
1352
1353                 mutex: mutex@14016000 {
1354                         compatible = "mediatek,mt8183-disp-mutex";
1355                         reg = <0 0x14016000 0 0x1000>;
1356                         interrupts = <GIC_SPI 217 IRQ_TYPE_LEVEL_LOW>;
1357                         power-domains = <&spm MT8183_POWER_DOMAIN_DISP>;
1358                         mediatek,gce-events = <CMDQ_EVENT_MUTEX_STREAM_DONE0>,
1359                                               <CMDQ_EVENT_MUTEX_STREAM_DONE1>;
1360                 };
1361
1362                 larb0: larb@14017000 {
1363                         compatible = "mediatek,mt8183-smi-larb";
1364                         reg = <0 0x14017000 0 0x1000>;
1365                         mediatek,smi = <&smi_common>;
1366                         clocks = <&mmsys CLK_MM_SMI_LARB0>,
1367                                  <&mmsys CLK_MM_SMI_LARB0>;
1368                         power-domains = <&spm MT8183_POWER_DOMAIN_DISP>;
1369                         clock-names = "apb", "smi";
1370                 };
1371
1372                 smi_common: smi@14019000 {
1373                         compatible = "mediatek,mt8183-smi-common";
1374                         reg = <0 0x14019000 0 0x1000>;
1375                         clocks = <&mmsys CLK_MM_SMI_COMMON>,
1376                                  <&mmsys CLK_MM_SMI_COMMON>,
1377                                  <&mmsys CLK_MM_GALS_COMM0>,
1378                                  <&mmsys CLK_MM_GALS_COMM1>;
1379                         clock-names = "apb", "smi", "gals0", "gals1";
1380                         power-domains = <&spm MT8183_POWER_DOMAIN_DISP>;
1381                 };
1382
1383                 imgsys: syscon@15020000 {
1384                         compatible = "mediatek,mt8183-imgsys", "syscon";
1385                         reg = <0 0x15020000 0 0x1000>;
1386                         #clock-cells = <1>;
1387                 };
1388
1389                 larb5: larb@15021000 {
1390                         compatible = "mediatek,mt8183-smi-larb";
1391                         reg = <0 0x15021000 0 0x1000>;
1392                         mediatek,smi = <&smi_common>;
1393                         clocks = <&imgsys CLK_IMG_LARB5>, <&imgsys CLK_IMG_LARB5>,
1394                                  <&mmsys CLK_MM_GALS_IMG2MM>;
1395                         clock-names = "apb", "smi", "gals";
1396                         power-domains = <&spm MT8183_POWER_DOMAIN_ISP>;
1397                 };
1398
1399                 larb2: larb@1502f000 {
1400                         compatible = "mediatek,mt8183-smi-larb";
1401                         reg = <0 0x1502f000 0 0x1000>;
1402                         mediatek,smi = <&smi_common>;
1403                         clocks = <&imgsys CLK_IMG_LARB2>, <&imgsys CLK_IMG_LARB2>,
1404                                  <&mmsys CLK_MM_GALS_IPU2MM>;
1405                         clock-names = "apb", "smi", "gals";
1406                         power-domains = <&spm MT8183_POWER_DOMAIN_ISP>;
1407                 };
1408
1409                 vdecsys: syscon@16000000 {
1410                         compatible = "mediatek,mt8183-vdecsys", "syscon";
1411                         reg = <0 0x16000000 0 0x1000>;
1412                         #clock-cells = <1>;
1413                 };
1414
1415                 larb1: larb@16010000 {
1416                         compatible = "mediatek,mt8183-smi-larb";
1417                         reg = <0 0x16010000 0 0x1000>;
1418                         mediatek,smi = <&smi_common>;
1419                         clocks = <&vdecsys CLK_VDEC_VDEC>, <&vdecsys CLK_VDEC_LARB1>;
1420                         clock-names = "apb", "smi";
1421                         power-domains = <&spm MT8183_POWER_DOMAIN_VDEC>;
1422                 };
1423
1424                 vencsys: syscon@17000000 {
1425                         compatible = "mediatek,mt8183-vencsys", "syscon";
1426                         reg = <0 0x17000000 0 0x1000>;
1427                         #clock-cells = <1>;
1428                 };
1429
1430                 larb4: larb@17010000 {
1431                         compatible = "mediatek,mt8183-smi-larb";
1432                         reg = <0 0x17010000 0 0x1000>;
1433                         mediatek,smi = <&smi_common>;
1434                         clocks = <&vencsys CLK_VENC_LARB>,
1435                                  <&vencsys CLK_VENC_LARB>;
1436                         clock-names = "apb", "smi";
1437                         power-domains = <&spm MT8183_POWER_DOMAIN_VENC>;
1438                 };
1439
1440                 ipu_conn: syscon@19000000 {
1441                         compatible = "mediatek,mt8183-ipu_conn", "syscon";
1442                         reg = <0 0x19000000 0 0x1000>;
1443                         #clock-cells = <1>;
1444                 };
1445
1446                 ipu_adl: syscon@19010000 {
1447                         compatible = "mediatek,mt8183-ipu_adl", "syscon";
1448                         reg = <0 0x19010000 0 0x1000>;
1449                         #clock-cells = <1>;
1450                 };
1451
1452                 ipu_core0: syscon@19180000 {
1453                         compatible = "mediatek,mt8183-ipu_core0", "syscon";
1454                         reg = <0 0x19180000 0 0x1000>;
1455                         #clock-cells = <1>;
1456                 };
1457
1458                 ipu_core1: syscon@19280000 {
1459                         compatible = "mediatek,mt8183-ipu_core1", "syscon";
1460                         reg = <0 0x19280000 0 0x1000>;
1461                         #clock-cells = <1>;
1462                 };
1463
1464                 camsys: syscon@1a000000 {
1465                         compatible = "mediatek,mt8183-camsys", "syscon";
1466                         reg = <0 0x1a000000 0 0x1000>;
1467                         #clock-cells = <1>;
1468                 };
1469
1470                 larb6: larb@1a001000 {
1471                         compatible = "mediatek,mt8183-smi-larb";
1472                         reg = <0 0x1a001000 0 0x1000>;
1473                         mediatek,smi = <&smi_common>;
1474                         clocks = <&camsys CLK_CAM_LARB6>, <&camsys CLK_CAM_LARB6>,
1475                                  <&mmsys CLK_MM_GALS_CAM2MM>;
1476                         clock-names = "apb", "smi", "gals";
1477                         power-domains = <&spm MT8183_POWER_DOMAIN_CAM>;
1478                 };
1479
1480                 larb3: larb@1a002000 {
1481                         compatible = "mediatek,mt8183-smi-larb";
1482                         reg = <0 0x1a002000 0 0x1000>;
1483                         mediatek,smi = <&smi_common>;
1484                         clocks = <&camsys CLK_CAM_LARB3>, <&camsys CLK_CAM_LARB3>,
1485                                  <&mmsys CLK_MM_GALS_IPU12MM>;
1486                         clock-names = "apb", "smi", "gals";
1487                         power-domains = <&spm MT8183_POWER_DOMAIN_CAM>;
1488                 };
1489         };
1490 };