arm64: dts: qcom: sm8550: add TRNG node
[linux-modified.git] / arch / arm64 / boot / dts / mediatek / mt8365.dtsi
1 // SPDX-License-Identifier: (GPL-2.0 OR MIT)
2 /*
3  * (C) 2018 MediaTek Inc.
4  * Copyright (C) 2022 BayLibre SAS
5  * Fabien Parent <fparent@baylibre.com>
6  * Bernhard Rosenkränzer <bero@baylibre.com>
7  */
8 #include <dt-bindings/clock/mediatek,mt8365-clk.h>
9 #include <dt-bindings/interrupt-controller/arm-gic.h>
10 #include <dt-bindings/interrupt-controller/irq.h>
11 #include <dt-bindings/phy/phy.h>
12 #include <dt-bindings/power/mediatek,mt8365-power.h>
13
14 / {
15         compatible = "mediatek,mt8365";
16         interrupt-parent = <&sysirq>;
17         #address-cells = <2>;
18         #size-cells = <2>;
19
20         cpus {
21                 #address-cells = <1>;
22                 #size-cells = <0>;
23
24         cluster0_opp: opp-table-0 {
25                 compatible = "operating-points-v2";
26                 opp-shared;
27
28                 opp-850000000 {
29                         opp-hz = /bits/ 64 <850000000>;
30                         opp-microvolt = <650000>;
31                 };
32
33                 opp-918000000 {
34                         opp-hz = /bits/ 64 <918000000>;
35                         opp-microvolt = <668750>;
36                 };
37
38                 opp-987000000 {
39                         opp-hz = /bits/ 64 <987000000>;
40                         opp-microvolt = <687500>;
41                 };
42
43                 opp-1056000000 {
44                         opp-hz = /bits/ 64 <1056000000>;
45                         opp-microvolt = <706250>;
46                 };
47
48                 opp-1125000000 {
49                         opp-hz = /bits/ 64 <1125000000>;
50                         opp-microvolt = <725000>;
51                 };
52
53                 opp-1216000000 {
54                         opp-hz = /bits/ 64 <1216000000>;
55                         opp-microvolt = <750000>;
56                 };
57
58                 opp-1308000000 {
59                         opp-hz = /bits/ 64 <1308000000>;
60                         opp-microvolt = <775000>;
61                 };
62
63                 opp-1400000000 {
64                         opp-hz = /bits/ 64 <1400000000>;
65                         opp-microvolt = <800000>;
66                 };
67
68                 opp-1466000000 {
69                         opp-hz = /bits/ 64 <1466000000>;
70                         opp-microvolt = <825000>;
71                 };
72
73                 opp-1533000000 {
74                         opp-hz = /bits/ 64 <1533000000>;
75                         opp-microvolt = <850000>;
76                 };
77
78                 opp-1633000000 {
79                         opp-hz = /bits/ 64 <1633000000>;
80                         opp-microvolt = <887500>;
81                 };
82
83                 opp-1700000000 {
84                         opp-hz = /bits/ 64 <1700000000>;
85                         opp-microvolt = <912500>;
86                 };
87
88                 opp-1767000000 {
89                         opp-hz = /bits/ 64 <1767000000>;
90                         opp-microvolt = <937500>;
91                 };
92
93                 opp-1834000000 {
94                         opp-hz = /bits/ 64 <1834000000>;
95                         opp-microvolt = <962500>;
96                 };
97
98                 opp-1917000000 {
99                         opp-hz = /bits/ 64 <1917000000>;
100                         opp-microvolt = <993750>;
101                 };
102
103                 opp-2001000000 {
104                         opp-hz = /bits/ 64 <2001000000>;
105                         opp-microvolt = <1025000>;
106                 };
107         };
108
109                 cpu-map {
110                         cluster0 {
111                                 core0 {
112                                         cpu = <&cpu0>;
113                                 };
114                                 core1 {
115                                         cpu = <&cpu1>;
116                                 };
117                                 core2 {
118                                         cpu = <&cpu2>;
119                                 };
120                                 core3 {
121                                         cpu = <&cpu3>;
122                                 };
123                         };
124                 };
125
126                 cpu0: cpu@0 {
127                         device_type = "cpu";
128                         compatible = "arm,cortex-a53";
129                         reg = <0x0>;
130                         #cooling-cells = <2>;
131                         enable-method = "psci";
132                         cpu-idle-states = <&CPU_MCDI &CLUSTER_MCDI &CLUSTER_DPIDLE>;
133                         i-cache-size = <0x8000>;
134                         i-cache-line-size = <64>;
135                         i-cache-sets = <256>;
136                         d-cache-size = <0x8000>;
137                         d-cache-line-size = <64>;
138                         d-cache-sets = <256>;
139                         next-level-cache = <&l2>;
140                         clocks = <&mcucfg CLK_MCU_BUS_SEL>,
141                                  <&apmixedsys CLK_APMIXED_MAINPLL>;
142                         clock-names = "cpu", "intermediate";
143                         operating-points-v2 = <&cluster0_opp>;
144                 };
145
146                 cpu1: cpu@1 {
147                         device_type = "cpu";
148                         compatible = "arm,cortex-a53";
149                         reg = <0x1>;
150                         #cooling-cells = <2>;
151                         enable-method = "psci";
152                         cpu-idle-states = <&CPU_MCDI &CLUSTER_MCDI &CLUSTER_DPIDLE>;
153                         i-cache-size = <0x8000>;
154                         i-cache-line-size = <64>;
155                         i-cache-sets = <256>;
156                         d-cache-size = <0x8000>;
157                         d-cache-line-size = <64>;
158                         d-cache-sets = <256>;
159                         next-level-cache = <&l2>;
160                         clocks = <&mcucfg CLK_MCU_BUS_SEL>,
161                                  <&apmixedsys CLK_APMIXED_MAINPLL>;
162                         clock-names = "cpu", "intermediate", "armpll";
163                         operating-points-v2 = <&cluster0_opp>;
164                 };
165
166                 cpu2: cpu@2 {
167                         device_type = "cpu";
168                         compatible = "arm,cortex-a53";
169                         reg = <0x2>;
170                         #cooling-cells = <2>;
171                         enable-method = "psci";
172                         cpu-idle-states = <&CPU_MCDI &CLUSTER_MCDI &CLUSTER_DPIDLE>;
173                         i-cache-size = <0x8000>;
174                         i-cache-line-size = <64>;
175                         i-cache-sets = <256>;
176                         d-cache-size = <0x8000>;
177                         d-cache-line-size = <64>;
178                         d-cache-sets = <256>;
179                         next-level-cache = <&l2>;
180                         clocks = <&mcucfg CLK_MCU_BUS_SEL>,
181                                  <&apmixedsys CLK_APMIXED_MAINPLL>;
182                         clock-names = "cpu", "intermediate", "armpll";
183                         operating-points-v2 = <&cluster0_opp>;
184                 };
185
186                 cpu3: cpu@3 {
187                         device_type = "cpu";
188                         compatible = "arm,cortex-a53";
189                         reg = <0x3>;
190                         #cooling-cells = <2>;
191                         enable-method = "psci";
192                         cpu-idle-states = <&CPU_MCDI &CLUSTER_MCDI &CLUSTER_DPIDLE>;
193                         i-cache-size = <0x8000>;
194                         i-cache-line-size = <64>;
195                         i-cache-sets = <256>;
196                         d-cache-size = <0x8000>;
197                         d-cache-line-size = <64>;
198                         d-cache-sets = <256>;
199                         next-level-cache = <&l2>;
200                         clocks = <&mcucfg CLK_MCU_BUS_SEL>,
201                                  <&apmixedsys CLK_APMIXED_MAINPLL>;
202                         clock-names = "cpu", "intermediate", "armpll";
203                         operating-points-v2 = <&cluster0_opp>;
204                 };
205
206                 idle-states {
207                         entry-method = "psci";
208
209                         CPU_MCDI: cpu-mcdi {
210                                 compatible = "arm,idle-state";
211                                 local-timer-stop;
212                                 arm,psci-suspend-param = <0x00010001>;
213                                 entry-latency-us = <300>;
214                                 exit-latency-us = <200>;
215                                 min-residency-us = <1000>;
216                         };
217
218                         CLUSTER_MCDI: cluster-mcdi {
219                                 compatible = "arm,idle-state";
220                                 local-timer-stop;
221                                 arm,psci-suspend-param = <0x01010001>;
222                                 entry-latency-us = <350>;
223                                 exit-latency-us = <250>;
224                                 min-residency-us = <1200>;
225                         };
226
227                         CLUSTER_DPIDLE: cluster-dpidle {
228                                 compatible = "arm,idle-state";
229                                 local-timer-stop;
230                                 arm,psci-suspend-param = <0x01010004>;
231                                 entry-latency-us = <300>;
232                                 exit-latency-us = <800>;
233                                 min-residency-us = <3300>;
234                         };
235                 };
236
237                 l2: l2-cache {
238                         compatible = "cache";
239                         cache-level = <2>;
240                         cache-size = <0x80000>;
241                         cache-line-size = <64>;
242                         cache-sets = <512>;
243                         cache-unified;
244                 };
245         };
246
247         clk26m: oscillator {
248                 compatible = "fixed-clock";
249                 #clock-cells = <0>;
250                 clock-frequency = <26000000>;
251                 clock-output-names = "clk26m";
252         };
253
254         psci {
255                 compatible = "arm,psci-1.0";
256                 method = "smc";
257         };
258
259         soc {
260                 #address-cells = <2>;
261                 #size-cells = <2>;
262                 compatible = "simple-bus";
263                 ranges;
264
265                 gic: interrupt-controller@c000000 {
266                         compatible = "arm,gic-v3";
267                         #interrupt-cells = <3>;
268                         interrupt-parent = <&gic>;
269                         interrupt-controller;
270                         reg = <0 0x0c000000 0 0x10000>, /* GICD */
271                               <0 0x0c080000 0 0x80000>, /* GICR */
272                               <0 0x0c400000 0 0x2000>,  /* GICC */
273                               <0 0x0c410000 0 0x1000>,  /* GICH */
274                               <0 0x0c420000 0 0x2000>;  /* GICV */
275
276                         interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
277                 };
278
279                 topckgen: syscon@10000000 {
280                         compatible = "mediatek,mt8365-topckgen", "syscon";
281                         reg = <0 0x10000000 0 0x1000>;
282                         #clock-cells = <1>;
283                 };
284
285                 infracfg: syscon@10001000 {
286                         compatible = "mediatek,mt8365-infracfg", "syscon";
287                         reg = <0 0x10001000 0 0x1000>;
288                         #clock-cells = <1>;
289                 };
290
291                 pericfg: syscon@10003000 {
292                         compatible = "mediatek,mt8365-pericfg", "syscon";
293                         reg = <0 0x10003000 0 0x1000>;
294                         #clock-cells = <1>;
295                 };
296
297                 syscfg_pctl: syscfg-pctl@10005000 {
298                         compatible = "mediatek,mt8365-syscfg", "syscon";
299                         reg = <0 0x10005000 0 0x1000>;
300                 };
301
302                 scpsys: syscon@10006000 {
303                         compatible = "mediatek,mt8365-syscfg", "syscon", "simple-mfd";
304                         reg = <0 0x10006000 0 0x1000>;
305                         #power-domain-cells = <1>;
306
307                         /* System Power Manager */
308                         spm: power-controller {
309                                 compatible = "mediatek,mt8365-power-controller";
310                                 #address-cells = <1>;
311                                 #size-cells = <0>;
312                                 #power-domain-cells = <1>;
313
314                                 /* power domains of the SoC */
315                                 power-domain@MT8365_POWER_DOMAIN_MM {
316                                         reg = <MT8365_POWER_DOMAIN_MM>;
317                                         clocks = <&topckgen CLK_TOP_MM_SEL>,
318                                                  <&mmsys CLK_MM_MM_SMI_COMMON>,
319                                                  <&mmsys CLK_MM_MM_SMI_COMM0>,
320                                                  <&mmsys CLK_MM_MM_SMI_COMM1>,
321                                                  <&mmsys CLK_MM_MM_SMI_LARB0>;
322                                         clock-names = "mm", "mm-0", "mm-1",
323                                                       "mm-2", "mm-3";
324                                         #power-domain-cells = <0>;
325                                         mediatek,infracfg = <&infracfg>;
326                                         mediatek,infracfg-nao = <&infracfg_nao>;
327                                         #address-cells = <1>;
328                                         #size-cells = <0>;
329
330                                         power-domain@MT8365_POWER_DOMAIN_CAM {
331                                                 reg = <MT8365_POWER_DOMAIN_CAM>;
332                                                 clocks = <&camsys CLK_CAM_LARB2>,
333                                                          <&camsys CLK_CAM_SENIF>,
334                                                          <&camsys CLK_CAMSV0>,
335                                                          <&camsys CLK_CAMSV1>,
336                                                          <&camsys CLK_CAM_FDVT>,
337                                                          <&camsys CLK_CAM_WPE>;
338                                                 clock-names = "cam-0", "cam-1",
339                                                               "cam-2", "cam-3",
340                                                               "cam-4", "cam-5";
341                                                 #power-domain-cells = <0>;
342                                                 mediatek,infracfg = <&infracfg>;
343                                                 mediatek,smi = <&smi_common>;
344                                         };
345
346                                         power-domain@MT8365_POWER_DOMAIN_VDEC {
347                                                 reg = <MT8365_POWER_DOMAIN_VDEC>;
348                                                 #power-domain-cells = <0>;
349                                                 mediatek,smi = <&smi_common>;
350                                         };
351
352                                         power-domain@MT8365_POWER_DOMAIN_VENC {
353                                                 reg = <MT8365_POWER_DOMAIN_VENC>;
354                                                 #power-domain-cells = <0>;
355                                                 mediatek,smi = <&smi_common>;
356                                         };
357
358                                         power-domain@MT8365_POWER_DOMAIN_APU {
359                                                 reg = <MT8365_POWER_DOMAIN_APU>;
360                                                 clocks = <&infracfg CLK_IFR_APU_AXI>,
361                                                          <&apu CLK_APU_IPU_CK>,
362                                                          <&apu CLK_APU_AXI>,
363                                                          <&apu CLK_APU_JTAG>,
364                                                          <&apu CLK_APU_IF_CK>,
365                                                          <&apu CLK_APU_EDMA>,
366                                                          <&apu CLK_APU_AHB>;
367                                                 clock-names = "apu", "apu-0",
368                                                               "apu-1", "apu-2",
369                                                               "apu-3", "apu-4",
370                                                               "apu-5";
371                                                 #power-domain-cells = <0>;
372                                                 mediatek,infracfg = <&infracfg>;
373                                                 mediatek,smi = <&smi_common>;
374                                         };
375                                 };
376
377                                 power-domain@MT8365_POWER_DOMAIN_CONN {
378                                         reg = <MT8365_POWER_DOMAIN_CONN>;
379                                         clocks = <&topckgen CLK_TOP_CONN_32K>,
380                                                  <&topckgen CLK_TOP_CONN_26M>;
381                                         clock-names = "conn", "conn1";
382                                         #power-domain-cells = <0>;
383                                         mediatek,infracfg = <&infracfg>;
384                                 };
385
386                                 power-domain@MT8365_POWER_DOMAIN_MFG {
387                                         reg = <MT8365_POWER_DOMAIN_MFG>;
388                                         clocks = <&topckgen CLK_TOP_MFG_SEL>;
389                                         clock-names = "mfg";
390                                         #power-domain-cells = <0>;
391                                         mediatek,infracfg = <&infracfg>;
392                                 };
393
394                                 power-domain@MT8365_POWER_DOMAIN_AUDIO {
395                                         reg = <MT8365_POWER_DOMAIN_AUDIO>;
396                                         clocks = <&topckgen CLK_TOP_AUD_INTBUS_SEL>,
397                                                  <&infracfg CLK_IFR_AUDIO>,
398                                                  <&infracfg CLK_IFR_AUD_26M_BK>;
399                                         clock-names = "audio", "audio1", "audio2";
400                                         #power-domain-cells = <0>;
401                                         mediatek,infracfg = <&infracfg>;
402                                 };
403
404                                 power-domain@MT8365_POWER_DOMAIN_DSP {
405                                         reg = <MT8365_POWER_DOMAIN_DSP>;
406                                         clocks = <&topckgen CLK_TOP_DSP_SEL>,
407                                                  <&topckgen CLK_TOP_DSP_26M>;
408                                         clock-names = "dsp", "dsp1";
409                                         #power-domain-cells = <0>;
410                                         mediatek,infracfg = <&infracfg>;
411                                 };
412                         };
413                 };
414
415                 watchdog: watchdog@10007000 {
416                         compatible = "mediatek,mt8365-wdt", "mediatek,mt6589-wdt";
417                         reg = <0 0x10007000 0 0x100>;
418                         #reset-cells = <1>;
419                 };
420
421                 pio: pinctrl@1000b000 {
422                         compatible = "mediatek,mt8365-pinctrl";
423                         reg = <0 0x1000b000 0 0x1000>;
424                         mediatek,pctl-regmap = <&syscfg_pctl>;
425                         gpio-controller;
426                         #gpio-cells = <2>;
427                         interrupt-controller;
428                         #interrupt-cells = <2>;
429                         interrupts = <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>;
430                 };
431
432                 apmixedsys: syscon@1000c000 {
433                         compatible = "mediatek,mt8365-apmixedsys", "syscon";
434                         reg = <0 0x1000c000 0 0x1000>;
435                         #clock-cells = <1>;
436                 };
437
438                 pwrap: pwrap@1000d000 {
439                         compatible = "mediatek,mt8365-pwrap";
440                         reg = <0 0x1000d000 0 0x1000>;
441                         reg-names = "pwrap";
442                         interrupts = <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>;
443                         clocks = <&infracfg CLK_IFR_PWRAP_SPI>,
444                                  <&infracfg CLK_IFR_PMIC_AP>,
445                                  <&infracfg CLK_IFR_PWRAP_SYS>,
446                                  <&infracfg CLK_IFR_PWRAP_TMR>;
447                         clock-names = "spi", "wrap", "sys", "tmr";
448                 };
449
450                 keypad: keypad@10010000 {
451                         compatible = "mediatek,mt6779-keypad";
452                         reg = <0 0x10010000 0 0x1000>;
453                         wakeup-source;
454                         interrupts = <GIC_SPI 124 IRQ_TYPE_EDGE_FALLING>;
455                         clocks = <&clk26m>;
456                         clock-names = "kpd";
457                         status = "disabled";
458                 };
459
460                 mcucfg: syscon@10200000 {
461                         compatible = "mediatek,mt8365-mcucfg", "syscon";
462                         reg = <0 0x10200000 0 0x2000>;
463                         #clock-cells = <1>;
464                 };
465
466                 sysirq: interrupt-controller@10200a80 {
467                         compatible = "mediatek,mt8365-sysirq", "mediatek,mt6577-sysirq";
468                         interrupt-controller;
469                         #interrupt-cells = <3>;
470                         interrupt-parent = <&gic>;
471                         reg = <0 0x10200a80 0 0x20>;
472                 };
473
474                 iommu: iommu@10205000 {
475                         compatible = "mediatek,mt8365-m4u";
476                         reg = <0 0x10205000 0 0x1000>;
477                         interrupts = <GIC_SPI 102 IRQ_TYPE_LEVEL_LOW>;
478                         mediatek,larbs = <&larb0>, <&larb1>, <&larb2>, <&larb3>;
479                         #iommu-cells = <1>;
480                 };
481
482                 infracfg_nao: infracfg@1020e000 {
483                         compatible = "mediatek,mt8365-infracfg", "syscon";
484                         reg = <0 0x1020e000 0 0x1000>;
485                         #clock-cells = <1>;
486                 };
487
488                 rng: rng@1020f000 {
489                         compatible = "mediatek,mt8365-rng", "mediatek,mt7623-rng";
490                         reg = <0 0x1020f000 0 0x100>;
491                         clocks = <&infracfg CLK_IFR_TRNG>;
492                         clock-names = "rng";
493                 };
494
495                 apdma: dma-controller@11000280 {
496                         compatible = "mediatek,mt8365-uart-dma", "mediatek,mt6577-uart-dma";
497                         reg = <0 0x11000280 0 0x80>,
498                               <0 0x11000300 0 0x80>,
499                               <0 0x11000380 0 0x80>,
500                               <0 0x11000400 0 0x80>,
501                               <0 0x11000580 0 0x80>,
502                               <0 0x11000600 0 0x80>;
503                         interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_LOW>,
504                                      <GIC_SPI 46 IRQ_TYPE_LEVEL_LOW>,
505                                      <GIC_SPI 47 IRQ_TYPE_LEVEL_LOW>,
506                                      <GIC_SPI 48 IRQ_TYPE_LEVEL_LOW>,
507                                      <GIC_SPI 51 IRQ_TYPE_LEVEL_LOW>,
508                                      <GIC_SPI 52 IRQ_TYPE_LEVEL_LOW>;
509                         dma-requests = <6>;
510                         clocks = <&infracfg CLK_IFR_AP_DMA>;
511                         clock-names = "apdma";
512                         #dma-cells = <1>;
513                 };
514
515                 uart0: serial@11002000 {
516                         compatible = "mediatek,mt8365-uart", "mediatek,mt6577-uart";
517                         reg = <0 0x11002000 0 0x1000>;
518                         interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_LOW>;
519                         clocks = <&clk26m>, <&infracfg CLK_IFR_UART0>;
520                         clock-names = "baud", "bus";
521                         dmas = <&apdma 0>, <&apdma 1>;
522                         dma-names = "tx", "rx";
523                         status = "disabled";
524                 };
525
526                 uart1: serial@11003000 {
527                         compatible = "mediatek,mt8365-uart", "mediatek,mt6577-uart";
528                         reg = <0 0x11003000 0 0x1000>;
529                         interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_LOW>;
530                         clocks = <&clk26m>, <&infracfg CLK_IFR_UART1>;
531                         clock-names = "baud", "bus";
532                         dmas = <&apdma 2>, <&apdma 3>;
533                         dma-names = "tx", "rx";
534                         status = "disabled";
535                 };
536
537                 uart2: serial@11004000 {
538                         compatible = "mediatek,mt8365-uart", "mediatek,mt6577-uart";
539                         reg = <0 0x11004000 0 0x1000>;
540                         interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_LOW>;
541                         clocks = <&clk26m>, <&infracfg CLK_IFR_UART2>;
542                         clock-names = "baud", "bus";
543                         dmas = <&apdma 4>, <&apdma 5>;
544                         dma-names = "tx", "rx";
545                         status = "disabled";
546                 };
547
548                 pwm: pwm@11006000 {
549                         compatible = "mediatek,mt8365-pwm";
550                         reg = <0 0x11006000 0 0x1000>;
551                         #pwm-cells = <2>;
552                         interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_LOW>;
553                         clocks = <&infracfg CLK_IFR_PWM_HCLK>,
554                                  <&infracfg CLK_IFR_PWM>,
555                                  <&infracfg CLK_IFR_PWM1>,
556                                  <&infracfg CLK_IFR_PWM2>,
557                                  <&infracfg CLK_IFR_PWM3>;
558                         clock-names = "top", "main", "pwm1", "pwm2", "pwm3";
559                 };
560
561                 i2c0: i2c@11007000 {
562                         compatible = "mediatek,mt8365-i2c", "mediatek,mt8168-i2c";
563                         reg = <0 0x11007000 0 0xa0>, <0 0x11000080 0 0x80>;
564                         interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_LOW>;
565                         clock-div = <1>;
566                         clocks = <&infracfg CLK_IFR_I2C0_AXI>, <&infracfg CLK_IFR_AP_DMA>;
567                         clock-names = "main", "dma";
568                         #address-cells = <1>;
569                         #size-cells = <0>;
570                         status = "disabled";
571                 };
572
573                 i2c1: i2c@11008000 {
574                         compatible = "mediatek,mt8365-i2c", "mediatek,mt8168-i2c";
575                         reg = <0 0x11008000 0 0xa0>, <0 0x11000100 0 0x80>;
576                         interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_LOW>;
577                         clock-div = <1>;
578                         clocks = <&infracfg CLK_IFR_I2C1_AXI>, <&infracfg CLK_IFR_AP_DMA>;
579                         clock-names = "main", "dma";
580                         #address-cells = <1>;
581                         #size-cells = <0>;
582                         status = "disabled";
583                 };
584
585                 i2c2: i2c@11009000 {
586                         compatible = "mediatek,mt8365-i2c", "mediatek,mt8168-i2c";
587                         reg = <0 0x11009000 0 0xa0>, <0 0x11000180 0 0x80>;
588                         interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_LOW>;
589                         clock-div = <1>;
590                         clocks = <&infracfg CLK_IFR_I2C2_AXI>, <&infracfg CLK_IFR_AP_DMA>;
591                         clock-names = "main", "dma";
592                         #address-cells = <1>;
593                         #size-cells = <0>;
594                         status = "disabled";
595                 };
596
597                 spi: spi@1100a000 {
598                         compatible = "mediatek,mt8365-spi", "mediatek,mt7622-spi";
599                         reg = <0 0x1100a000 0 0x100>;
600                         #address-cells = <1>;
601                         #size-cells = <0>;
602                         interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_LOW>;
603                         clocks = <&topckgen CLK_TOP_UNIVPLL2_D4>,
604                                  <&topckgen CLK_TOP_SPI_SEL>,
605                                  <&infracfg CLK_IFR_SPI0>;
606                         clock-names = "parent-clk", "sel-clk", "spi-clk";
607                         status = "disabled";
608                 };
609
610                 i2c3: i2c@1100f000 {
611                         compatible = "mediatek,mt8365-i2c", "mediatek,mt8168-i2c";
612                         reg = <0 0x1100f000 0 0xa0>, <0 0x11000200 0 0x80>;
613                         interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_LOW>;
614                         clock-div = <1>;
615                         clocks = <&infracfg CLK_IFR_I2C3_AXI>, <&infracfg CLK_IFR_AP_DMA>;
616                         clock-names = "main", "dma";
617                         #address-cells = <1>;
618                         #size-cells = <0>;
619                         status = "disabled";
620                 };
621
622                 ssusb: usb@11201000 {
623                         compatible = "mediatek,mt8365-mtu3", "mediatek,mtu3";
624                         reg = <0 0x11201000 0 0x2e00>, <0 0x11203e00 0 0x0100>;
625                         reg-names = "mac", "ippc";
626                         interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_LOW>;
627                         phys = <&u2port0 PHY_TYPE_USB2>,
628                                <&u2port1 PHY_TYPE_USB2>;
629                         clocks = <&topckgen CLK_TOP_SSUSB_TOP_CK_EN>,
630                                  <&infracfg CLK_IFR_SSUSB_REF>,
631                                  <&infracfg CLK_IFR_SSUSB_SYS>,
632                                  <&infracfg CLK_IFR_ICUSB>;
633                         clock-names = "sys_ck", "ref_ck", "mcu_ck", "dma_ck";
634                         #address-cells = <2>;
635                         #size-cells = <2>;
636                         ranges;
637                         status = "disabled";
638
639                         usb_host: usb@11200000 {
640                                 compatible = "mediatek,mt8365-xhci", "mediatek,mtk-xhci";
641                                 reg = <0 0x11200000 0 0x1000>;
642                                 reg-names = "mac";
643                                 interrupts = <GIC_SPI 67 IRQ_TYPE_LEVEL_LOW>;
644                                 clocks = <&topckgen CLK_TOP_SSUSB_TOP_CK_EN>,
645                                          <&infracfg CLK_IFR_SSUSB_REF>,
646                                          <&infracfg CLK_IFR_SSUSB_SYS>,
647                                          <&infracfg CLK_IFR_ICUSB>,
648                                          <&infracfg CLK_IFR_SSUSB_XHCI>;
649                                 clock-names = "sys_ck", "ref_ck", "mcu_ck",
650                                               "dma_ck", "xhci_ck";
651                                 status = "disabled";
652                         };
653                 };
654
655                 mmc0: mmc@11230000 {
656                         compatible = "mediatek,mt8365-mmc", "mediatek,mt8183-mmc";
657                         reg = <0 0x11230000 0 0x1000>,
658                               <0 0x11cd0000 0 0x1000>;
659                         interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_LOW>;
660                         clocks = <&topckgen CLK_TOP_MSDC50_0_SEL>,
661                                  <&infracfg CLK_IFR_MSDC0_HCLK>,
662                                  <&infracfg CLK_IFR_MSDC0_SRC>;
663                         clock-names = "source", "hclk", "source_cg";
664                         status = "disabled";
665                 };
666
667                 mmc1: mmc@11240000 {
668                         compatible = "mediatek,mt8365-mmc", "mediatek,mt8183-mmc";
669                         reg = <0 0x11240000 0 0x1000>,
670                               <0 0x11c90000 0 0x1000>;
671                         interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_LOW>;
672                         clocks = <&topckgen CLK_TOP_MSDC30_1_SEL>,
673                                  <&infracfg CLK_IFR_MSDC1_HCLK>,
674                                  <&infracfg CLK_IFR_MSDC1_SRC>;
675                         clock-names = "source", "hclk", "source_cg";
676                         status = "disabled";
677                 };
678
679                 mmc2: mmc@11250000 {
680                         compatible = "mediatek,mt8365-mmc", "mediatek,mt8183-mmc";
681                         reg = <0 0x11250000 0 0x1000>,
682                               <0 0x11c60000 0 0x1000>;
683                         interrupts = <GIC_SPI 68 IRQ_TYPE_LEVEL_LOW>;
684                         clocks = <&topckgen CLK_TOP_MSDC50_2_SEL>,
685                                  <&infracfg CLK_IFR_MSDC2_HCLK>,
686                                  <&infracfg CLK_IFR_MSDC2_SRC>,
687                                  <&infracfg CLK_IFR_MSDC2_BK>,
688                                  <&infracfg CLK_IFR_AP_MSDC0>;
689                         clock-names = "source", "hclk", "source_cg",
690                                       "bus_clk", "sys_cg";
691                         status = "disabled";
692                 };
693
694                 ethernet: ethernet@112a0000 {
695                         compatible = "mediatek,mt8365-eth";
696                         reg = <0 0x112a0000 0 0x1000>;
697                         mediatek,pericfg = <&infracfg>;
698                         interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>;
699                         clocks = <&topckgen CLK_TOP_ETH_SEL>,
700                                  <&infracfg CLK_IFR_NIC_AXI>,
701                                  <&infracfg CLK_IFR_NIC_SLV_AXI>;
702                         clock-names = "core", "reg", "trans";
703                         status = "disabled";
704                 };
705
706                 u3phy: t-phy@11cc0000 {
707                         compatible = "mediatek,mt8365-tphy", "mediatek,generic-tphy-v2";
708                         #address-cells = <1>;
709                         #size-cells = <1>;
710                         ranges = <0 0 0x11cc0000 0x9000>;
711
712                         u2port0: usb-phy@0 {
713                                 reg = <0x0 0x400>;
714                                 clocks = <&topckgen CLK_TOP_SSUSB_PHY_CK_EN>,
715                                          <&topckgen CLK_TOP_USB20_48M_EN>;
716                                 clock-names = "ref", "da_ref";
717                                 #phy-cells = <1>;
718                         };
719
720                         u2port1: usb-phy@1000 {
721                                 reg = <0x1000 0x400>;
722                                 clocks = <&topckgen CLK_TOP_SSUSB_PHY_CK_EN>,
723                                          <&topckgen CLK_TOP_USB20_48M_EN>;
724                                 clock-names = "ref", "da_ref";
725                                 #phy-cells = <1>;
726                         };
727                 };
728
729                 mmsys: syscon@14000000 {
730                         compatible = "mediatek,mt8365-mmsys", "syscon";
731                         reg = <0 0x14000000 0 0x1000>;
732                         #clock-cells = <1>;
733                 };
734
735                 smi_common: smi@14002000 {
736                         compatible = "mediatek,mt8365-smi-common";
737                         reg = <0 0x14002000 0 0x1000>;
738                         clocks = <&mmsys CLK_MM_MM_SMI_COMMON>,
739                                  <&mmsys CLK_MM_MM_SMI_COMMON>,
740                                  <&mmsys CLK_MM_MM_SMI_COMM0>,
741                                  <&mmsys CLK_MM_MM_SMI_COMM1>;
742                         clock-names = "apb", "smi", "gals0", "gals1";
743                         power-domains = <&spm MT8365_POWER_DOMAIN_MM>;
744                 };
745
746                 larb0: larb@14003000 {
747                         compatible = "mediatek,mt8365-smi-larb",
748                                      "mediatek,mt8186-smi-larb";
749                         reg = <0 0x14003000 0 0x1000>;
750                         mediatek,smi = <&smi_common>;
751                         clocks = <&mmsys CLK_MM_MM_SMI_LARB0>,
752                                  <&mmsys CLK_MM_MM_SMI_LARB0>;
753                         clock-names = "apb", "smi";
754                         power-domains = <&spm MT8365_POWER_DOMAIN_MM>;
755                         mediatek,larb-id = <0>;
756                 };
757
758                 camsys: syscon@15000000 {
759                         compatible = "mediatek,mt8365-imgsys", "syscon";
760                         reg = <0 0x15000000 0 0x1000>;
761                         #clock-cells = <1>;
762                 };
763
764                 larb2: larb@15001000 {
765                         compatible = "mediatek,mt8365-smi-larb",
766                                      "mediatek,mt8186-smi-larb";
767                         reg = <0 0x15001000 0 0x1000>;
768                         mediatek,smi = <&smi_common>;
769                         clocks = <&mmsys CLK_MM_MM_SMI_IMG>,
770                                  <&camsys CLK_CAM_LARB2>;
771                         clock-names = "apb", "smi";
772                         power-domains = <&spm MT8365_POWER_DOMAIN_CAM>;
773                         mediatek,larb-id = <2>;
774                 };
775
776                 vdecsys: syscon@16000000 {
777                         compatible = "mediatek,mt8365-vdecsys", "syscon";
778                         reg = <0 0x16000000 0 0x1000>;
779                         #clock-cells = <1>;
780                 };
781
782                 larb3: larb@16010000 {
783                         compatible = "mediatek,mt8365-smi-larb",
784                                      "mediatek,mt8186-smi-larb";
785                         reg = <0 0x16010000 0 0x1000>;
786                         mediatek,smi = <&smi_common>;
787                         clocks = <&vdecsys CLK_VDEC_LARB1>,
788                                  <&vdecsys CLK_VDEC_LARB1>;
789                         clock-names = "apb", "smi";
790                         power-domains = <&spm MT8365_POWER_DOMAIN_VDEC>;
791                         mediatek,larb-id = <3>;
792                 };
793
794                 vencsys: syscon@17000000 {
795                         compatible = "mediatek,mt8365-vencsys", "syscon";
796                         reg = <0 0x17000000 0 0x1000>;
797                         #clock-cells = <1>;
798                 };
799
800                 larb1: larb@17010000 {
801                         compatible = "mediatek,mt8365-smi-larb",
802                                      "mediatek,mt8186-smi-larb";
803                         reg = <0 0x17010000 0 0x1000>;
804                         mediatek,smi = <&smi_common>;
805                         clocks = <&vencsys CLK_VENC>, <&vencsys CLK_VENC>;
806                         clock-names = "apb", "smi";
807                         power-domains = <&spm MT8365_POWER_DOMAIN_VENC>;
808                         mediatek,larb-id = <1>;
809                 };
810
811                 apu: syscon@19020000 {
812                         compatible = "mediatek,mt8365-apu", "syscon";
813                         reg = <0 0x19020000 0 0x1000>;
814                         #clock-cells = <1>;
815                 };
816         };
817
818         timer {
819                 compatible = "arm,armv8-timer";
820                 interrupt-parent = <&gic>;
821                 interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW>,
822                              <GIC_PPI 14 IRQ_TYPE_LEVEL_LOW>,
823                              <GIC_PPI 11 IRQ_TYPE_LEVEL_LOW>,
824                              <GIC_PPI 10 IRQ_TYPE_LEVEL_LOW>;
825         };
826
827         system_clk: dummy13m {
828                 compatible = "fixed-clock";
829                 clock-frequency = <13000000>;
830                 #clock-cells = <0>;
831         };
832
833         systimer: timer@10017000 {
834                 compatible = "mediatek,mt8365-systimer", "mediatek,mt6765-timer";
835                 reg = <0 0x10017000 0 0x100>;
836                 interrupts = <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>;
837                 clocks = <&system_clk>;
838                 clock-names = "clk13m";
839         };
840 };