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