xref: /linux/arch/arm64/boot/dts/mediatek/mt8195.dtsi (revision ab43a84c9863b65dc20373d5aca4e4d012aa852e)
1// SPDX-License-Identifier: (GPL-2.0 OR MIT)
2/*
3 * Copyright (c) 2021 MediaTek Inc.
4 * Author: Seiya Wang <seiya.wang@mediatek.com>
5 */
6
7/dts-v1/;
8#include <dt-bindings/clock/mt8195-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/pinctrl/mt8195-pinfunc.h>
13#include <dt-bindings/reset/ti-syscon.h>
14
15/ {
16	compatible = "mediatek,mt8195";
17	interrupt-parent = <&gic>;
18	#address-cells = <2>;
19	#size-cells = <2>;
20
21	cpus {
22		#address-cells = <1>;
23		#size-cells = <0>;
24
25		cpu0: cpu@0 {
26			device_type = "cpu";
27			compatible = "arm,cortex-a55";
28			reg = <0x000>;
29			enable-method = "psci";
30			clock-frequency = <1701000000>;
31			capacity-dmips-mhz = <578>;
32			cpu-idle-states = <&cpu_off_l &cluster_off_l>;
33			next-level-cache = <&l2_0>;
34			#cooling-cells = <2>;
35		};
36
37		cpu1: cpu@100 {
38			device_type = "cpu";
39			compatible = "arm,cortex-a55";
40			reg = <0x100>;
41			enable-method = "psci";
42			clock-frequency = <1701000000>;
43			capacity-dmips-mhz = <578>;
44			cpu-idle-states = <&cpu_off_l &cluster_off_l>;
45			next-level-cache = <&l2_0>;
46			#cooling-cells = <2>;
47		};
48
49		cpu2: cpu@200 {
50			device_type = "cpu";
51			compatible = "arm,cortex-a55";
52			reg = <0x200>;
53			enable-method = "psci";
54			clock-frequency = <1701000000>;
55			capacity-dmips-mhz = <578>;
56			cpu-idle-states = <&cpu_off_l &cluster_off_l>;
57			next-level-cache = <&l2_0>;
58			#cooling-cells = <2>;
59		};
60
61		cpu3: cpu@300 {
62			device_type = "cpu";
63			compatible = "arm,cortex-a55";
64			reg = <0x300>;
65			enable-method = "psci";
66			clock-frequency = <1701000000>;
67			capacity-dmips-mhz = <578>;
68			cpu-idle-states = <&cpu_off_l &cluster_off_l>;
69			next-level-cache = <&l2_0>;
70			#cooling-cells = <2>;
71		};
72
73		cpu4: cpu@400 {
74			device_type = "cpu";
75			compatible = "arm,cortex-a78";
76			reg = <0x400>;
77			enable-method = "psci";
78			clock-frequency = <2171000000>;
79			capacity-dmips-mhz = <1024>;
80			cpu-idle-states = <&cpu_off_b &cluster_off_b>;
81			next-level-cache = <&l2_1>;
82			#cooling-cells = <2>;
83		};
84
85		cpu5: cpu@500 {
86			device_type = "cpu";
87			compatible = "arm,cortex-a78";
88			reg = <0x500>;
89			enable-method = "psci";
90			clock-frequency = <2171000000>;
91			capacity-dmips-mhz = <1024>;
92			cpu-idle-states = <&cpu_off_b &cluster_off_b>;
93			next-level-cache = <&l2_1>;
94			#cooling-cells = <2>;
95		};
96
97		cpu6: cpu@600 {
98			device_type = "cpu";
99			compatible = "arm,cortex-a78";
100			reg = <0x600>;
101			enable-method = "psci";
102			clock-frequency = <2171000000>;
103			capacity-dmips-mhz = <1024>;
104			cpu-idle-states = <&cpu_off_b &cluster_off_b>;
105			next-level-cache = <&l2_1>;
106			#cooling-cells = <2>;
107		};
108
109		cpu7: cpu@700 {
110			device_type = "cpu";
111			compatible = "arm,cortex-a78";
112			reg = <0x700>;
113			enable-method = "psci";
114			clock-frequency = <2171000000>;
115			capacity-dmips-mhz = <1024>;
116			cpu-idle-states = <&cpu_off_b &cluster_off_b>;
117			next-level-cache = <&l2_1>;
118			#cooling-cells = <2>;
119		};
120
121		cpu-map {
122			cluster0 {
123				core0 {
124					cpu = <&cpu0>;
125				};
126
127				core1 {
128					cpu = <&cpu1>;
129				};
130
131				core2 {
132					cpu = <&cpu2>;
133				};
134
135				core3 {
136					cpu = <&cpu3>;
137				};
138			};
139
140			cluster1 {
141				core0 {
142					cpu = <&cpu4>;
143				};
144
145				core1 {
146					cpu = <&cpu5>;
147				};
148
149				core2 {
150					cpu = <&cpu6>;
151				};
152
153				core3 {
154					cpu = <&cpu7>;
155				};
156			};
157		};
158
159		idle-states {
160			entry-method = "psci";
161
162			cpu_off_l: cpu-off-l {
163				compatible = "arm,idle-state";
164				arm,psci-suspend-param = <0x00010001>;
165				local-timer-stop;
166				entry-latency-us = <50>;
167				exit-latency-us = <95>;
168				min-residency-us = <580>;
169			};
170
171			cpu_off_b: cpu-off-b {
172				compatible = "arm,idle-state";
173				arm,psci-suspend-param = <0x00010001>;
174				local-timer-stop;
175				entry-latency-us = <45>;
176				exit-latency-us = <140>;
177				min-residency-us = <740>;
178			};
179
180			cluster_off_l: cluster-off-l {
181				compatible = "arm,idle-state";
182				arm,psci-suspend-param = <0x01010002>;
183				local-timer-stop;
184				entry-latency-us = <55>;
185				exit-latency-us = <155>;
186				min-residency-us = <840>;
187			};
188
189			cluster_off_b: cluster-off-b {
190				compatible = "arm,idle-state";
191				arm,psci-suspend-param = <0x01010002>;
192				local-timer-stop;
193				entry-latency-us = <50>;
194				exit-latency-us = <200>;
195				min-residency-us = <1000>;
196			};
197		};
198
199		l2_0: l2-cache0 {
200			compatible = "cache";
201			next-level-cache = <&l3_0>;
202		};
203
204		l2_1: l2-cache1 {
205			compatible = "cache";
206			next-level-cache = <&l3_0>;
207		};
208
209		l3_0: l3-cache {
210			compatible = "cache";
211		};
212	};
213
214	dsu-pmu {
215		compatible = "arm,dsu-pmu";
216		interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH 0>;
217		cpus = <&cpu0>, <&cpu1>, <&cpu2>, <&cpu3>,
218		       <&cpu4>, <&cpu5>, <&cpu6>, <&cpu7>;
219	};
220
221	clk26m: oscillator-26m {
222		compatible = "fixed-clock";
223		#clock-cells = <0>;
224		clock-frequency = <26000000>;
225		clock-output-names = "clk26m";
226	};
227
228	clk32k: oscillator-32k {
229		compatible = "fixed-clock";
230		#clock-cells = <0>;
231		clock-frequency = <32768>;
232		clock-output-names = "clk32k";
233	};
234
235	pmu-a55 {
236		compatible = "arm,cortex-a55-pmu";
237		interrupt-parent = <&gic>;
238		interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_HIGH &ppi_cluster0>;
239	};
240
241	pmu-a78 {
242		compatible = "arm,cortex-a78-pmu";
243		interrupt-parent = <&gic>;
244		interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_HIGH &ppi_cluster1>;
245	};
246
247	psci {
248		compatible = "arm,psci-1.0";
249		method = "smc";
250	};
251
252	timer: timer {
253		compatible = "arm,armv8-timer";
254		interrupt-parent = <&gic>;
255		interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_HIGH 0>,
256			     <GIC_PPI 14 IRQ_TYPE_LEVEL_HIGH 0>,
257			     <GIC_PPI 11 IRQ_TYPE_LEVEL_HIGH 0>,
258			     <GIC_PPI 10 IRQ_TYPE_LEVEL_HIGH 0>;
259	};
260
261	soc {
262		#address-cells = <2>;
263		#size-cells = <2>;
264		compatible = "simple-bus";
265		ranges;
266
267		gic: interrupt-controller@c000000 {
268			compatible = "arm,gic-v3";
269			#interrupt-cells = <4>;
270			#redistributor-regions = <1>;
271			interrupt-parent = <&gic>;
272			interrupt-controller;
273			reg = <0 0x0c000000 0 0x40000>,
274			      <0 0x0c040000 0 0x200000>;
275			interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH 0>;
276
277			ppi-partitions {
278				ppi_cluster0: interrupt-partition-0 {
279					affinity = <&cpu0 &cpu1 &cpu2 &cpu3>;
280				};
281
282				ppi_cluster1: interrupt-partition-1 {
283					affinity = <&cpu4 &cpu5 &cpu6 &cpu7>;
284				};
285			};
286		};
287
288		topckgen: syscon@10000000 {
289			compatible = "mediatek,mt8195-topckgen", "syscon";
290			reg = <0 0x10000000 0 0x1000>;
291			#clock-cells = <1>;
292		};
293
294		infracfg_ao: syscon@10001000 {
295			compatible = "mediatek,mt8195-infracfg_ao", "syscon", "simple-mfd";
296			reg = <0 0x10001000 0 0x1000>;
297			#clock-cells = <1>;
298
299			infracfg_rst: reset-controller {
300				compatible = "ti,syscon-reset";
301				#reset-cells = <1>;
302				ti,reset-bits = <
303					0x140 18 0x144 18 0 0 (ASSERT_SET | DEASSERT_SET | STATUS_NONE) /* pcie */
304					0x120 0  0x124 0  0 0 (ASSERT_SET | DEASSERT_SET | STATUS_NONE) /* thermal */
305					0x730 10 0x734 10 0 0 (ASSERT_SET | DEASSERT_SET | STATUS_NONE) /* thermal */
306					0x150 5  0x154 5  0 0 (ASSERT_SET | DEASSERT_SET | STATUS_NONE) /* svs gpu */
307				>;
308			};
309		};
310
311		pericfg: syscon@10003000 {
312			compatible = "mediatek,mt8195-pericfg", "syscon";
313			reg = <0 0x10003000 0 0x1000>;
314			#clock-cells = <1>;
315		};
316
317		pio: pinctrl@10005000 {
318			compatible = "mediatek,mt8195-pinctrl";
319			reg = <0 0x10005000 0 0x1000>,
320			      <0 0x11d10000 0 0x1000>,
321			      <0 0x11d30000 0 0x1000>,
322			      <0 0x11d40000 0 0x1000>,
323			      <0 0x11e20000 0 0x1000>,
324			      <0 0x11eb0000 0 0x1000>,
325			      <0 0x11f40000 0 0x1000>,
326			      <0 0x1000b000 0 0x1000>;
327			reg-names = "iocfg0", "iocfg_bm", "iocfg_bl",
328				    "iocfg_br", "iocfg_lm", "iocfg_rb",
329				    "iocfg_tl", "eint";
330			gpio-controller;
331			#gpio-cells = <2>;
332			gpio-ranges = <&pio 0 0 144>;
333			interrupt-controller;
334			interrupts = <GIC_SPI 235 IRQ_TYPE_LEVEL_HIGH 0>;
335			#interrupt-cells = <2>;
336		};
337
338		watchdog: watchdog@10007000 {
339			compatible = "mediatek,mt8195-wdt",
340				     "mediatek,mt6589-wdt";
341			reg = <0 0x10007000 0 0x100>;
342		};
343
344		apmixedsys: syscon@1000c000 {
345			compatible = "mediatek,mt8195-apmixedsys", "syscon";
346			reg = <0 0x1000c000 0 0x1000>;
347			#clock-cells = <1>;
348		};
349
350		systimer: timer@10017000 {
351			compatible = "mediatek,mt8195-timer",
352				     "mediatek,mt6765-timer";
353			reg = <0 0x10017000 0 0x1000>;
354			interrupts = <GIC_SPI 265 IRQ_TYPE_LEVEL_HIGH 0>;
355			clocks = <&topckgen CLK_TOP_CLK26M_D2>;
356		};
357
358		pwrap: pwrap@10024000 {
359			compatible = "mediatek,mt8195-pwrap", "syscon";
360			reg = <0 0x10024000 0 0x1000>;
361			reg-names = "pwrap";
362			interrupts = <GIC_SPI 243 IRQ_TYPE_LEVEL_HIGH 0>;
363			clocks = <&infracfg_ao CLK_INFRA_AO_PMIC_AP>,
364				 <&infracfg_ao CLK_INFRA_AO_PMIC_TMR>;
365			clock-names = "spi", "wrap";
366			assigned-clocks = <&topckgen CLK_TOP_PWRAP_ULPOSC>;
367			assigned-clock-parents = <&topckgen CLK_TOP_ULPOSC1_D10>;
368		};
369
370		scp_adsp: clock-controller@10720000 {
371			compatible = "mediatek,mt8195-scp_adsp";
372			reg = <0 0x10720000 0 0x1000>;
373			#clock-cells = <1>;
374		};
375
376		uart0: serial@11001100 {
377			compatible = "mediatek,mt8195-uart",
378				     "mediatek,mt6577-uart";
379			reg = <0 0x11001100 0 0x100>;
380			interrupts = <GIC_SPI 141 IRQ_TYPE_LEVEL_HIGH 0>;
381			clocks = <&clk26m>, <&infracfg_ao CLK_INFRA_AO_UART0>;
382			clock-names = "baud", "bus";
383			status = "disabled";
384		};
385
386		uart1: serial@11001200 {
387			compatible = "mediatek,mt8195-uart",
388				     "mediatek,mt6577-uart";
389			reg = <0 0x11001200 0 0x100>;
390			interrupts = <GIC_SPI 142 IRQ_TYPE_LEVEL_HIGH 0>;
391			clocks = <&clk26m>, <&infracfg_ao CLK_INFRA_AO_UART1>;
392			clock-names = "baud", "bus";
393			status = "disabled";
394		};
395
396		uart2: serial@11001300 {
397			compatible = "mediatek,mt8195-uart",
398				     "mediatek,mt6577-uart";
399			reg = <0 0x11001300 0 0x100>;
400			interrupts = <GIC_SPI 143 IRQ_TYPE_LEVEL_HIGH 0>;
401			clocks = <&clk26m>, <&infracfg_ao CLK_INFRA_AO_UART2>;
402			clock-names = "baud", "bus";
403			status = "disabled";
404		};
405
406		uart3: serial@11001400 {
407			compatible = "mediatek,mt8195-uart",
408				     "mediatek,mt6577-uart";
409			reg = <0 0x11001400 0 0x100>;
410			interrupts = <GIC_SPI 723 IRQ_TYPE_LEVEL_HIGH 0>;
411			clocks = <&clk26m>, <&infracfg_ao CLK_INFRA_AO_UART3>;
412			clock-names = "baud", "bus";
413			status = "disabled";
414		};
415
416		uart4: serial@11001500 {
417			compatible = "mediatek,mt8195-uart",
418				     "mediatek,mt6577-uart";
419			reg = <0 0x11001500 0 0x100>;
420			interrupts = <GIC_SPI 724 IRQ_TYPE_LEVEL_HIGH 0>;
421			clocks = <&clk26m>, <&infracfg_ao CLK_INFRA_AO_UART4>;
422			clock-names = "baud", "bus";
423			status = "disabled";
424		};
425
426		uart5: serial@11001600 {
427			compatible = "mediatek,mt8195-uart",
428				     "mediatek,mt6577-uart";
429			reg = <0 0x11001600 0 0x100>;
430			interrupts = <GIC_SPI 725 IRQ_TYPE_LEVEL_HIGH 0>;
431			clocks = <&clk26m>, <&infracfg_ao CLK_INFRA_AO_UART5>;
432			clock-names = "baud", "bus";
433			status = "disabled";
434		};
435
436		auxadc: auxadc@11002000 {
437			compatible = "mediatek,mt8195-auxadc",
438				     "mediatek,mt8173-auxadc";
439			reg = <0 0x11002000 0 0x1000>;
440			clocks = <&infracfg_ao CLK_INFRA_AO_AUXADC>;
441			clock-names = "main";
442			#io-channel-cells = <1>;
443			status = "disabled";
444		};
445
446		pericfg_ao: syscon@11003000 {
447			compatible = "mediatek,mt8195-pericfg_ao", "syscon";
448			reg = <0 0x11003000 0 0x1000>;
449			#clock-cells = <1>;
450		};
451
452		spi0: spi@1100a000 {
453			compatible = "mediatek,mt8195-spi",
454				     "mediatek,mt6765-spi";
455			#address-cells = <1>;
456			#size-cells = <0>;
457			reg = <0 0x1100a000 0 0x1000>;
458			interrupts = <GIC_SPI 191 IRQ_TYPE_LEVEL_HIGH 0>;
459			clocks = <&topckgen CLK_TOP_UNIVPLL_D6_D2>,
460				 <&topckgen CLK_TOP_SPI>,
461				 <&infracfg_ao CLK_INFRA_AO_SPI0>;
462			clock-names = "parent-clk", "sel-clk", "spi-clk";
463			status = "disabled";
464		};
465
466		spi1: spi@11010000 {
467			compatible = "mediatek,mt8195-spi",
468				     "mediatek,mt6765-spi";
469			#address-cells = <1>;
470			#size-cells = <0>;
471			reg = <0 0x11010000 0 0x1000>;
472			interrupts = <GIC_SPI 192 IRQ_TYPE_LEVEL_HIGH 0>;
473			clocks = <&topckgen CLK_TOP_UNIVPLL_D6_D2>,
474				 <&topckgen CLK_TOP_SPI>,
475				 <&infracfg_ao CLK_INFRA_AO_SPI1>;
476			clock-names = "parent-clk", "sel-clk", "spi-clk";
477			status = "disabled";
478		};
479
480		spi2: spi@11012000 {
481			compatible = "mediatek,mt8195-spi",
482				     "mediatek,mt6765-spi";
483			#address-cells = <1>;
484			#size-cells = <0>;
485			reg = <0 0x11012000 0 0x1000>;
486			interrupts = <GIC_SPI 193 IRQ_TYPE_LEVEL_HIGH 0>;
487			clocks = <&topckgen CLK_TOP_UNIVPLL_D6_D2>,
488				 <&topckgen CLK_TOP_SPI>,
489				 <&infracfg_ao CLK_INFRA_AO_SPI2>;
490			clock-names = "parent-clk", "sel-clk", "spi-clk";
491			status = "disabled";
492		};
493
494		spi3: spi@11013000 {
495			compatible = "mediatek,mt8195-spi",
496				     "mediatek,mt6765-spi";
497			#address-cells = <1>;
498			#size-cells = <0>;
499			reg = <0 0x11013000 0 0x1000>;
500			interrupts = <GIC_SPI 194 IRQ_TYPE_LEVEL_HIGH 0>;
501			clocks = <&topckgen CLK_TOP_UNIVPLL_D6_D2>,
502				 <&topckgen CLK_TOP_SPI>,
503				 <&infracfg_ao CLK_INFRA_AO_SPI3>;
504			clock-names = "parent-clk", "sel-clk", "spi-clk";
505			status = "disabled";
506		};
507
508		spi4: spi@11018000 {
509			compatible = "mediatek,mt8195-spi",
510				     "mediatek,mt6765-spi";
511			#address-cells = <1>;
512			#size-cells = <0>;
513			reg = <0 0x11018000 0 0x1000>;
514			interrupts = <GIC_SPI 195 IRQ_TYPE_LEVEL_HIGH 0>;
515			clocks = <&topckgen CLK_TOP_UNIVPLL_D6_D2>,
516				 <&topckgen CLK_TOP_SPI>,
517				 <&infracfg_ao CLK_INFRA_AO_SPI4>;
518			clock-names = "parent-clk", "sel-clk", "spi-clk";
519			status = "disabled";
520		};
521
522		spi5: spi@11019000 {
523			compatible = "mediatek,mt8195-spi",
524				     "mediatek,mt6765-spi";
525			#address-cells = <1>;
526			#size-cells = <0>;
527			reg = <0 0x11019000 0 0x1000>;
528			interrupts = <GIC_SPI 196 IRQ_TYPE_LEVEL_HIGH 0>;
529			clocks = <&topckgen CLK_TOP_UNIVPLL_D6_D2>,
530				 <&topckgen CLK_TOP_SPI>,
531				 <&infracfg_ao CLK_INFRA_AO_SPI5>;
532			clock-names = "parent-clk", "sel-clk", "spi-clk";
533			status = "disabled";
534		};
535
536		spis0: spi@1101d000 {
537			compatible = "mediatek,mt8195-spi-slave";
538			reg = <0 0x1101d000 0 0x1000>;
539			interrupts = <GIC_SPI 197 IRQ_TYPE_LEVEL_HIGH 0>;
540			clocks = <&infracfg_ao CLK_INFRA_AO_SPIS0>;
541			clock-names = "spi";
542			assigned-clocks = <&topckgen CLK_TOP_SPIS>;
543			assigned-clock-parents = <&topckgen CLK_TOP_UNIVPLL_D6>;
544			status = "disabled";
545		};
546
547		spis1: spi@1101e000 {
548			compatible = "mediatek,mt8195-spi-slave";
549			reg = <0 0x1101e000 0 0x1000>;
550			interrupts = <GIC_SPI 198 IRQ_TYPE_LEVEL_HIGH 0>;
551			clocks = <&infracfg_ao CLK_INFRA_AO_SPIS1>;
552			clock-names = "spi";
553			assigned-clocks = <&topckgen CLK_TOP_SPIS>;
554			assigned-clock-parents = <&topckgen CLK_TOP_UNIVPLL_D6>;
555			status = "disabled";
556		};
557
558		xhci0: usb@11200000 {
559			compatible = "mediatek,mt8195-xhci",
560				     "mediatek,mtk-xhci";
561			reg = <0 0x11200000 0 0x1000>,
562			      <0 0x11203e00 0 0x0100>;
563			reg-names = "mac", "ippc";
564			interrupts = <GIC_SPI 129 IRQ_TYPE_LEVEL_HIGH 0>;
565			phys = <&u2port0 PHY_TYPE_USB2>,
566			       <&u3port0 PHY_TYPE_USB3>;
567			assigned-clocks = <&topckgen CLK_TOP_USB_TOP>,
568					  <&topckgen CLK_TOP_SSUSB_XHCI>;
569			assigned-clock-parents = <&topckgen CLK_TOP_UNIVPLL_D5_D4>,
570						 <&topckgen CLK_TOP_UNIVPLL_D5_D4>;
571			clocks = <&infracfg_ao CLK_INFRA_AO_SSUSB>,
572				 <&topckgen CLK_TOP_SSUSB_REF>,
573				 <&apmixedsys CLK_APMIXED_USB1PLL>,
574				 <&infracfg_ao CLK_INFRA_AO_SSUSB_XHCI>;
575			clock-names = "sys_ck", "ref_ck", "mcu_ck", "xhci_ck";
576			status = "disabled";
577		};
578
579		mmc0: mmc@11230000 {
580			compatible = "mediatek,mt8195-mmc",
581				     "mediatek,mt8183-mmc";
582			reg = <0 0x11230000 0 0x10000>,
583			      <0 0x11f50000 0 0x1000>;
584			interrupts = <GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH 0>;
585			clocks = <&topckgen CLK_TOP_MSDC50_0>,
586				 <&infracfg_ao CLK_INFRA_AO_MSDC0>,
587				 <&infracfg_ao CLK_INFRA_AO_MSDC0_SRC>;
588			clock-names = "source", "hclk", "source_cg";
589			status = "disabled";
590		};
591
592		mmc1: mmc@11240000 {
593			compatible = "mediatek,mt8195-mmc",
594				     "mediatek,mt8183-mmc";
595			reg = <0 0x11240000 0 0x1000>,
596			      <0 0x11c70000 0 0x1000>;
597			interrupts = <GIC_SPI 135 IRQ_TYPE_LEVEL_HIGH 0>;
598			clocks = <&topckgen CLK_TOP_MSDC30_1>,
599				 <&infracfg_ao CLK_INFRA_AO_MSDC1>,
600				 <&infracfg_ao CLK_INFRA_AO_MSDC1_SRC>;
601			clock-names = "source", "hclk", "source_cg";
602			assigned-clocks = <&topckgen CLK_TOP_MSDC30_1>;
603			assigned-clock-parents = <&topckgen CLK_TOP_MSDCPLL_D2>;
604			status = "disabled";
605		};
606
607		mmc2: mmc@11250000 {
608			compatible = "mediatek,mt8195-mmc",
609				     "mediatek,mt8183-mmc";
610			reg = <0 0x11250000 0 0x1000>,
611			      <0 0x11e60000 0 0x1000>;
612			interrupts = <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH 0>;
613			clocks = <&topckgen CLK_TOP_MSDC30_2>,
614				 <&infracfg_ao CLK_INFRA_AO_CG1_MSDC2>,
615				 <&infracfg_ao CLK_INFRA_AO_CG3_MSDC2>;
616			clock-names = "source", "hclk", "source_cg";
617			assigned-clocks = <&topckgen CLK_TOP_MSDC30_2>;
618			assigned-clock-parents = <&topckgen CLK_TOP_MSDCPLL_D2>;
619			status = "disabled";
620		};
621
622		xhci1: usb@11290000 {
623			compatible = "mediatek,mt8195-xhci",
624				     "mediatek,mtk-xhci";
625			reg = <0 0x11290000 0 0x1000>,
626			      <0 0x11293e00 0 0x0100>;
627			reg-names = "mac", "ippc";
628			interrupts = <GIC_SPI 530 IRQ_TYPE_LEVEL_HIGH 0>;
629			phys = <&u2port1 PHY_TYPE_USB2>;
630			assigned-clocks = <&topckgen CLK_TOP_USB_TOP_1P>,
631					  <&topckgen CLK_TOP_SSUSB_XHCI_1P>;
632			assigned-clock-parents = <&topckgen CLK_TOP_UNIVPLL_D5_D4>,
633						 <&topckgen CLK_TOP_UNIVPLL_D5_D4>;
634			clocks = <&pericfg_ao CLK_PERI_AO_SSUSB_1P_BUS>,
635				 <&topckgen CLK_TOP_SSUSB_P1_REF>,
636				 <&apmixedsys CLK_APMIXED_USB1PLL>,
637				 <&pericfg_ao CLK_PERI_AO_SSUSB_1P_XHCI>;
638			clock-names = "sys_ck", "ref_ck", "mcu_ck","xhci_ck";
639			status = "disabled";
640		};
641
642		xhci2: usb@112a0000 {
643			compatible = "mediatek,mt8195-xhci",
644				     "mediatek,mtk-xhci";
645			reg = <0 0x112a0000 0 0x1000>,
646			      <0 0x112a3e00 0 0x0100>;
647			reg-names = "mac", "ippc";
648			interrupts = <GIC_SPI 533 IRQ_TYPE_LEVEL_HIGH 0>;
649			phys = <&u2port2 PHY_TYPE_USB2>;
650			assigned-clocks = <&topckgen CLK_TOP_USB_TOP_2P>,
651					  <&topckgen CLK_TOP_SSUSB_XHCI_2P>;
652			assigned-clock-parents = <&topckgen CLK_TOP_UNIVPLL_D5_D4>,
653						 <&topckgen CLK_TOP_UNIVPLL_D5_D4>;
654			clocks = <&pericfg_ao CLK_PERI_AO_SSUSB_2P_BUS>,
655				 <&topckgen CLK_TOP_SSUSB_P2_REF>,
656				 <&pericfg_ao CLK_PERI_AO_SSUSB_2P_XHCI>;
657			clock-names = "sys_ck", "ref_ck", "xhci_ck";
658			status = "disabled";
659		};
660
661		xhci3: usb@112b0000 {
662			compatible = "mediatek,mt8195-xhci",
663				     "mediatek,mtk-xhci";
664			reg = <0 0x112b0000 0 0x1000>,
665			      <0 0x112b3e00 0 0x0100>;
666			reg-names = "mac", "ippc";
667			interrupts = <GIC_SPI 536 IRQ_TYPE_LEVEL_HIGH 0>;
668			phys = <&u2port3 PHY_TYPE_USB2>;
669			assigned-clocks = <&topckgen CLK_TOP_USB_TOP_3P>,
670					  <&topckgen CLK_TOP_SSUSB_XHCI_3P>;
671			assigned-clock-parents = <&topckgen CLK_TOP_UNIVPLL_D5_D4>,
672						 <&topckgen CLK_TOP_UNIVPLL_D5_D4>;
673			clocks = <&pericfg_ao CLK_PERI_AO_SSUSB_3P_BUS>,
674				 <&topckgen CLK_TOP_SSUSB_P3_REF>,
675				 <&pericfg_ao CLK_PERI_AO_SSUSB_3P_XHCI>;
676			clock-names = "sys_ck", "ref_ck", "xhci_ck";
677			status = "disabled";
678		};
679
680		nor_flash: spi@1132c000 {
681			compatible = "mediatek,mt8195-nor",
682				     "mediatek,mt8173-nor";
683			reg = <0 0x1132c000 0 0x1000>;
684			interrupts = <GIC_SPI 825 IRQ_TYPE_LEVEL_HIGH 0>;
685			clocks = <&topckgen CLK_TOP_SPINOR>,
686				 <&pericfg_ao CLK_PERI_AO_FLASHIF_FLASH>,
687				 <&pericfg_ao CLK_PERI_AO_FLASHIF_BUS>;
688			clock-names = "spi", "sf", "axi";
689			#address-cells = <1>;
690			#size-cells = <0>;
691			status = "disabled";
692		};
693
694		efuse: efuse@11c10000 {
695			compatible = "mediatek,mt8195-efuse", "mediatek,efuse";
696			reg = <0 0x11c10000 0 0x1000>;
697			#address-cells = <1>;
698			#size-cells = <1>;
699			u3_tx_imp_p0: usb3-tx-imp@184,1 {
700				reg = <0x184 0x1>;
701				bits = <0 5>;
702			};
703			u3_rx_imp_p0: usb3-rx-imp@184,2 {
704				reg = <0x184 0x2>;
705				bits = <5 5>;
706			};
707			u3_intr_p0: usb3-intr@185 {
708				reg = <0x185 0x1>;
709				bits = <2 6>;
710			};
711			comb_tx_imp_p1: usb3-tx-imp@186,1 {
712				reg = <0x186 0x1>;
713				bits = <0 5>;
714			};
715			comb_rx_imp_p1: usb3-rx-imp@186,2 {
716				reg = <0x186 0x2>;
717				bits = <5 5>;
718			};
719			comb_intr_p1: usb3-intr@187 {
720				reg = <0x187 0x1>;
721				bits = <2 6>;
722			};
723			u2_intr_p0: usb2-intr-p0@188,1 {
724				reg = <0x188 0x1>;
725				bits = <0 5>;
726			};
727			u2_intr_p1: usb2-intr-p1@188,2 {
728				reg = <0x188 0x2>;
729				bits = <5 5>;
730			};
731			u2_intr_p2: usb2-intr-p2@189,1 {
732				reg = <0x189 0x1>;
733				bits = <2 5>;
734			};
735			u2_intr_p3: usb2-intr-p3@189,2 {
736				reg = <0x189 0x2>;
737				bits = <7 5>;
738			};
739		};
740
741		u3phy2: t-phy@11c40000 {
742			compatible = "mediatek,mt8195-tphy", "mediatek,generic-tphy-v3";
743			#address-cells = <1>;
744			#size-cells = <1>;
745			ranges = <0 0 0x11c40000 0x700>;
746			status = "disabled";
747
748			u2port2: usb-phy@0 {
749				reg = <0x0 0x700>;
750				clocks = <&topckgen CLK_TOP_SSUSB_PHY_P2_REF>;
751				clock-names = "ref";
752				#phy-cells = <1>;
753			};
754		};
755
756		u3phy3: t-phy@11c50000 {
757			compatible = "mediatek,mt8195-tphy", "mediatek,generic-tphy-v3";
758			#address-cells = <1>;
759			#size-cells = <1>;
760			ranges = <0 0 0x11c50000 0x700>;
761			status = "disabled";
762
763			u2port3: usb-phy@0 {
764				reg = <0x0 0x700>;
765				clocks = <&topckgen CLK_TOP_SSUSB_PHY_P3_REF>;
766				clock-names = "ref";
767				#phy-cells = <1>;
768			};
769		};
770
771		i2c5: i2c@11d00000 {
772			compatible = "mediatek,mt8195-i2c",
773				     "mediatek,mt8192-i2c";
774			reg = <0 0x11d00000 0 0x1000>,
775			      <0 0x10220580 0 0x80>;
776			interrupts = <GIC_SPI 154 IRQ_TYPE_LEVEL_HIGH 0>;
777			clock-div = <1>;
778			clocks = <&imp_iic_wrap_s CLK_IMP_IIC_WRAP_S_I2C5>,
779				 <&infracfg_ao CLK_INFRA_AO_APDMA_B>;
780			clock-names = "main", "dma";
781			#address-cells = <1>;
782			#size-cells = <0>;
783			status = "disabled";
784		};
785
786		i2c6: i2c@11d01000 {
787			compatible = "mediatek,mt8195-i2c",
788				     "mediatek,mt8192-i2c";
789			reg = <0 0x11d01000 0 0x1000>,
790			      <0 0x10220600 0 0x80>;
791			interrupts = <GIC_SPI 155 IRQ_TYPE_LEVEL_HIGH 0>;
792			clock-div = <1>;
793			clocks = <&imp_iic_wrap_s CLK_IMP_IIC_WRAP_S_I2C6>,
794				 <&infracfg_ao CLK_INFRA_AO_APDMA_B>;
795			clock-names = "main", "dma";
796			#address-cells = <1>;
797			#size-cells = <0>;
798			status = "disabled";
799		};
800
801		i2c7: i2c@11d02000 {
802			compatible = "mediatek,mt8195-i2c",
803				     "mediatek,mt8192-i2c";
804			reg = <0 0x11d02000 0 0x1000>,
805			      <0 0x10220680 0 0x80>;
806			interrupts = <GIC_SPI 156 IRQ_TYPE_LEVEL_HIGH 0>;
807			clock-div = <1>;
808			clocks = <&imp_iic_wrap_s CLK_IMP_IIC_WRAP_S_I2C7>,
809				 <&infracfg_ao CLK_INFRA_AO_APDMA_B>;
810			clock-names = "main", "dma";
811			#address-cells = <1>;
812			#size-cells = <0>;
813			status = "disabled";
814		};
815
816		imp_iic_wrap_s: clock-controller@11d03000 {
817			compatible = "mediatek,mt8195-imp_iic_wrap_s";
818			reg = <0 0x11d03000 0 0x1000>;
819			#clock-cells = <1>;
820		};
821
822		i2c0: i2c@11e00000 {
823			compatible = "mediatek,mt8195-i2c",
824				     "mediatek,mt8192-i2c";
825			reg = <0 0x11e00000 0 0x1000>,
826			      <0 0x10220080 0 0x80>;
827			interrupts = <GIC_SPI 144 IRQ_TYPE_LEVEL_HIGH 0>;
828			clock-div = <1>;
829			clocks = <&imp_iic_wrap_w CLK_IMP_IIC_WRAP_W_I2C0>,
830				 <&infracfg_ao CLK_INFRA_AO_APDMA_B>;
831			clock-names = "main", "dma";
832			#address-cells = <1>;
833			#size-cells = <0>;
834			status = "okay";
835		};
836
837		i2c1: i2c@11e01000 {
838			compatible = "mediatek,mt8195-i2c",
839				     "mediatek,mt8192-i2c";
840			reg = <0 0x11e01000 0 0x1000>,
841			      <0 0x10220200 0 0x80>;
842			interrupts = <GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH 0>;
843			clock-div = <1>;
844			clocks = <&imp_iic_wrap_w CLK_IMP_IIC_WRAP_W_I2C1>,
845				 <&infracfg_ao CLK_INFRA_AO_APDMA_B>;
846			clock-names = "main", "dma";
847			#address-cells = <1>;
848			#size-cells = <0>;
849			status = "disabled";
850		};
851
852		i2c2: i2c@11e02000 {
853			compatible = "mediatek,mt8195-i2c",
854				     "mediatek,mt8192-i2c";
855			reg = <0 0x11e02000 0 0x1000>,
856			      <0 0x10220380 0 0x80>;
857			interrupts = <GIC_SPI 150 IRQ_TYPE_LEVEL_HIGH 0>;
858			clock-div = <1>;
859			clocks = <&imp_iic_wrap_w CLK_IMP_IIC_WRAP_W_I2C2>,
860				 <&infracfg_ao CLK_INFRA_AO_APDMA_B>;
861			clock-names = "main", "dma";
862			#address-cells = <1>;
863			#size-cells = <0>;
864			status = "disabled";
865		};
866
867		i2c3: i2c@11e03000 {
868			compatible = "mediatek,mt8195-i2c",
869				     "mediatek,mt8192-i2c";
870			reg = <0 0x11e03000 0 0x1000>,
871			      <0 0x10220480 0 0x80>;
872			interrupts = <GIC_SPI 152 IRQ_TYPE_LEVEL_HIGH 0>;
873			clock-div = <1>;
874			clocks = <&imp_iic_wrap_w CLK_IMP_IIC_WRAP_W_I2C3>,
875				 <&infracfg_ao CLK_INFRA_AO_APDMA_B>;
876			clock-names = "main", "dma";
877			#address-cells = <1>;
878			#size-cells = <0>;
879			status = "disabled";
880		};
881
882		i2c4: i2c@11e04000 {
883			compatible = "mediatek,mt8195-i2c",
884				     "mediatek,mt8192-i2c";
885			reg = <0 0x11e04000 0 0x1000>,
886			      <0 0x10220500 0 0x80>;
887			interrupts = <GIC_SPI 153 IRQ_TYPE_LEVEL_HIGH 0>;
888			clock-div = <1>;
889			clocks = <&imp_iic_wrap_w CLK_IMP_IIC_WRAP_W_I2C4>,
890				 <&infracfg_ao CLK_INFRA_AO_APDMA_B>;
891			clock-names = "main", "dma";
892			#address-cells = <1>;
893			#size-cells = <0>;
894			status = "disabled";
895		};
896
897		imp_iic_wrap_w: clock-controller@11e05000 {
898			compatible = "mediatek,mt8195-imp_iic_wrap_w";
899			reg = <0 0x11e05000 0 0x1000>;
900			#clock-cells = <1>;
901		};
902
903		u3phy1: t-phy@11e30000 {
904			compatible = "mediatek,mt8195-tphy", "mediatek,generic-tphy-v3";
905			#address-cells = <1>;
906			#size-cells = <1>;
907			ranges = <0 0 0x11e30000 0xe00>;
908			status = "disabled";
909
910			u2port1: usb-phy@0 {
911				reg = <0x0 0x700>;
912				clocks = <&topckgen CLK_TOP_SSUSB_PHY_P1_REF>,
913					 <&clk26m>;
914				clock-names = "ref", "da_ref";
915				#phy-cells = <1>;
916			};
917
918			u3port1: usb-phy@700 {
919				reg = <0x700 0x700>;
920				clocks = <&apmixedsys CLK_APMIXED_PLL_SSUSB26M>,
921					 <&topckgen CLK_TOP_SSUSB_PHY_P1_REF>;
922				clock-names = "ref", "da_ref";
923				nvmem-cells = <&comb_intr_p1>,
924					      <&comb_rx_imp_p1>,
925					      <&comb_tx_imp_p1>;
926				nvmem-cell-names = "intr", "rx_imp", "tx_imp";
927				#phy-cells = <1>;
928			};
929		};
930
931		u3phy0: t-phy@11e40000 {
932			compatible = "mediatek,mt8195-tphy", "mediatek,generic-tphy-v3";
933			#address-cells = <1>;
934			#size-cells = <1>;
935			ranges = <0 0 0x11e40000 0xe00>;
936			status = "disabled";
937
938			u2port0: usb-phy@0 {
939				reg = <0x0 0x700>;
940				clocks = <&topckgen CLK_TOP_SSUSB_PHY_REF>,
941					 <&clk26m>;
942				clock-names = "ref", "da_ref";
943				#phy-cells = <1>;
944			};
945
946			u3port0: usb-phy@700 {
947				reg = <0x700 0x700>;
948				clocks = <&apmixedsys CLK_APMIXED_PLL_SSUSB26M>,
949					 <&topckgen CLK_TOP_SSUSB_PHY_REF>;
950				clock-names = "ref", "da_ref";
951				nvmem-cells = <&u3_intr_p0>,
952					      <&u3_rx_imp_p0>,
953					      <&u3_tx_imp_p0>;
954				nvmem-cell-names = "intr", "rx_imp", "tx_imp";
955				#phy-cells = <1>;
956			};
957		};
958
959		ufsphy: ufs-phy@11fa0000 {
960			compatible = "mediatek,mt8195-ufsphy", "mediatek,mt8183-ufsphy";
961			reg = <0 0x11fa0000 0 0xc000>;
962			clocks = <&clk26m>, <&clk26m>;
963			clock-names = "unipro", "mp";
964			#phy-cells = <0>;
965			status = "disabled";
966		};
967
968		mfgcfg: clock-controller@13fbf000 {
969			compatible = "mediatek,mt8195-mfgcfg";
970			reg = <0 0x13fbf000 0 0x1000>;
971			#clock-cells = <1>;
972		};
973
974		wpesys: clock-controller@14e00000 {
975			compatible = "mediatek,mt8195-wpesys";
976			reg = <0 0x14e00000 0 0x1000>;
977			#clock-cells = <1>;
978		};
979
980		wpesys_vpp0: clock-controller@14e02000 {
981			compatible = "mediatek,mt8195-wpesys_vpp0";
982			reg = <0 0x14e02000 0 0x1000>;
983			#clock-cells = <1>;
984		};
985
986		wpesys_vpp1: clock-controller@14e03000 {
987			compatible = "mediatek,mt8195-wpesys_vpp1";
988			reg = <0 0x14e03000 0 0x1000>;
989			#clock-cells = <1>;
990		};
991
992		imgsys: clock-controller@15000000 {
993			compatible = "mediatek,mt8195-imgsys";
994			reg = <0 0x15000000 0 0x1000>;
995			#clock-cells = <1>;
996		};
997
998		imgsys1_dip_top: clock-controller@15110000 {
999			compatible = "mediatek,mt8195-imgsys1_dip_top";
1000			reg = <0 0x15110000 0 0x1000>;
1001			#clock-cells = <1>;
1002		};
1003
1004		imgsys1_dip_nr: clock-controller@15130000 {
1005			compatible = "mediatek,mt8195-imgsys1_dip_nr";
1006			reg = <0 0x15130000 0 0x1000>;
1007			#clock-cells = <1>;
1008		};
1009
1010		imgsys1_wpe: clock-controller@15220000 {
1011			compatible = "mediatek,mt8195-imgsys1_wpe";
1012			reg = <0 0x15220000 0 0x1000>;
1013			#clock-cells = <1>;
1014		};
1015
1016		ipesys: clock-controller@15330000 {
1017			compatible = "mediatek,mt8195-ipesys";
1018			reg = <0 0x15330000 0 0x1000>;
1019			#clock-cells = <1>;
1020		};
1021
1022		camsys: clock-controller@16000000 {
1023			compatible = "mediatek,mt8195-camsys";
1024			reg = <0 0x16000000 0 0x1000>;
1025			#clock-cells = <1>;
1026		};
1027
1028		camsys_rawa: clock-controller@1604f000 {
1029			compatible = "mediatek,mt8195-camsys_rawa";
1030			reg = <0 0x1604f000 0 0x1000>;
1031			#clock-cells = <1>;
1032		};
1033
1034		camsys_yuva: clock-controller@1606f000 {
1035			compatible = "mediatek,mt8195-camsys_yuva";
1036			reg = <0 0x1606f000 0 0x1000>;
1037			#clock-cells = <1>;
1038		};
1039
1040		camsys_rawb: clock-controller@1608f000 {
1041			compatible = "mediatek,mt8195-camsys_rawb";
1042			reg = <0 0x1608f000 0 0x1000>;
1043			#clock-cells = <1>;
1044		};
1045
1046		camsys_yuvb: clock-controller@160af000 {
1047			compatible = "mediatek,mt8195-camsys_yuvb";
1048			reg = <0 0x160af000 0 0x1000>;
1049			#clock-cells = <1>;
1050		};
1051
1052		camsys_mraw: clock-controller@16140000 {
1053			compatible = "mediatek,mt8195-camsys_mraw";
1054			reg = <0 0x16140000 0 0x1000>;
1055			#clock-cells = <1>;
1056		};
1057
1058		ccusys: clock-controller@17200000 {
1059			compatible = "mediatek,mt8195-ccusys";
1060			reg = <0 0x17200000 0 0x1000>;
1061			#clock-cells = <1>;
1062		};
1063
1064		vdecsys_soc: clock-controller@1800f000 {
1065			compatible = "mediatek,mt8195-vdecsys_soc";
1066			reg = <0 0x1800f000 0 0x1000>;
1067			#clock-cells = <1>;
1068		};
1069
1070		vdecsys: clock-controller@1802f000 {
1071			compatible = "mediatek,mt8195-vdecsys";
1072			reg = <0 0x1802f000 0 0x1000>;
1073			#clock-cells = <1>;
1074		};
1075
1076		vdecsys_core1: clock-controller@1803f000 {
1077			compatible = "mediatek,mt8195-vdecsys_core1";
1078			reg = <0 0x1803f000 0 0x1000>;
1079			#clock-cells = <1>;
1080		};
1081
1082		apusys_pll: clock-controller@190f3000 {
1083			compatible = "mediatek,mt8195-apusys_pll";
1084			reg = <0 0x190f3000 0 0x1000>;
1085			#clock-cells = <1>;
1086		};
1087
1088		vencsys: clock-controller@1a000000 {
1089			compatible = "mediatek,mt8195-vencsys";
1090			reg = <0 0x1a000000 0 0x1000>;
1091			#clock-cells = <1>;
1092		};
1093
1094		vencsys_core1: clock-controller@1b000000 {
1095			compatible = "mediatek,mt8195-vencsys_core1";
1096			reg = <0 0x1b000000 0 0x1000>;
1097			#clock-cells = <1>;
1098		};
1099	};
1100};
1101