xref: /OK3568_Linux_fs/kernel/scripts/dtc/include-prefixes/arm64/mediatek/mt8516.dtsi (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun// SPDX-License-Identifier: GPL-2.0
2*4882a593Smuzhiyun/*
3*4882a593Smuzhiyun * Copyright (c) 2019 MediaTek Inc.
4*4882a593Smuzhiyun * Copyright (c) 2019 BayLibre, SAS.
5*4882a593Smuzhiyun * Author: Fabien Parent <fparent@baylibre.com>
6*4882a593Smuzhiyun */
7*4882a593Smuzhiyun
8*4882a593Smuzhiyun#include <dt-bindings/clock/mt8516-clk.h>
9*4882a593Smuzhiyun#include <dt-bindings/interrupt-controller/arm-gic.h>
10*4882a593Smuzhiyun#include <dt-bindings/interrupt-controller/irq.h>
11*4882a593Smuzhiyun#include <dt-bindings/phy/phy.h>
12*4882a593Smuzhiyun
13*4882a593Smuzhiyun#include "mt8516-pinfunc.h"
14*4882a593Smuzhiyun
15*4882a593Smuzhiyun/ {
16*4882a593Smuzhiyun	compatible = "mediatek,mt8516";
17*4882a593Smuzhiyun	interrupt-parent = <&sysirq>;
18*4882a593Smuzhiyun	#address-cells = <2>;
19*4882a593Smuzhiyun	#size-cells = <2>;
20*4882a593Smuzhiyun
21*4882a593Smuzhiyun	cluster0_opp: opp-table-0 {
22*4882a593Smuzhiyun		compatible = "operating-points-v2";
23*4882a593Smuzhiyun		opp-shared;
24*4882a593Smuzhiyun		opp-598000000 {
25*4882a593Smuzhiyun			opp-hz = /bits/ 64 <598000000>;
26*4882a593Smuzhiyun			opp-microvolt = <1150000>;
27*4882a593Smuzhiyun		};
28*4882a593Smuzhiyun		opp-747500000 {
29*4882a593Smuzhiyun			opp-hz = /bits/ 64 <747500000>;
30*4882a593Smuzhiyun			opp-microvolt = <1150000>;
31*4882a593Smuzhiyun		};
32*4882a593Smuzhiyun		opp-1040000000 {
33*4882a593Smuzhiyun			opp-hz = /bits/ 64 <1040000000>;
34*4882a593Smuzhiyun			opp-microvolt = <1200000>;
35*4882a593Smuzhiyun		};
36*4882a593Smuzhiyun		opp-1196000000 {
37*4882a593Smuzhiyun			opp-hz = /bits/ 64 <1196000000>;
38*4882a593Smuzhiyun			opp-microvolt = <1250000>;
39*4882a593Smuzhiyun		};
40*4882a593Smuzhiyun		opp-1300000000 {
41*4882a593Smuzhiyun			opp-hz = /bits/ 64 <1300000000>;
42*4882a593Smuzhiyun			opp-microvolt = <1300000>;
43*4882a593Smuzhiyun		};
44*4882a593Smuzhiyun	};
45*4882a593Smuzhiyun
46*4882a593Smuzhiyun	cpus {
47*4882a593Smuzhiyun		#address-cells = <1>;
48*4882a593Smuzhiyun		#size-cells = <0>;
49*4882a593Smuzhiyun
50*4882a593Smuzhiyun		cpu0: cpu@0 {
51*4882a593Smuzhiyun			device_type = "cpu";
52*4882a593Smuzhiyun			compatible = "arm,cortex-a35";
53*4882a593Smuzhiyun			reg = <0x0>;
54*4882a593Smuzhiyun			enable-method = "psci";
55*4882a593Smuzhiyun			cpu-idle-states = <&CLUSTER_SLEEP_0 &CLUSTER_SLEEP_0>,
56*4882a593Smuzhiyun				<&CPU_SLEEP_0_0 &CPU_SLEEP_0_0 &CPU_SLEEP_0_0>;
57*4882a593Smuzhiyun			clocks = <&infracfg CLK_IFR_MUX1_SEL>,
58*4882a593Smuzhiyun				 <&topckgen CLK_TOP_MAINPLL_D2>;
59*4882a593Smuzhiyun			clock-names = "cpu", "intermediate";
60*4882a593Smuzhiyun			operating-points-v2 = <&cluster0_opp>;
61*4882a593Smuzhiyun		};
62*4882a593Smuzhiyun
63*4882a593Smuzhiyun		cpu1: cpu@1 {
64*4882a593Smuzhiyun			device_type = "cpu";
65*4882a593Smuzhiyun			compatible = "arm,cortex-a35";
66*4882a593Smuzhiyun			reg = <0x1>;
67*4882a593Smuzhiyun			enable-method = "psci";
68*4882a593Smuzhiyun			cpu-idle-states = <&CLUSTER_SLEEP_0 &CLUSTER_SLEEP_0>,
69*4882a593Smuzhiyun				<&CPU_SLEEP_0_0 &CPU_SLEEP_0_0 &CPU_SLEEP_0_0>;
70*4882a593Smuzhiyun			clocks = <&infracfg CLK_IFR_MUX1_SEL>,
71*4882a593Smuzhiyun				 <&topckgen CLK_TOP_MAINPLL_D2>;
72*4882a593Smuzhiyun			clock-names = "cpu", "intermediate";
73*4882a593Smuzhiyun			operating-points-v2 = <&cluster0_opp>;
74*4882a593Smuzhiyun		};
75*4882a593Smuzhiyun
76*4882a593Smuzhiyun		cpu2: cpu@2 {
77*4882a593Smuzhiyun			device_type = "cpu";
78*4882a593Smuzhiyun			compatible = "arm,cortex-a35";
79*4882a593Smuzhiyun			reg = <0x2>;
80*4882a593Smuzhiyun			enable-method = "psci";
81*4882a593Smuzhiyun			cpu-idle-states = <&CLUSTER_SLEEP_0 &CLUSTER_SLEEP_0>,
82*4882a593Smuzhiyun				<&CPU_SLEEP_0_0 &CPU_SLEEP_0_0 &CPU_SLEEP_0_0>;
83*4882a593Smuzhiyun			clocks = <&infracfg CLK_IFR_MUX1_SEL>,
84*4882a593Smuzhiyun				 <&topckgen CLK_TOP_MAINPLL_D2>;
85*4882a593Smuzhiyun			clock-names = "cpu", "intermediate";
86*4882a593Smuzhiyun			operating-points-v2 = <&cluster0_opp>;
87*4882a593Smuzhiyun		};
88*4882a593Smuzhiyun
89*4882a593Smuzhiyun		cpu3: cpu@3 {
90*4882a593Smuzhiyun			device_type = "cpu";
91*4882a593Smuzhiyun			compatible = "arm,cortex-a35";
92*4882a593Smuzhiyun			reg = <0x3>;
93*4882a593Smuzhiyun			enable-method = "psci";
94*4882a593Smuzhiyun			cpu-idle-states = <&CLUSTER_SLEEP_0 &CLUSTER_SLEEP_0>,
95*4882a593Smuzhiyun				<&CPU_SLEEP_0_0 &CPU_SLEEP_0_0 &CPU_SLEEP_0_0>;
96*4882a593Smuzhiyun			clocks = <&infracfg CLK_IFR_MUX1_SEL>,
97*4882a593Smuzhiyun				 <&topckgen CLK_TOP_MAINPLL_D2>;
98*4882a593Smuzhiyun			clock-names = "cpu", "intermediate", "armpll";
99*4882a593Smuzhiyun			operating-points-v2 = <&cluster0_opp>;
100*4882a593Smuzhiyun		};
101*4882a593Smuzhiyun
102*4882a593Smuzhiyun		idle-states {
103*4882a593Smuzhiyun			entry-method = "psci";
104*4882a593Smuzhiyun
105*4882a593Smuzhiyun			CPU_SLEEP_0_0: cpu-sleep-0-0 {
106*4882a593Smuzhiyun				compatible = "arm,idle-state";
107*4882a593Smuzhiyun				entry-latency-us = <600>;
108*4882a593Smuzhiyun				exit-latency-us = <600>;
109*4882a593Smuzhiyun				min-residency-us = <1200>;
110*4882a593Smuzhiyun				arm,psci-suspend-param = <0x0010000>;
111*4882a593Smuzhiyun			};
112*4882a593Smuzhiyun
113*4882a593Smuzhiyun			CLUSTER_SLEEP_0: cluster-sleep-0 {
114*4882a593Smuzhiyun				compatible = "arm,idle-state";
115*4882a593Smuzhiyun				entry-latency-us = <800>;
116*4882a593Smuzhiyun				exit-latency-us = <1000>;
117*4882a593Smuzhiyun				min-residency-us = <2000>;
118*4882a593Smuzhiyun				arm,psci-suspend-param = <0x2010000>;
119*4882a593Smuzhiyun			};
120*4882a593Smuzhiyun		};
121*4882a593Smuzhiyun	};
122*4882a593Smuzhiyun
123*4882a593Smuzhiyun	psci {
124*4882a593Smuzhiyun		compatible = "arm,psci-1.0";
125*4882a593Smuzhiyun		method = "smc";
126*4882a593Smuzhiyun	};
127*4882a593Smuzhiyun
128*4882a593Smuzhiyun	clk26m: clk26m {
129*4882a593Smuzhiyun		compatible = "fixed-clock";
130*4882a593Smuzhiyun		#clock-cells = <0>;
131*4882a593Smuzhiyun		clock-frequency = <26000000>;
132*4882a593Smuzhiyun		clock-output-names = "clk26m";
133*4882a593Smuzhiyun	};
134*4882a593Smuzhiyun
135*4882a593Smuzhiyun	clk32k: clk32k {
136*4882a593Smuzhiyun		compatible = "fixed-clock";
137*4882a593Smuzhiyun		#clock-cells = <0>;
138*4882a593Smuzhiyun		clock-frequency = <32000>;
139*4882a593Smuzhiyun		clock-output-names = "clk32k";
140*4882a593Smuzhiyun	};
141*4882a593Smuzhiyun
142*4882a593Smuzhiyun	reserved-memory {
143*4882a593Smuzhiyun		#address-cells = <2>;
144*4882a593Smuzhiyun		#size-cells = <2>;
145*4882a593Smuzhiyun		ranges;
146*4882a593Smuzhiyun
147*4882a593Smuzhiyun		/* 128 KiB reserved for ARM Trusted Firmware (BL31) */
148*4882a593Smuzhiyun		bl31_secmon_reserved: secmon@43000000 {
149*4882a593Smuzhiyun			no-map;
150*4882a593Smuzhiyun			reg = <0 0x43000000 0 0x20000>;
151*4882a593Smuzhiyun		};
152*4882a593Smuzhiyun	};
153*4882a593Smuzhiyun
154*4882a593Smuzhiyun	timer {
155*4882a593Smuzhiyun		compatible = "arm,armv8-timer";
156*4882a593Smuzhiyun		interrupt-parent = <&gic>;
157*4882a593Smuzhiyun		interrupts = <GIC_PPI 13
158*4882a593Smuzhiyun			     (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
159*4882a593Smuzhiyun			     <GIC_PPI 14
160*4882a593Smuzhiyun			     (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
161*4882a593Smuzhiyun			     <GIC_PPI 11
162*4882a593Smuzhiyun			     (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
163*4882a593Smuzhiyun			     <GIC_PPI 10
164*4882a593Smuzhiyun			     (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
165*4882a593Smuzhiyun	};
166*4882a593Smuzhiyun
167*4882a593Smuzhiyun	pmu {
168*4882a593Smuzhiyun		compatible = "arm,armv8-pmuv3";
169*4882a593Smuzhiyun		interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_LOW>,
170*4882a593Smuzhiyun			     <GIC_SPI 5 IRQ_TYPE_LEVEL_LOW>,
171*4882a593Smuzhiyun			     <GIC_SPI 6 IRQ_TYPE_LEVEL_LOW>,
172*4882a593Smuzhiyun			     <GIC_SPI 7 IRQ_TYPE_LEVEL_LOW>;
173*4882a593Smuzhiyun		interrupt-affinity = <&cpu0>, <&cpu1>, <&cpu2>, <&cpu3>;
174*4882a593Smuzhiyun	};
175*4882a593Smuzhiyun
176*4882a593Smuzhiyun	soc {
177*4882a593Smuzhiyun		#address-cells = <2>;
178*4882a593Smuzhiyun		#size-cells = <2>;
179*4882a593Smuzhiyun		compatible = "simple-bus";
180*4882a593Smuzhiyun		ranges;
181*4882a593Smuzhiyun
182*4882a593Smuzhiyun		topckgen: topckgen@10000000 {
183*4882a593Smuzhiyun			compatible = "mediatek,mt8516-topckgen", "syscon";
184*4882a593Smuzhiyun			reg = <0 0x10000000 0 0x1000>;
185*4882a593Smuzhiyun			#clock-cells = <1>;
186*4882a593Smuzhiyun		};
187*4882a593Smuzhiyun
188*4882a593Smuzhiyun		infracfg: infracfg@10001000 {
189*4882a593Smuzhiyun			compatible = "mediatek,mt8516-infracfg", "syscon";
190*4882a593Smuzhiyun			reg = <0 0x10001000 0 0x1000>;
191*4882a593Smuzhiyun			#clock-cells = <1>;
192*4882a593Smuzhiyun		};
193*4882a593Smuzhiyun
194*4882a593Smuzhiyun		pericfg: pericfg@10003050 {
195*4882a593Smuzhiyun			compatible = "mediatek,mt8516-pericfg", "syscon";
196*4882a593Smuzhiyun			reg = <0 0x10003050 0 0x1000>;
197*4882a593Smuzhiyun		};
198*4882a593Smuzhiyun
199*4882a593Smuzhiyun		apmixedsys: apmixedsys@10018000 {
200*4882a593Smuzhiyun			compatible = "mediatek,mt8516-apmixedsys", "syscon";
201*4882a593Smuzhiyun			reg = <0 0x10018000 0 0x710>;
202*4882a593Smuzhiyun			#clock-cells = <1>;
203*4882a593Smuzhiyun		};
204*4882a593Smuzhiyun
205*4882a593Smuzhiyun		toprgu: toprgu@10007000 {
206*4882a593Smuzhiyun			compatible = "mediatek,mt8516-wdt",
207*4882a593Smuzhiyun				     "mediatek,mt6589-wdt";
208*4882a593Smuzhiyun			reg = <0 0x10007000 0 0x1000>;
209*4882a593Smuzhiyun			interrupts = <GIC_SPI 198 IRQ_TYPE_EDGE_FALLING>;
210*4882a593Smuzhiyun			#reset-cells = <1>;
211*4882a593Smuzhiyun		};
212*4882a593Smuzhiyun
213*4882a593Smuzhiyun		timer: timer@10008000 {
214*4882a593Smuzhiyun			compatible = "mediatek,mt8516-timer",
215*4882a593Smuzhiyun				     "mediatek,mt6577-timer";
216*4882a593Smuzhiyun			reg = <0 0x10008000 0 0x1000>;
217*4882a593Smuzhiyun			interrupts = <GIC_SPI 132 IRQ_TYPE_LEVEL_LOW>;
218*4882a593Smuzhiyun			clocks = <&topckgen CLK_TOP_CLK26M_D2>,
219*4882a593Smuzhiyun				 <&topckgen CLK_TOP_APXGPT>;
220*4882a593Smuzhiyun			clock-names = "clk13m", "bus";
221*4882a593Smuzhiyun		};
222*4882a593Smuzhiyun
223*4882a593Smuzhiyun		syscfg_pctl: syscfg-pctl@10005000 {
224*4882a593Smuzhiyun			compatible = "syscon";
225*4882a593Smuzhiyun			reg = <0 0x10005000 0 0x1000>;
226*4882a593Smuzhiyun		};
227*4882a593Smuzhiyun
228*4882a593Smuzhiyun		pio: pinctrl@1000b000 {
229*4882a593Smuzhiyun			compatible = "mediatek,mt8516-pinctrl";
230*4882a593Smuzhiyun			reg = <0 0x1000b000 0 0x1000>;
231*4882a593Smuzhiyun			mediatek,pctl-regmap = <&syscfg_pctl>;
232*4882a593Smuzhiyun			pins-are-numbered;
233*4882a593Smuzhiyun			gpio-controller;
234*4882a593Smuzhiyun			#gpio-cells = <2>;
235*4882a593Smuzhiyun			interrupt-controller;
236*4882a593Smuzhiyun			#interrupt-cells = <2>;
237*4882a593Smuzhiyun			interrupts = <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>;
238*4882a593Smuzhiyun		};
239*4882a593Smuzhiyun
240*4882a593Smuzhiyun		pwrap: pwrap@1000f000 {
241*4882a593Smuzhiyun			compatible = "mediatek,mt8516-pwrap";
242*4882a593Smuzhiyun			reg = <0 0x1000f000 0 0x1000>;
243*4882a593Smuzhiyun			reg-names = "pwrap";
244*4882a593Smuzhiyun			interrupts = <GIC_SPI 204 IRQ_TYPE_LEVEL_LOW>;
245*4882a593Smuzhiyun			clocks = <&topckgen CLK_TOP_PMICWRAP_26M>,
246*4882a593Smuzhiyun				 <&topckgen CLK_TOP_PMICWRAP_AP>;
247*4882a593Smuzhiyun			clock-names = "spi", "wrap";
248*4882a593Smuzhiyun		};
249*4882a593Smuzhiyun
250*4882a593Smuzhiyun		sysirq: interrupt-controller@10200620 {
251*4882a593Smuzhiyun			compatible = "mediatek,mt8516-sysirq",
252*4882a593Smuzhiyun				     "mediatek,mt6577-sysirq";
253*4882a593Smuzhiyun			interrupt-controller;
254*4882a593Smuzhiyun			#interrupt-cells = <3>;
255*4882a593Smuzhiyun			interrupt-parent = <&gic>;
256*4882a593Smuzhiyun			reg = <0 0x10200620 0 0x20>;
257*4882a593Smuzhiyun		};
258*4882a593Smuzhiyun
259*4882a593Smuzhiyun		gic: interrupt-controller@10310000 {
260*4882a593Smuzhiyun			compatible = "arm,gic-400";
261*4882a593Smuzhiyun			#interrupt-cells = <3>;
262*4882a593Smuzhiyun			interrupt-parent = <&gic>;
263*4882a593Smuzhiyun			interrupt-controller;
264*4882a593Smuzhiyun			reg = <0 0x10310000 0 0x1000>,
265*4882a593Smuzhiyun			      <0 0x10320000 0 0x1000>,
266*4882a593Smuzhiyun			      <0 0x10340000 0 0x2000>,
267*4882a593Smuzhiyun			      <0 0x10360000 0 0x2000>;
268*4882a593Smuzhiyun			interrupts = <GIC_PPI 9
269*4882a593Smuzhiyun				(GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
270*4882a593Smuzhiyun		};
271*4882a593Smuzhiyun
272*4882a593Smuzhiyun		uart0: serial@11005000 {
273*4882a593Smuzhiyun			compatible = "mediatek,mt8516-uart",
274*4882a593Smuzhiyun				     "mediatek,mt6577-uart";
275*4882a593Smuzhiyun			reg = <0 0x11005000 0 0x1000>;
276*4882a593Smuzhiyun			interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_LOW>;
277*4882a593Smuzhiyun			clocks = <&topckgen CLK_TOP_UART0_SEL>,
278*4882a593Smuzhiyun				 <&topckgen CLK_TOP_UART0>;
279*4882a593Smuzhiyun			clock-names = "baud", "bus";
280*4882a593Smuzhiyun			status = "disabled";
281*4882a593Smuzhiyun		};
282*4882a593Smuzhiyun
283*4882a593Smuzhiyun		uart1: serial@11006000 {
284*4882a593Smuzhiyun			compatible = "mediatek,mt8516-uart",
285*4882a593Smuzhiyun				     "mediatek,mt6577-uart";
286*4882a593Smuzhiyun			reg = <0 0x11006000 0 0x1000>;
287*4882a593Smuzhiyun			interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_LOW>;
288*4882a593Smuzhiyun			clocks = <&topckgen CLK_TOP_UART1_SEL>,
289*4882a593Smuzhiyun				 <&topckgen CLK_TOP_UART1>;
290*4882a593Smuzhiyun			clock-names = "baud", "bus";
291*4882a593Smuzhiyun			status = "disabled";
292*4882a593Smuzhiyun		};
293*4882a593Smuzhiyun
294*4882a593Smuzhiyun		uart2: serial@11007000 {
295*4882a593Smuzhiyun			compatible = "mediatek,mt8516-uart",
296*4882a593Smuzhiyun				     "mediatek,mt6577-uart";
297*4882a593Smuzhiyun			reg = <0 0x11007000 0 0x1000>;
298*4882a593Smuzhiyun			interrupts = <GIC_SPI 211 IRQ_TYPE_LEVEL_LOW>;
299*4882a593Smuzhiyun			clocks = <&topckgen CLK_TOP_UART2_SEL>,
300*4882a593Smuzhiyun				 <&topckgen CLK_TOP_UART2>;
301*4882a593Smuzhiyun			clock-names = "baud", "bus";
302*4882a593Smuzhiyun			status = "disabled";
303*4882a593Smuzhiyun		};
304*4882a593Smuzhiyun
305*4882a593Smuzhiyun		i2c0: i2c@11009000 {
306*4882a593Smuzhiyun			compatible = "mediatek,mt8516-i2c",
307*4882a593Smuzhiyun				     "mediatek,mt2712-i2c";
308*4882a593Smuzhiyun			reg = <0 0x11009000 0 0x90>,
309*4882a593Smuzhiyun			      <0 0x11000180 0 0x80>;
310*4882a593Smuzhiyun			interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_LOW>;
311*4882a593Smuzhiyun			clocks = <&topckgen CLK_TOP_AHB_INFRA_D2>,
312*4882a593Smuzhiyun				 <&infracfg CLK_IFR_I2C0_SEL>,
313*4882a593Smuzhiyun				 <&topckgen CLK_TOP_I2C0>,
314*4882a593Smuzhiyun				 <&topckgen CLK_TOP_APDMA>;
315*4882a593Smuzhiyun			clock-names = "main-source",
316*4882a593Smuzhiyun				      "main-sel",
317*4882a593Smuzhiyun				      "main",
318*4882a593Smuzhiyun				      "dma";
319*4882a593Smuzhiyun			#address-cells = <1>;
320*4882a593Smuzhiyun			#size-cells = <0>;
321*4882a593Smuzhiyun			status = "disabled";
322*4882a593Smuzhiyun		};
323*4882a593Smuzhiyun
324*4882a593Smuzhiyun		i2c1: i2c@1100a000 {
325*4882a593Smuzhiyun			compatible = "mediatek,mt8516-i2c",
326*4882a593Smuzhiyun				     "mediatek,mt2712-i2c";
327*4882a593Smuzhiyun			reg = <0 0x1100a000 0 0x90>,
328*4882a593Smuzhiyun			      <0 0x11000200 0 0x80>;
329*4882a593Smuzhiyun			interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_LOW>;
330*4882a593Smuzhiyun			clocks = <&topckgen CLK_TOP_AHB_INFRA_D2>,
331*4882a593Smuzhiyun				 <&infracfg CLK_IFR_I2C1_SEL>,
332*4882a593Smuzhiyun				 <&topckgen CLK_TOP_I2C1>,
333*4882a593Smuzhiyun				 <&topckgen CLK_TOP_APDMA>;
334*4882a593Smuzhiyun			clock-names = "main-source",
335*4882a593Smuzhiyun				      "main-sel",
336*4882a593Smuzhiyun				      "main",
337*4882a593Smuzhiyun				      "dma";
338*4882a593Smuzhiyun			#address-cells = <1>;
339*4882a593Smuzhiyun			#size-cells = <0>;
340*4882a593Smuzhiyun			status = "disabled";
341*4882a593Smuzhiyun		};
342*4882a593Smuzhiyun
343*4882a593Smuzhiyun		i2c2: i2c@1100b000 {
344*4882a593Smuzhiyun			compatible = "mediatek,mt8516-i2c",
345*4882a593Smuzhiyun				     "mediatek,mt2712-i2c";
346*4882a593Smuzhiyun			reg = <0 0x1100b000 0 0x90>,
347*4882a593Smuzhiyun			      <0 0x11000280 0 0x80>;
348*4882a593Smuzhiyun			interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_LOW>;
349*4882a593Smuzhiyun			clocks = <&topckgen CLK_TOP_AHB_INFRA_D2>,
350*4882a593Smuzhiyun				 <&infracfg CLK_IFR_I2C2_SEL>,
351*4882a593Smuzhiyun				 <&topckgen CLK_TOP_I2C2>,
352*4882a593Smuzhiyun				 <&topckgen CLK_TOP_APDMA>;
353*4882a593Smuzhiyun			clock-names = "main-source",
354*4882a593Smuzhiyun				      "main-sel",
355*4882a593Smuzhiyun				      "main",
356*4882a593Smuzhiyun				      "dma";
357*4882a593Smuzhiyun			#address-cells = <1>;
358*4882a593Smuzhiyun			#size-cells = <0>;
359*4882a593Smuzhiyun			status = "disabled";
360*4882a593Smuzhiyun		};
361*4882a593Smuzhiyun
362*4882a593Smuzhiyun		spi: spi@1100c000 {
363*4882a593Smuzhiyun			compatible = "mediatek,mt8516-spi",
364*4882a593Smuzhiyun				     "mediatek,mt2712-spi";
365*4882a593Smuzhiyun			#address-cells = <1>;
366*4882a593Smuzhiyun			#size-cells = <0>;
367*4882a593Smuzhiyun			reg = <0 0x1100c000 0 0x1000>;
368*4882a593Smuzhiyun			interrupts = <GIC_SPI 104 IRQ_TYPE_LEVEL_LOW>;
369*4882a593Smuzhiyun			clocks = <&topckgen CLK_TOP_UNIVPLL_D12>,
370*4882a593Smuzhiyun				 <&topckgen CLK_TOP_SPI_SEL>,
371*4882a593Smuzhiyun				 <&topckgen CLK_TOP_SPI>;
372*4882a593Smuzhiyun			clock-names = "parent-clk", "sel-clk", "spi-clk";
373*4882a593Smuzhiyun			status = "disabled";
374*4882a593Smuzhiyun		};
375*4882a593Smuzhiyun
376*4882a593Smuzhiyun		mmc0: mmc@11120000 {
377*4882a593Smuzhiyun			compatible = "mediatek,mt8516-mmc";
378*4882a593Smuzhiyun			reg = <0 0x11120000 0 0x1000>;
379*4882a593Smuzhiyun			interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_LOW>;
380*4882a593Smuzhiyun			clocks = <&topckgen CLK_TOP_MSDC0>,
381*4882a593Smuzhiyun				 <&topckgen CLK_TOP_AHB_INFRA_SEL>,
382*4882a593Smuzhiyun				 <&topckgen CLK_TOP_MSDC0_INFRA>;
383*4882a593Smuzhiyun			clock-names = "source", "hclk", "source_cg";
384*4882a593Smuzhiyun			status = "disabled";
385*4882a593Smuzhiyun		};
386*4882a593Smuzhiyun
387*4882a593Smuzhiyun		mmc1: mmc@11130000 {
388*4882a593Smuzhiyun			compatible = "mediatek,mt8516-mmc";
389*4882a593Smuzhiyun			reg = <0 0x11130000 0 0x1000>;
390*4882a593Smuzhiyun			interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_LOW>;
391*4882a593Smuzhiyun			clocks = <&topckgen CLK_TOP_MSDC1>,
392*4882a593Smuzhiyun				 <&topckgen CLK_TOP_AHB_INFRA_SEL>,
393*4882a593Smuzhiyun				 <&topckgen CLK_TOP_MSDC1_INFRA>;
394*4882a593Smuzhiyun			clock-names = "source", "hclk", "source_cg";
395*4882a593Smuzhiyun			status = "disabled";
396*4882a593Smuzhiyun		};
397*4882a593Smuzhiyun
398*4882a593Smuzhiyun		mmc2: mmc@11170000 {
399*4882a593Smuzhiyun			compatible = "mediatek,mt8516-mmc";
400*4882a593Smuzhiyun			reg = <0 0x11170000 0 0x1000>;
401*4882a593Smuzhiyun			interrupts = <GIC_SPI 109 IRQ_TYPE_LEVEL_LOW>;
402*4882a593Smuzhiyun			clocks = <&topckgen CLK_TOP_MSDC2>,
403*4882a593Smuzhiyun				 <&topckgen CLK_TOP_RG_MSDC2>,
404*4882a593Smuzhiyun				 <&topckgen CLK_TOP_MSDC2_INFRA>;
405*4882a593Smuzhiyun			clock-names = "source", "hclk", "source_cg";
406*4882a593Smuzhiyun			status = "disabled";
407*4882a593Smuzhiyun		};
408*4882a593Smuzhiyun
409*4882a593Smuzhiyun		ethernet: ethernet@11180000 {
410*4882a593Smuzhiyun			compatible = "mediatek,mt8516-eth";
411*4882a593Smuzhiyun			reg = <0 0x11180000 0 0x1000>;
412*4882a593Smuzhiyun			mediatek,pericfg = <&pericfg>;
413*4882a593Smuzhiyun			interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_LOW>;
414*4882a593Smuzhiyun			clocks = <&topckgen CLK_TOP_RG_ETH>,
415*4882a593Smuzhiyun				 <&topckgen CLK_TOP_66M_ETH>,
416*4882a593Smuzhiyun				 <&topckgen CLK_TOP_133M_ETH>;
417*4882a593Smuzhiyun			clock-names = "core", "reg", "trans";
418*4882a593Smuzhiyun			status = "disabled";
419*4882a593Smuzhiyun		};
420*4882a593Smuzhiyun
421*4882a593Smuzhiyun		rng: rng@1020c000 {
422*4882a593Smuzhiyun			compatible = "mediatek,mt8516-rng",
423*4882a593Smuzhiyun				     "mediatek,mt7623-rng";
424*4882a593Smuzhiyun			reg = <0 0x1020c000 0 0x100>;
425*4882a593Smuzhiyun			clocks = <&topckgen CLK_TOP_TRNG>;
426*4882a593Smuzhiyun			clock-names = "rng";
427*4882a593Smuzhiyun		};
428*4882a593Smuzhiyun
429*4882a593Smuzhiyun		pwm: pwm@11008000 {
430*4882a593Smuzhiyun			compatible = "mediatek,mt8516-pwm";
431*4882a593Smuzhiyun			reg = <0 0x11008000 0 0x1000>;
432*4882a593Smuzhiyun			#pwm-cells = <2>;
433*4882a593Smuzhiyun			interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_LOW>;
434*4882a593Smuzhiyun			clocks = <&topckgen CLK_TOP_PWM>,
435*4882a593Smuzhiyun				 <&topckgen CLK_TOP_PWM_B>,
436*4882a593Smuzhiyun				 <&topckgen CLK_TOP_PWM1_FB>,
437*4882a593Smuzhiyun				 <&topckgen CLK_TOP_PWM2_FB>,
438*4882a593Smuzhiyun				 <&topckgen CLK_TOP_PWM3_FB>,
439*4882a593Smuzhiyun				 <&topckgen CLK_TOP_PWM4_FB>,
440*4882a593Smuzhiyun				 <&topckgen CLK_TOP_PWM5_FB>;
441*4882a593Smuzhiyun			clock-names = "top", "main", "pwm1", "pwm2", "pwm3",
442*4882a593Smuzhiyun				      "pwm4", "pwm5";
443*4882a593Smuzhiyun		};
444*4882a593Smuzhiyun
445*4882a593Smuzhiyun		usb0: usb@11100000 {
446*4882a593Smuzhiyun			compatible = "mediatek,mtk-musb";
447*4882a593Smuzhiyun			reg = <0 0x11100000 0 0x1000>;
448*4882a593Smuzhiyun			interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_LOW>;
449*4882a593Smuzhiyun			interrupt-names = "mc";
450*4882a593Smuzhiyun			phys = <&usb0_port PHY_TYPE_USB2>;
451*4882a593Smuzhiyun			clocks = <&topckgen CLK_TOP_USB>,
452*4882a593Smuzhiyun				 <&topckgen CLK_TOP_USBIF>,
453*4882a593Smuzhiyun				 <&topckgen CLK_TOP_USB_1P>;
454*4882a593Smuzhiyun			clock-names = "main","mcu","univpll";
455*4882a593Smuzhiyun			status = "disabled";
456*4882a593Smuzhiyun		};
457*4882a593Smuzhiyun
458*4882a593Smuzhiyun		usb0_phy: usb@11110000 {
459*4882a593Smuzhiyun			compatible = "mediatek,generic-tphy-v1";
460*4882a593Smuzhiyun			reg = <0 0x11110000 0 0x800>;
461*4882a593Smuzhiyun			#address-cells = <2>;
462*4882a593Smuzhiyun			#size-cells = <2>;
463*4882a593Smuzhiyun			ranges;
464*4882a593Smuzhiyun			status = "disabled";
465*4882a593Smuzhiyun
466*4882a593Smuzhiyun			usb0_port: usb-phy@11110800 {
467*4882a593Smuzhiyun				reg = <0 0x11110800 0 0x100>;
468*4882a593Smuzhiyun				clocks = <&topckgen CLK_TOP_USB_PHY48M>;
469*4882a593Smuzhiyun				clock-names = "ref";
470*4882a593Smuzhiyun				#phy-cells = <1>;
471*4882a593Smuzhiyun			};
472*4882a593Smuzhiyun		};
473*4882a593Smuzhiyun	};
474*4882a593Smuzhiyun};
475