xref: /OK3568_Linux_fs/kernel/arch/arm/boot/dts/mt7623.dtsi (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun// SPDX-License-Identifier: GPL-2.0
2*4882a593Smuzhiyun/*
3*4882a593Smuzhiyun * Copyright (c) 2017-2018 MediaTek Inc.
4*4882a593Smuzhiyun * Author: John Crispin <john@phrozen.org>
5*4882a593Smuzhiyun *	   Sean Wang <sean.wang@mediatek.com>
6*4882a593Smuzhiyun *	   Ryder Lee <ryder.lee@mediatek.com>
7*4882a593Smuzhiyun *
8*4882a593Smuzhiyun */
9*4882a593Smuzhiyun
10*4882a593Smuzhiyun#include <dt-bindings/interrupt-controller/irq.h>
11*4882a593Smuzhiyun#include <dt-bindings/interrupt-controller/arm-gic.h>
12*4882a593Smuzhiyun#include <dt-bindings/clock/mt2701-clk.h>
13*4882a593Smuzhiyun#include <dt-bindings/pinctrl/mt7623-pinfunc.h>
14*4882a593Smuzhiyun#include <dt-bindings/power/mt2701-power.h>
15*4882a593Smuzhiyun#include <dt-bindings/gpio/gpio.h>
16*4882a593Smuzhiyun#include <dt-bindings/phy/phy.h>
17*4882a593Smuzhiyun#include <dt-bindings/reset/mt2701-resets.h>
18*4882a593Smuzhiyun#include <dt-bindings/thermal/thermal.h>
19*4882a593Smuzhiyun
20*4882a593Smuzhiyun/ {
21*4882a593Smuzhiyun	compatible = "mediatek,mt7623";
22*4882a593Smuzhiyun	interrupt-parent = <&sysirq>;
23*4882a593Smuzhiyun	#address-cells = <2>;
24*4882a593Smuzhiyun	#size-cells = <2>;
25*4882a593Smuzhiyun
26*4882a593Smuzhiyun	cpu_opp_table: opp-table {
27*4882a593Smuzhiyun		compatible = "operating-points-v2";
28*4882a593Smuzhiyun		opp-shared;
29*4882a593Smuzhiyun
30*4882a593Smuzhiyun		opp-98000000 {
31*4882a593Smuzhiyun			opp-hz = /bits/ 64 <98000000>;
32*4882a593Smuzhiyun			opp-microvolt = <1050000>;
33*4882a593Smuzhiyun		};
34*4882a593Smuzhiyun
35*4882a593Smuzhiyun		opp-198000000 {
36*4882a593Smuzhiyun			opp-hz = /bits/ 64 <198000000>;
37*4882a593Smuzhiyun			opp-microvolt = <1050000>;
38*4882a593Smuzhiyun		};
39*4882a593Smuzhiyun
40*4882a593Smuzhiyun		opp-398000000 {
41*4882a593Smuzhiyun			opp-hz = /bits/ 64 <398000000>;
42*4882a593Smuzhiyun			opp-microvolt = <1050000>;
43*4882a593Smuzhiyun		};
44*4882a593Smuzhiyun
45*4882a593Smuzhiyun		opp-598000000 {
46*4882a593Smuzhiyun			opp-hz = /bits/ 64 <598000000>;
47*4882a593Smuzhiyun			opp-microvolt = <1050000>;
48*4882a593Smuzhiyun		};
49*4882a593Smuzhiyun
50*4882a593Smuzhiyun		opp-747500000 {
51*4882a593Smuzhiyun			opp-hz = /bits/ 64 <747500000>;
52*4882a593Smuzhiyun			opp-microvolt = <1050000>;
53*4882a593Smuzhiyun		};
54*4882a593Smuzhiyun
55*4882a593Smuzhiyun		opp-1040000000 {
56*4882a593Smuzhiyun			opp-hz = /bits/ 64 <1040000000>;
57*4882a593Smuzhiyun			opp-microvolt = <1150000>;
58*4882a593Smuzhiyun		};
59*4882a593Smuzhiyun
60*4882a593Smuzhiyun		opp-1196000000 {
61*4882a593Smuzhiyun			opp-hz = /bits/ 64 <1196000000>;
62*4882a593Smuzhiyun			opp-microvolt = <1200000>;
63*4882a593Smuzhiyun		};
64*4882a593Smuzhiyun
65*4882a593Smuzhiyun		opp-1300000000 {
66*4882a593Smuzhiyun			opp-hz = /bits/ 64 <1300000000>;
67*4882a593Smuzhiyun			opp-microvolt = <1300000>;
68*4882a593Smuzhiyun		};
69*4882a593Smuzhiyun	};
70*4882a593Smuzhiyun
71*4882a593Smuzhiyun	cpus {
72*4882a593Smuzhiyun		#address-cells = <1>;
73*4882a593Smuzhiyun		#size-cells = <0>;
74*4882a593Smuzhiyun		enable-method = "mediatek,mt6589-smp";
75*4882a593Smuzhiyun
76*4882a593Smuzhiyun		cpu0: cpu@0 {
77*4882a593Smuzhiyun			device_type = "cpu";
78*4882a593Smuzhiyun			compatible = "arm,cortex-a7";
79*4882a593Smuzhiyun			reg = <0x0>;
80*4882a593Smuzhiyun			clocks = <&infracfg CLK_INFRA_CPUSEL>,
81*4882a593Smuzhiyun				 <&apmixedsys CLK_APMIXED_MAINPLL>;
82*4882a593Smuzhiyun			clock-names = "cpu", "intermediate";
83*4882a593Smuzhiyun			operating-points-v2 = <&cpu_opp_table>;
84*4882a593Smuzhiyun			#cooling-cells = <2>;
85*4882a593Smuzhiyun			clock-frequency = <1300000000>;
86*4882a593Smuzhiyun		};
87*4882a593Smuzhiyun
88*4882a593Smuzhiyun		cpu1: cpu@1 {
89*4882a593Smuzhiyun			device_type = "cpu";
90*4882a593Smuzhiyun			compatible = "arm,cortex-a7";
91*4882a593Smuzhiyun			reg = <0x1>;
92*4882a593Smuzhiyun			clocks = <&infracfg CLK_INFRA_CPUSEL>,
93*4882a593Smuzhiyun				 <&apmixedsys CLK_APMIXED_MAINPLL>;
94*4882a593Smuzhiyun			clock-names = "cpu", "intermediate";
95*4882a593Smuzhiyun			operating-points-v2 = <&cpu_opp_table>;
96*4882a593Smuzhiyun			#cooling-cells = <2>;
97*4882a593Smuzhiyun			clock-frequency = <1300000000>;
98*4882a593Smuzhiyun		};
99*4882a593Smuzhiyun
100*4882a593Smuzhiyun		cpu2: cpu@2 {
101*4882a593Smuzhiyun			device_type = "cpu";
102*4882a593Smuzhiyun			compatible = "arm,cortex-a7";
103*4882a593Smuzhiyun			reg = <0x2>;
104*4882a593Smuzhiyun			clocks = <&infracfg CLK_INFRA_CPUSEL>,
105*4882a593Smuzhiyun				 <&apmixedsys CLK_APMIXED_MAINPLL>;
106*4882a593Smuzhiyun			clock-names = "cpu", "intermediate";
107*4882a593Smuzhiyun			operating-points-v2 = <&cpu_opp_table>;
108*4882a593Smuzhiyun			#cooling-cells = <2>;
109*4882a593Smuzhiyun			clock-frequency = <1300000000>;
110*4882a593Smuzhiyun		};
111*4882a593Smuzhiyun
112*4882a593Smuzhiyun		cpu3: cpu@3 {
113*4882a593Smuzhiyun			device_type = "cpu";
114*4882a593Smuzhiyun			compatible = "arm,cortex-a7";
115*4882a593Smuzhiyun			reg = <0x3>;
116*4882a593Smuzhiyun			clocks = <&infracfg CLK_INFRA_CPUSEL>,
117*4882a593Smuzhiyun				 <&apmixedsys CLK_APMIXED_MAINPLL>;
118*4882a593Smuzhiyun			clock-names = "cpu", "intermediate";
119*4882a593Smuzhiyun			operating-points-v2 = <&cpu_opp_table>;
120*4882a593Smuzhiyun			#cooling-cells = <2>;
121*4882a593Smuzhiyun			clock-frequency = <1300000000>;
122*4882a593Smuzhiyun		};
123*4882a593Smuzhiyun	};
124*4882a593Smuzhiyun
125*4882a593Smuzhiyun	pmu {
126*4882a593Smuzhiyun		compatible = "arm,cortex-a7-pmu";
127*4882a593Smuzhiyun		interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_LOW>,
128*4882a593Smuzhiyun			     <GIC_SPI 5 IRQ_TYPE_LEVEL_LOW>,
129*4882a593Smuzhiyun			     <GIC_SPI 6 IRQ_TYPE_LEVEL_LOW>,
130*4882a593Smuzhiyun			     <GIC_SPI 7 IRQ_TYPE_LEVEL_LOW>;
131*4882a593Smuzhiyun		interrupt-affinity = <&cpu0>, <&cpu1>, <&cpu2>, <&cpu3>;
132*4882a593Smuzhiyun	};
133*4882a593Smuzhiyun
134*4882a593Smuzhiyun	system_clk: dummy13m {
135*4882a593Smuzhiyun		compatible = "fixed-clock";
136*4882a593Smuzhiyun		clock-frequency = <13000000>;
137*4882a593Smuzhiyun		#clock-cells = <0>;
138*4882a593Smuzhiyun	};
139*4882a593Smuzhiyun
140*4882a593Smuzhiyun	rtc32k: oscillator-1 {
141*4882a593Smuzhiyun		compatible = "fixed-clock";
142*4882a593Smuzhiyun		#clock-cells = <0>;
143*4882a593Smuzhiyun		clock-frequency = <32000>;
144*4882a593Smuzhiyun		clock-output-names = "rtc32k";
145*4882a593Smuzhiyun	};
146*4882a593Smuzhiyun
147*4882a593Smuzhiyun	clk26m: oscillator-0 {
148*4882a593Smuzhiyun		compatible = "fixed-clock";
149*4882a593Smuzhiyun		#clock-cells = <0>;
150*4882a593Smuzhiyun		clock-frequency = <26000000>;
151*4882a593Smuzhiyun		clock-output-names = "clk26m";
152*4882a593Smuzhiyun	};
153*4882a593Smuzhiyun
154*4882a593Smuzhiyun	thermal-zones {
155*4882a593Smuzhiyun			cpu_thermal: cpu-thermal {
156*4882a593Smuzhiyun				polling-delay-passive = <1000>;
157*4882a593Smuzhiyun				polling-delay = <1000>;
158*4882a593Smuzhiyun
159*4882a593Smuzhiyun				thermal-sensors = <&thermal 0>;
160*4882a593Smuzhiyun
161*4882a593Smuzhiyun				trips {
162*4882a593Smuzhiyun					cpu_passive: cpu-passive {
163*4882a593Smuzhiyun						temperature = <47000>;
164*4882a593Smuzhiyun						hysteresis = <2000>;
165*4882a593Smuzhiyun						type = "passive";
166*4882a593Smuzhiyun					};
167*4882a593Smuzhiyun
168*4882a593Smuzhiyun					cpu_active: cpu-active {
169*4882a593Smuzhiyun						temperature = <67000>;
170*4882a593Smuzhiyun						hysteresis = <2000>;
171*4882a593Smuzhiyun						type = "active";
172*4882a593Smuzhiyun					};
173*4882a593Smuzhiyun
174*4882a593Smuzhiyun					cpu_hot: cpu-hot {
175*4882a593Smuzhiyun						temperature = <87000>;
176*4882a593Smuzhiyun						hysteresis = <2000>;
177*4882a593Smuzhiyun						type = "hot";
178*4882a593Smuzhiyun					};
179*4882a593Smuzhiyun
180*4882a593Smuzhiyun					cpu-crit {
181*4882a593Smuzhiyun						temperature = <107000>;
182*4882a593Smuzhiyun						hysteresis = <2000>;
183*4882a593Smuzhiyun						type = "critical";
184*4882a593Smuzhiyun					};
185*4882a593Smuzhiyun				};
186*4882a593Smuzhiyun
187*4882a593Smuzhiyun			cooling-maps {
188*4882a593Smuzhiyun				map0 {
189*4882a593Smuzhiyun					trip = <&cpu_passive>;
190*4882a593Smuzhiyun					cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
191*4882a593Smuzhiyun							 <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
192*4882a593Smuzhiyun							 <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
193*4882a593Smuzhiyun							 <&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
194*4882a593Smuzhiyun				};
195*4882a593Smuzhiyun
196*4882a593Smuzhiyun				map1 {
197*4882a593Smuzhiyun					trip = <&cpu_active>;
198*4882a593Smuzhiyun					cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
199*4882a593Smuzhiyun							 <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
200*4882a593Smuzhiyun							 <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
201*4882a593Smuzhiyun							 <&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
202*4882a593Smuzhiyun				};
203*4882a593Smuzhiyun
204*4882a593Smuzhiyun				map2 {
205*4882a593Smuzhiyun					trip = <&cpu_hot>;
206*4882a593Smuzhiyun					cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
207*4882a593Smuzhiyun							 <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
208*4882a593Smuzhiyun							 <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
209*4882a593Smuzhiyun							 <&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
210*4882a593Smuzhiyun				};
211*4882a593Smuzhiyun			};
212*4882a593Smuzhiyun		};
213*4882a593Smuzhiyun	};
214*4882a593Smuzhiyun
215*4882a593Smuzhiyun	timer {
216*4882a593Smuzhiyun		compatible = "arm,armv7-timer";
217*4882a593Smuzhiyun		interrupt-parent = <&gic>;
218*4882a593Smuzhiyun		interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
219*4882a593Smuzhiyun			     <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
220*4882a593Smuzhiyun			     <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
221*4882a593Smuzhiyun			     <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
222*4882a593Smuzhiyun		clock-frequency = <13000000>;
223*4882a593Smuzhiyun		arm,cpu-registers-not-fw-configured;
224*4882a593Smuzhiyun	};
225*4882a593Smuzhiyun
226*4882a593Smuzhiyun	topckgen: syscon@10000000 {
227*4882a593Smuzhiyun		compatible = "mediatek,mt7623-topckgen",
228*4882a593Smuzhiyun			     "mediatek,mt2701-topckgen",
229*4882a593Smuzhiyun			     "syscon";
230*4882a593Smuzhiyun		reg = <0 0x10000000 0 0x1000>;
231*4882a593Smuzhiyun		#clock-cells = <1>;
232*4882a593Smuzhiyun	};
233*4882a593Smuzhiyun
234*4882a593Smuzhiyun	infracfg: syscon@10001000 {
235*4882a593Smuzhiyun		compatible = "mediatek,mt7623-infracfg",
236*4882a593Smuzhiyun			     "mediatek,mt2701-infracfg",
237*4882a593Smuzhiyun			     "syscon";
238*4882a593Smuzhiyun		reg = <0 0x10001000 0 0x1000>;
239*4882a593Smuzhiyun		#clock-cells = <1>;
240*4882a593Smuzhiyun		#reset-cells = <1>;
241*4882a593Smuzhiyun	};
242*4882a593Smuzhiyun
243*4882a593Smuzhiyun	pericfg: syscon@10003000 {
244*4882a593Smuzhiyun		compatible =  "mediatek,mt7623-pericfg",
245*4882a593Smuzhiyun			      "mediatek,mt2701-pericfg",
246*4882a593Smuzhiyun			      "syscon";
247*4882a593Smuzhiyun		reg = <0 0x10003000 0 0x1000>;
248*4882a593Smuzhiyun		#clock-cells = <1>;
249*4882a593Smuzhiyun		#reset-cells = <1>;
250*4882a593Smuzhiyun	};
251*4882a593Smuzhiyun
252*4882a593Smuzhiyun	pio: pinctrl@10005000 {
253*4882a593Smuzhiyun		compatible = "mediatek,mt7623-pinctrl";
254*4882a593Smuzhiyun		reg = <0 0x1000b000 0 0x1000>;
255*4882a593Smuzhiyun		mediatek,pctl-regmap = <&syscfg_pctl_a>;
256*4882a593Smuzhiyun		pins-are-numbered;
257*4882a593Smuzhiyun		gpio-controller;
258*4882a593Smuzhiyun		#gpio-cells = <2>;
259*4882a593Smuzhiyun		interrupt-controller;
260*4882a593Smuzhiyun		interrupt-parent = <&gic>;
261*4882a593Smuzhiyun		#interrupt-cells = <2>;
262*4882a593Smuzhiyun		interrupts = <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>,
263*4882a593Smuzhiyun			     <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>;
264*4882a593Smuzhiyun	};
265*4882a593Smuzhiyun
266*4882a593Smuzhiyun	syscfg_pctl_a: syscfg@10005000 {
267*4882a593Smuzhiyun		compatible = "mediatek,mt7623-pctl-a-syscfg", "syscon";
268*4882a593Smuzhiyun		reg = <0 0x10005000 0 0x1000>;
269*4882a593Smuzhiyun	};
270*4882a593Smuzhiyun
271*4882a593Smuzhiyun	scpsys: power-controller@10006000 {
272*4882a593Smuzhiyun		compatible = "mediatek,mt7623-scpsys",
273*4882a593Smuzhiyun			     "mediatek,mt2701-scpsys",
274*4882a593Smuzhiyun			     "syscon";
275*4882a593Smuzhiyun		#power-domain-cells = <1>;
276*4882a593Smuzhiyun		reg = <0 0x10006000 0 0x1000>;
277*4882a593Smuzhiyun		infracfg = <&infracfg>;
278*4882a593Smuzhiyun		clocks = <&topckgen CLK_TOP_MM_SEL>,
279*4882a593Smuzhiyun			 <&topckgen CLK_TOP_MFG_SEL>,
280*4882a593Smuzhiyun			 <&topckgen CLK_TOP_ETHIF_SEL>;
281*4882a593Smuzhiyun		clock-names = "mm", "mfg", "ethif";
282*4882a593Smuzhiyun	};
283*4882a593Smuzhiyun
284*4882a593Smuzhiyun	watchdog: watchdog@10007000 {
285*4882a593Smuzhiyun		compatible = "mediatek,mt7623-wdt",
286*4882a593Smuzhiyun			     "mediatek,mt6589-wdt";
287*4882a593Smuzhiyun		reg = <0 0x10007000 0 0x100>;
288*4882a593Smuzhiyun	};
289*4882a593Smuzhiyun
290*4882a593Smuzhiyun	timer: timer@10008000 {
291*4882a593Smuzhiyun		compatible = "mediatek,mt7623-timer",
292*4882a593Smuzhiyun			     "mediatek,mt6577-timer";
293*4882a593Smuzhiyun		reg = <0 0x10008000 0 0x80>;
294*4882a593Smuzhiyun		interrupts = <GIC_SPI 112 IRQ_TYPE_LEVEL_LOW>;
295*4882a593Smuzhiyun		clocks = <&system_clk>, <&rtc32k>;
296*4882a593Smuzhiyun		clock-names = "system-clk", "rtc-clk";
297*4882a593Smuzhiyun	};
298*4882a593Smuzhiyun
299*4882a593Smuzhiyun	pwrap: pwrap@1000d000 {
300*4882a593Smuzhiyun		compatible = "mediatek,mt7623-pwrap",
301*4882a593Smuzhiyun			     "mediatek,mt2701-pwrap";
302*4882a593Smuzhiyun		reg = <0 0x1000d000 0 0x1000>;
303*4882a593Smuzhiyun		reg-names = "pwrap";
304*4882a593Smuzhiyun		interrupts = <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>;
305*4882a593Smuzhiyun		resets = <&infracfg MT2701_INFRA_PMIC_WRAP_RST>;
306*4882a593Smuzhiyun		reset-names = "pwrap";
307*4882a593Smuzhiyun		clocks = <&infracfg CLK_INFRA_PMICSPI>,
308*4882a593Smuzhiyun			 <&infracfg CLK_INFRA_PMICWRAP>;
309*4882a593Smuzhiyun		clock-names = "spi", "wrap";
310*4882a593Smuzhiyun	};
311*4882a593Smuzhiyun
312*4882a593Smuzhiyun	cir: cir@10013000 {
313*4882a593Smuzhiyun		compatible = "mediatek,mt7623-cir";
314*4882a593Smuzhiyun		reg = <0 0x10013000 0 0x1000>;
315*4882a593Smuzhiyun		interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_LOW>;
316*4882a593Smuzhiyun		clocks = <&infracfg CLK_INFRA_IRRX>;
317*4882a593Smuzhiyun		clock-names = "clk";
318*4882a593Smuzhiyun		status = "disabled";
319*4882a593Smuzhiyun	};
320*4882a593Smuzhiyun
321*4882a593Smuzhiyun	sysirq: interrupt-controller@10200100 {
322*4882a593Smuzhiyun		compatible = "mediatek,mt7623-sysirq",
323*4882a593Smuzhiyun			     "mediatek,mt6577-sysirq";
324*4882a593Smuzhiyun		interrupt-controller;
325*4882a593Smuzhiyun		#interrupt-cells = <3>;
326*4882a593Smuzhiyun		interrupt-parent = <&gic>;
327*4882a593Smuzhiyun		reg = <0 0x10200100 0 0x1c>;
328*4882a593Smuzhiyun	};
329*4882a593Smuzhiyun
330*4882a593Smuzhiyun	efuse: efuse@10206000 {
331*4882a593Smuzhiyun		compatible = "mediatek,mt7623-efuse",
332*4882a593Smuzhiyun			     "mediatek,mt8173-efuse";
333*4882a593Smuzhiyun		reg = <0 0x10206000 0 0x1000>;
334*4882a593Smuzhiyun		#address-cells = <1>;
335*4882a593Smuzhiyun		#size-cells = <1>;
336*4882a593Smuzhiyun		thermal_calibration_data: calib@424 {
337*4882a593Smuzhiyun			reg = <0x424 0xc>;
338*4882a593Smuzhiyun		};
339*4882a593Smuzhiyun	};
340*4882a593Smuzhiyun
341*4882a593Smuzhiyun	apmixedsys: syscon@10209000 {
342*4882a593Smuzhiyun		compatible = "mediatek,mt7623-apmixedsys",
343*4882a593Smuzhiyun			     "mediatek,mt2701-apmixedsys",
344*4882a593Smuzhiyun			     "syscon";
345*4882a593Smuzhiyun		reg = <0 0x10209000 0 0x1000>;
346*4882a593Smuzhiyun		#clock-cells = <1>;
347*4882a593Smuzhiyun	};
348*4882a593Smuzhiyun
349*4882a593Smuzhiyun	rng: rng@1020f000 {
350*4882a593Smuzhiyun		compatible = "mediatek,mt7623-rng";
351*4882a593Smuzhiyun		reg = <0 0x1020f000 0 0x1000>;
352*4882a593Smuzhiyun		clocks = <&infracfg CLK_INFRA_TRNG>;
353*4882a593Smuzhiyun		clock-names = "rng";
354*4882a593Smuzhiyun	};
355*4882a593Smuzhiyun
356*4882a593Smuzhiyun	gic: interrupt-controller@10211000 {
357*4882a593Smuzhiyun		compatible = "arm,cortex-a7-gic";
358*4882a593Smuzhiyun		interrupt-controller;
359*4882a593Smuzhiyun		#interrupt-cells = <3>;
360*4882a593Smuzhiyun		interrupt-parent = <&gic>;
361*4882a593Smuzhiyun		reg = <0 0x10211000 0 0x1000>,
362*4882a593Smuzhiyun		      <0 0x10212000 0 0x2000>,
363*4882a593Smuzhiyun		      <0 0x10214000 0 0x2000>,
364*4882a593Smuzhiyun		      <0 0x10216000 0 0x2000>;
365*4882a593Smuzhiyun	};
366*4882a593Smuzhiyun
367*4882a593Smuzhiyun	auxadc: adc@11001000 {
368*4882a593Smuzhiyun		compatible = "mediatek,mt7623-auxadc",
369*4882a593Smuzhiyun			     "mediatek,mt2701-auxadc";
370*4882a593Smuzhiyun		reg = <0 0x11001000 0 0x1000>;
371*4882a593Smuzhiyun		clocks = <&pericfg CLK_PERI_AUXADC>;
372*4882a593Smuzhiyun		clock-names = "main";
373*4882a593Smuzhiyun		#io-channel-cells = <1>;
374*4882a593Smuzhiyun	};
375*4882a593Smuzhiyun
376*4882a593Smuzhiyun	uart0: serial@11002000 {
377*4882a593Smuzhiyun		compatible = "mediatek,mt7623-uart",
378*4882a593Smuzhiyun			     "mediatek,mt6577-uart";
379*4882a593Smuzhiyun		reg = <0 0x11002000 0 0x400>;
380*4882a593Smuzhiyun		interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_LOW>;
381*4882a593Smuzhiyun		clocks = <&pericfg CLK_PERI_UART0_SEL>,
382*4882a593Smuzhiyun			 <&pericfg CLK_PERI_UART0>;
383*4882a593Smuzhiyun		clock-names = "baud", "bus";
384*4882a593Smuzhiyun		status = "disabled";
385*4882a593Smuzhiyun	};
386*4882a593Smuzhiyun
387*4882a593Smuzhiyun	uart1: serial@11003000 {
388*4882a593Smuzhiyun		compatible = "mediatek,mt7623-uart",
389*4882a593Smuzhiyun			     "mediatek,mt6577-uart";
390*4882a593Smuzhiyun		reg = <0 0x11003000 0 0x400>;
391*4882a593Smuzhiyun		interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_LOW>;
392*4882a593Smuzhiyun		clocks = <&pericfg CLK_PERI_UART1_SEL>,
393*4882a593Smuzhiyun			 <&pericfg CLK_PERI_UART1>;
394*4882a593Smuzhiyun		clock-names = "baud", "bus";
395*4882a593Smuzhiyun		status = "disabled";
396*4882a593Smuzhiyun	};
397*4882a593Smuzhiyun
398*4882a593Smuzhiyun	uart2: serial@11004000 {
399*4882a593Smuzhiyun		compatible = "mediatek,mt7623-uart",
400*4882a593Smuzhiyun			     "mediatek,mt6577-uart";
401*4882a593Smuzhiyun		reg = <0 0x11004000 0 0x400>;
402*4882a593Smuzhiyun		interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_LOW>;
403*4882a593Smuzhiyun		clocks = <&pericfg CLK_PERI_UART2_SEL>,
404*4882a593Smuzhiyun			 <&pericfg CLK_PERI_UART2>;
405*4882a593Smuzhiyun		clock-names = "baud", "bus";
406*4882a593Smuzhiyun		status = "disabled";
407*4882a593Smuzhiyun	};
408*4882a593Smuzhiyun
409*4882a593Smuzhiyun	uart3: serial@11005000 {
410*4882a593Smuzhiyun		compatible = "mediatek,mt7623-uart",
411*4882a593Smuzhiyun			     "mediatek,mt6577-uart";
412*4882a593Smuzhiyun		reg = <0 0x11005000 0 0x400>;
413*4882a593Smuzhiyun		interrupts = <GIC_SPI 54 IRQ_TYPE_LEVEL_LOW>;
414*4882a593Smuzhiyun		clocks = <&pericfg CLK_PERI_UART3_SEL>,
415*4882a593Smuzhiyun			 <&pericfg CLK_PERI_UART3>;
416*4882a593Smuzhiyun		clock-names = "baud", "bus";
417*4882a593Smuzhiyun		status = "disabled";
418*4882a593Smuzhiyun	};
419*4882a593Smuzhiyun
420*4882a593Smuzhiyun	pwm: pwm@11006000 {
421*4882a593Smuzhiyun		compatible = "mediatek,mt7623-pwm";
422*4882a593Smuzhiyun		reg = <0 0x11006000 0 0x1000>;
423*4882a593Smuzhiyun		#pwm-cells = <2>;
424*4882a593Smuzhiyun		clocks = <&topckgen CLK_TOP_PWM_SEL>,
425*4882a593Smuzhiyun			 <&pericfg CLK_PERI_PWM>,
426*4882a593Smuzhiyun			 <&pericfg CLK_PERI_PWM1>,
427*4882a593Smuzhiyun			 <&pericfg CLK_PERI_PWM2>,
428*4882a593Smuzhiyun			 <&pericfg CLK_PERI_PWM3>,
429*4882a593Smuzhiyun			 <&pericfg CLK_PERI_PWM4>,
430*4882a593Smuzhiyun			 <&pericfg CLK_PERI_PWM5>;
431*4882a593Smuzhiyun		clock-names = "top", "main", "pwm1", "pwm2",
432*4882a593Smuzhiyun			      "pwm3", "pwm4", "pwm5";
433*4882a593Smuzhiyun		status = "disabled";
434*4882a593Smuzhiyun	};
435*4882a593Smuzhiyun
436*4882a593Smuzhiyun	i2c0: i2c@11007000 {
437*4882a593Smuzhiyun		compatible = "mediatek,mt7623-i2c",
438*4882a593Smuzhiyun			     "mediatek,mt6577-i2c";
439*4882a593Smuzhiyun		reg = <0 0x11007000 0 0x70>,
440*4882a593Smuzhiyun		      <0 0x11000200 0 0x80>;
441*4882a593Smuzhiyun		interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_LOW>;
442*4882a593Smuzhiyun		clock-div = <16>;
443*4882a593Smuzhiyun		clocks = <&pericfg CLK_PERI_I2C0>,
444*4882a593Smuzhiyun			 <&pericfg CLK_PERI_AP_DMA>;
445*4882a593Smuzhiyun		clock-names = "main", "dma";
446*4882a593Smuzhiyun		#address-cells = <1>;
447*4882a593Smuzhiyun		#size-cells = <0>;
448*4882a593Smuzhiyun		status = "disabled";
449*4882a593Smuzhiyun	};
450*4882a593Smuzhiyun
451*4882a593Smuzhiyun	i2c1: i2c@11008000 {
452*4882a593Smuzhiyun		compatible = "mediatek,mt7623-i2c",
453*4882a593Smuzhiyun			     "mediatek,mt6577-i2c";
454*4882a593Smuzhiyun		reg = <0 0x11008000 0 0x70>,
455*4882a593Smuzhiyun		      <0 0x11000280 0 0x80>;
456*4882a593Smuzhiyun		interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_LOW>;
457*4882a593Smuzhiyun		clock-div = <16>;
458*4882a593Smuzhiyun		clocks = <&pericfg CLK_PERI_I2C1>,
459*4882a593Smuzhiyun			 <&pericfg CLK_PERI_AP_DMA>;
460*4882a593Smuzhiyun		clock-names = "main", "dma";
461*4882a593Smuzhiyun		#address-cells = <1>;
462*4882a593Smuzhiyun		#size-cells = <0>;
463*4882a593Smuzhiyun		status = "disabled";
464*4882a593Smuzhiyun	};
465*4882a593Smuzhiyun
466*4882a593Smuzhiyun	i2c2: i2c@11009000 {
467*4882a593Smuzhiyun		compatible = "mediatek,mt7623-i2c",
468*4882a593Smuzhiyun			     "mediatek,mt6577-i2c";
469*4882a593Smuzhiyun		reg = <0 0x11009000 0 0x70>,
470*4882a593Smuzhiyun		      <0 0x11000300 0 0x80>;
471*4882a593Smuzhiyun		interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_LOW>;
472*4882a593Smuzhiyun		clock-div = <16>;
473*4882a593Smuzhiyun		clocks = <&pericfg CLK_PERI_I2C2>,
474*4882a593Smuzhiyun			 <&pericfg CLK_PERI_AP_DMA>;
475*4882a593Smuzhiyun		clock-names = "main", "dma";
476*4882a593Smuzhiyun		#address-cells = <1>;
477*4882a593Smuzhiyun		#size-cells = <0>;
478*4882a593Smuzhiyun		status = "disabled";
479*4882a593Smuzhiyun	};
480*4882a593Smuzhiyun
481*4882a593Smuzhiyun	spi0: spi@1100a000 {
482*4882a593Smuzhiyun		compatible = "mediatek,mt7623-spi",
483*4882a593Smuzhiyun			     "mediatek,mt2701-spi";
484*4882a593Smuzhiyun		#address-cells = <1>;
485*4882a593Smuzhiyun		#size-cells = <0>;
486*4882a593Smuzhiyun		reg = <0 0x1100a000 0 0x100>;
487*4882a593Smuzhiyun		interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_LOW>;
488*4882a593Smuzhiyun		clocks = <&topckgen CLK_TOP_SYSPLL3_D2>,
489*4882a593Smuzhiyun			 <&topckgen CLK_TOP_SPI0_SEL>,
490*4882a593Smuzhiyun			 <&pericfg CLK_PERI_SPI0>;
491*4882a593Smuzhiyun		clock-names = "parent-clk", "sel-clk", "spi-clk";
492*4882a593Smuzhiyun		status = "disabled";
493*4882a593Smuzhiyun	};
494*4882a593Smuzhiyun
495*4882a593Smuzhiyun	thermal: thermal@1100b000 {
496*4882a593Smuzhiyun		#thermal-sensor-cells = <1>;
497*4882a593Smuzhiyun		compatible = "mediatek,mt7623-thermal",
498*4882a593Smuzhiyun			     "mediatek,mt2701-thermal";
499*4882a593Smuzhiyun		reg = <0 0x1100b000 0 0x1000>;
500*4882a593Smuzhiyun		interrupts = <0 70 IRQ_TYPE_LEVEL_LOW>;
501*4882a593Smuzhiyun		clocks = <&pericfg CLK_PERI_THERM>, <&pericfg CLK_PERI_AUXADC>;
502*4882a593Smuzhiyun		clock-names = "therm", "auxadc";
503*4882a593Smuzhiyun		resets = <&pericfg MT2701_PERI_THERM_SW_RST>;
504*4882a593Smuzhiyun		reset-names = "therm";
505*4882a593Smuzhiyun		mediatek,auxadc = <&auxadc>;
506*4882a593Smuzhiyun		mediatek,apmixedsys = <&apmixedsys>;
507*4882a593Smuzhiyun		nvmem-cells = <&thermal_calibration_data>;
508*4882a593Smuzhiyun		nvmem-cell-names = "calibration-data";
509*4882a593Smuzhiyun	};
510*4882a593Smuzhiyun
511*4882a593Smuzhiyun	btif: serial@1100c000 {
512*4882a593Smuzhiyun		compatible = "mediatek,mt7623-btif",
513*4882a593Smuzhiyun			     "mediatek,mtk-btif";
514*4882a593Smuzhiyun		reg = <0 0x1100c000 0 0x1000>;
515*4882a593Smuzhiyun		interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_LOW>;
516*4882a593Smuzhiyun		clocks = <&pericfg CLK_PERI_BTIF>;
517*4882a593Smuzhiyun		clock-names = "main";
518*4882a593Smuzhiyun		reg-shift = <2>;
519*4882a593Smuzhiyun		reg-io-width = <4>;
520*4882a593Smuzhiyun		status = "disabled";
521*4882a593Smuzhiyun	};
522*4882a593Smuzhiyun
523*4882a593Smuzhiyun	nandc: nfi@1100d000 {
524*4882a593Smuzhiyun		compatible = "mediatek,mt7623-nfc",
525*4882a593Smuzhiyun			     "mediatek,mt2701-nfc";
526*4882a593Smuzhiyun		reg = <0 0x1100d000 0 0x1000>;
527*4882a593Smuzhiyun		interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_LOW>;
528*4882a593Smuzhiyun		power-domains = <&scpsys MT2701_POWER_DOMAIN_IFR_MSC>;
529*4882a593Smuzhiyun		clocks = <&pericfg CLK_PERI_NFI>,
530*4882a593Smuzhiyun			 <&pericfg CLK_PERI_NFI_PAD>;
531*4882a593Smuzhiyun		clock-names = "nfi_clk", "pad_clk";
532*4882a593Smuzhiyun		status = "disabled";
533*4882a593Smuzhiyun		ecc-engine = <&bch>;
534*4882a593Smuzhiyun		#address-cells = <1>;
535*4882a593Smuzhiyun		#size-cells = <0>;
536*4882a593Smuzhiyun	};
537*4882a593Smuzhiyun
538*4882a593Smuzhiyun	bch: ecc@1100e000 {
539*4882a593Smuzhiyun		compatible = "mediatek,mt7623-ecc",
540*4882a593Smuzhiyun			     "mediatek,mt2701-ecc";
541*4882a593Smuzhiyun		reg = <0 0x1100e000 0 0x1000>;
542*4882a593Smuzhiyun		interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_LOW>;
543*4882a593Smuzhiyun		clocks = <&pericfg CLK_PERI_NFI_ECC>;
544*4882a593Smuzhiyun		clock-names = "nfiecc_clk";
545*4882a593Smuzhiyun		status = "disabled";
546*4882a593Smuzhiyun	};
547*4882a593Smuzhiyun
548*4882a593Smuzhiyun	nor_flash: spi@11014000 {
549*4882a593Smuzhiyun		compatible = "mediatek,mt7623-nor",
550*4882a593Smuzhiyun			     "mediatek,mt8173-nor";
551*4882a593Smuzhiyun		reg = <0 0x11014000 0 0x1000>;
552*4882a593Smuzhiyun		clocks = <&pericfg CLK_PERI_FLASH>,
553*4882a593Smuzhiyun			 <&topckgen CLK_TOP_FLASH_SEL>;
554*4882a593Smuzhiyun		clock-names = "spi", "sf";
555*4882a593Smuzhiyun		#address-cells = <1>;
556*4882a593Smuzhiyun		#size-cells = <0>;
557*4882a593Smuzhiyun		status = "disabled";
558*4882a593Smuzhiyun	};
559*4882a593Smuzhiyun
560*4882a593Smuzhiyun	spi1: spi@11016000 {
561*4882a593Smuzhiyun		compatible = "mediatek,mt7623-spi",
562*4882a593Smuzhiyun			     "mediatek,mt2701-spi";
563*4882a593Smuzhiyun		#address-cells = <1>;
564*4882a593Smuzhiyun		#size-cells = <0>;
565*4882a593Smuzhiyun		reg = <0 0x11016000 0 0x100>;
566*4882a593Smuzhiyun		interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_LOW>;
567*4882a593Smuzhiyun		clocks = <&topckgen CLK_TOP_SYSPLL3_D2>,
568*4882a593Smuzhiyun			 <&topckgen CLK_TOP_SPI1_SEL>,
569*4882a593Smuzhiyun			 <&pericfg CLK_PERI_SPI1>;
570*4882a593Smuzhiyun		clock-names = "parent-clk", "sel-clk", "spi-clk";
571*4882a593Smuzhiyun		status = "disabled";
572*4882a593Smuzhiyun	};
573*4882a593Smuzhiyun
574*4882a593Smuzhiyun	spi2: spi@11017000 {
575*4882a593Smuzhiyun		compatible = "mediatek,mt7623-spi",
576*4882a593Smuzhiyun			     "mediatek,mt2701-spi";
577*4882a593Smuzhiyun		#address-cells = <1>;
578*4882a593Smuzhiyun		#size-cells = <0>;
579*4882a593Smuzhiyun		reg = <0 0x11017000 0 0x1000>;
580*4882a593Smuzhiyun		interrupts = <GIC_SPI 142 IRQ_TYPE_LEVEL_LOW>;
581*4882a593Smuzhiyun		clocks = <&topckgen CLK_TOP_SYSPLL3_D2>,
582*4882a593Smuzhiyun			 <&topckgen CLK_TOP_SPI2_SEL>,
583*4882a593Smuzhiyun			 <&pericfg CLK_PERI_SPI2>;
584*4882a593Smuzhiyun		clock-names = "parent-clk", "sel-clk", "spi-clk";
585*4882a593Smuzhiyun		status = "disabled";
586*4882a593Smuzhiyun	};
587*4882a593Smuzhiyun
588*4882a593Smuzhiyun	audsys: clock-controller@11220000 {
589*4882a593Smuzhiyun		compatible = "mediatek,mt7623-audsys",
590*4882a593Smuzhiyun			     "mediatek,mt2701-audsys",
591*4882a593Smuzhiyun			     "syscon";
592*4882a593Smuzhiyun		reg = <0 0x11220000 0 0x2000>;
593*4882a593Smuzhiyun		#clock-cells = <1>;
594*4882a593Smuzhiyun
595*4882a593Smuzhiyun		afe: audio-controller {
596*4882a593Smuzhiyun			compatible = "mediatek,mt7623-audio",
597*4882a593Smuzhiyun				     "mediatek,mt2701-audio";
598*4882a593Smuzhiyun			interrupts =  <GIC_SPI 104 IRQ_TYPE_LEVEL_LOW>,
599*4882a593Smuzhiyun				      <GIC_SPI 132 IRQ_TYPE_LEVEL_LOW>;
600*4882a593Smuzhiyun			interrupt-names	= "afe", "asys";
601*4882a593Smuzhiyun			power-domains = <&scpsys MT2701_POWER_DOMAIN_IFR_MSC>;
602*4882a593Smuzhiyun
603*4882a593Smuzhiyun			clocks = <&infracfg CLK_INFRA_AUDIO>,
604*4882a593Smuzhiyun				 <&topckgen CLK_TOP_AUD_MUX1_SEL>,
605*4882a593Smuzhiyun				 <&topckgen CLK_TOP_AUD_MUX2_SEL>,
606*4882a593Smuzhiyun				 <&topckgen CLK_TOP_AUD_48K_TIMING>,
607*4882a593Smuzhiyun				 <&topckgen CLK_TOP_AUD_44K_TIMING>,
608*4882a593Smuzhiyun				 <&topckgen CLK_TOP_AUD_K1_SRC_SEL>,
609*4882a593Smuzhiyun				 <&topckgen CLK_TOP_AUD_K2_SRC_SEL>,
610*4882a593Smuzhiyun				 <&topckgen CLK_TOP_AUD_K3_SRC_SEL>,
611*4882a593Smuzhiyun				 <&topckgen CLK_TOP_AUD_K4_SRC_SEL>,
612*4882a593Smuzhiyun				 <&topckgen CLK_TOP_AUD_K1_SRC_DIV>,
613*4882a593Smuzhiyun				 <&topckgen CLK_TOP_AUD_K2_SRC_DIV>,
614*4882a593Smuzhiyun				 <&topckgen CLK_TOP_AUD_K3_SRC_DIV>,
615*4882a593Smuzhiyun				 <&topckgen CLK_TOP_AUD_K4_SRC_DIV>,
616*4882a593Smuzhiyun				 <&topckgen CLK_TOP_AUD_I2S1_MCLK>,
617*4882a593Smuzhiyun				 <&topckgen CLK_TOP_AUD_I2S2_MCLK>,
618*4882a593Smuzhiyun				 <&topckgen CLK_TOP_AUD_I2S3_MCLK>,
619*4882a593Smuzhiyun				 <&topckgen CLK_TOP_AUD_I2S4_MCLK>,
620*4882a593Smuzhiyun				 <&audsys CLK_AUD_I2SO1>,
621*4882a593Smuzhiyun				 <&audsys CLK_AUD_I2SO2>,
622*4882a593Smuzhiyun				 <&audsys CLK_AUD_I2SO3>,
623*4882a593Smuzhiyun				 <&audsys CLK_AUD_I2SO4>,
624*4882a593Smuzhiyun				 <&audsys CLK_AUD_I2SIN1>,
625*4882a593Smuzhiyun				 <&audsys CLK_AUD_I2SIN2>,
626*4882a593Smuzhiyun				 <&audsys CLK_AUD_I2SIN3>,
627*4882a593Smuzhiyun				 <&audsys CLK_AUD_I2SIN4>,
628*4882a593Smuzhiyun				 <&audsys CLK_AUD_ASRCO1>,
629*4882a593Smuzhiyun				 <&audsys CLK_AUD_ASRCO2>,
630*4882a593Smuzhiyun				 <&audsys CLK_AUD_ASRCO3>,
631*4882a593Smuzhiyun				 <&audsys CLK_AUD_ASRCO4>,
632*4882a593Smuzhiyun				 <&audsys CLK_AUD_AFE>,
633*4882a593Smuzhiyun				 <&audsys CLK_AUD_AFE_CONN>,
634*4882a593Smuzhiyun				 <&audsys CLK_AUD_A1SYS>,
635*4882a593Smuzhiyun				 <&audsys CLK_AUD_A2SYS>,
636*4882a593Smuzhiyun				 <&audsys CLK_AUD_AFE_MRGIF>;
637*4882a593Smuzhiyun
638*4882a593Smuzhiyun			clock-names = "infra_sys_audio_clk",
639*4882a593Smuzhiyun				      "top_audio_mux1_sel",
640*4882a593Smuzhiyun				      "top_audio_mux2_sel",
641*4882a593Smuzhiyun				      "top_audio_a1sys_hp",
642*4882a593Smuzhiyun				      "top_audio_a2sys_hp",
643*4882a593Smuzhiyun				      "i2s0_src_sel",
644*4882a593Smuzhiyun				      "i2s1_src_sel",
645*4882a593Smuzhiyun				      "i2s2_src_sel",
646*4882a593Smuzhiyun				      "i2s3_src_sel",
647*4882a593Smuzhiyun				      "i2s0_src_div",
648*4882a593Smuzhiyun				      "i2s1_src_div",
649*4882a593Smuzhiyun				      "i2s2_src_div",
650*4882a593Smuzhiyun				      "i2s3_src_div",
651*4882a593Smuzhiyun				      "i2s0_mclk_en",
652*4882a593Smuzhiyun				      "i2s1_mclk_en",
653*4882a593Smuzhiyun				      "i2s2_mclk_en",
654*4882a593Smuzhiyun				      "i2s3_mclk_en",
655*4882a593Smuzhiyun				      "i2so0_hop_ck",
656*4882a593Smuzhiyun				      "i2so1_hop_ck",
657*4882a593Smuzhiyun				      "i2so2_hop_ck",
658*4882a593Smuzhiyun				      "i2so3_hop_ck",
659*4882a593Smuzhiyun				      "i2si0_hop_ck",
660*4882a593Smuzhiyun				      "i2si1_hop_ck",
661*4882a593Smuzhiyun				      "i2si2_hop_ck",
662*4882a593Smuzhiyun				      "i2si3_hop_ck",
663*4882a593Smuzhiyun				      "asrc0_out_ck",
664*4882a593Smuzhiyun				      "asrc1_out_ck",
665*4882a593Smuzhiyun				      "asrc2_out_ck",
666*4882a593Smuzhiyun				      "asrc3_out_ck",
667*4882a593Smuzhiyun				      "audio_afe_pd",
668*4882a593Smuzhiyun				      "audio_afe_conn_pd",
669*4882a593Smuzhiyun				      "audio_a1sys_pd",
670*4882a593Smuzhiyun				      "audio_a2sys_pd",
671*4882a593Smuzhiyun				      "audio_mrgif_pd";
672*4882a593Smuzhiyun
673*4882a593Smuzhiyun			assigned-clocks = <&topckgen CLK_TOP_AUD_MUX1_SEL>,
674*4882a593Smuzhiyun					  <&topckgen CLK_TOP_AUD_MUX2_SEL>,
675*4882a593Smuzhiyun					  <&topckgen CLK_TOP_AUD_MUX1_DIV>,
676*4882a593Smuzhiyun					  <&topckgen CLK_TOP_AUD_MUX2_DIV>;
677*4882a593Smuzhiyun			assigned-clock-parents = <&topckgen CLK_TOP_AUD1PLL_98M>,
678*4882a593Smuzhiyun						 <&topckgen CLK_TOP_AUD2PLL_90M>;
679*4882a593Smuzhiyun			assigned-clock-rates = <0>, <0>, <49152000>, <45158400>;
680*4882a593Smuzhiyun		};
681*4882a593Smuzhiyun	};
682*4882a593Smuzhiyun
683*4882a593Smuzhiyun	mmc0: mmc@11230000 {
684*4882a593Smuzhiyun		compatible = "mediatek,mt7623-mmc",
685*4882a593Smuzhiyun			     "mediatek,mt2701-mmc";
686*4882a593Smuzhiyun		reg = <0 0x11230000 0 0x1000>;
687*4882a593Smuzhiyun		interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_LOW>;
688*4882a593Smuzhiyun		clocks = <&pericfg CLK_PERI_MSDC30_0>,
689*4882a593Smuzhiyun			 <&topckgen CLK_TOP_MSDC30_0_SEL>;
690*4882a593Smuzhiyun		clock-names = "source", "hclk";
691*4882a593Smuzhiyun		status = "disabled";
692*4882a593Smuzhiyun	};
693*4882a593Smuzhiyun
694*4882a593Smuzhiyun	mmc1: mmc@11240000 {
695*4882a593Smuzhiyun		compatible = "mediatek,mt7623-mmc",
696*4882a593Smuzhiyun			     "mediatek,mt2701-mmc";
697*4882a593Smuzhiyun		reg = <0 0x11240000 0 0x1000>;
698*4882a593Smuzhiyun		interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_LOW>;
699*4882a593Smuzhiyun		clocks = <&pericfg CLK_PERI_MSDC30_1>,
700*4882a593Smuzhiyun			 <&topckgen CLK_TOP_MSDC30_1_SEL>;
701*4882a593Smuzhiyun		clock-names = "source", "hclk";
702*4882a593Smuzhiyun		status = "disabled";
703*4882a593Smuzhiyun	};
704*4882a593Smuzhiyun
705*4882a593Smuzhiyun	vdecsys: syscon@16000000 {
706*4882a593Smuzhiyun		compatible = "mediatek,mt7623-vdecsys",
707*4882a593Smuzhiyun			     "mediatek,mt2701-vdecsys",
708*4882a593Smuzhiyun			     "syscon";
709*4882a593Smuzhiyun		reg = <0 0x16000000 0 0x1000>;
710*4882a593Smuzhiyun		#clock-cells = <1>;
711*4882a593Smuzhiyun	};
712*4882a593Smuzhiyun
713*4882a593Smuzhiyun	hifsys: syscon@1a000000 {
714*4882a593Smuzhiyun		compatible = "mediatek,mt7623-hifsys",
715*4882a593Smuzhiyun			     "mediatek,mt2701-hifsys",
716*4882a593Smuzhiyun			     "syscon";
717*4882a593Smuzhiyun		reg = <0 0x1a000000 0 0x1000>;
718*4882a593Smuzhiyun		#clock-cells = <1>;
719*4882a593Smuzhiyun		#reset-cells = <1>;
720*4882a593Smuzhiyun	};
721*4882a593Smuzhiyun
722*4882a593Smuzhiyun	pcie: pcie@1a140000 {
723*4882a593Smuzhiyun		compatible = "mediatek,mt7623-pcie";
724*4882a593Smuzhiyun		device_type = "pci";
725*4882a593Smuzhiyun		reg = <0 0x1a140000 0 0x1000>, /* PCIe shared registers */
726*4882a593Smuzhiyun		      <0 0x1a142000 0 0x1000>, /* Port0 registers */
727*4882a593Smuzhiyun		      <0 0x1a143000 0 0x1000>, /* Port1 registers */
728*4882a593Smuzhiyun		      <0 0x1a144000 0 0x1000>; /* Port2 registers */
729*4882a593Smuzhiyun		reg-names = "subsys", "port0", "port1", "port2";
730*4882a593Smuzhiyun		#address-cells = <3>;
731*4882a593Smuzhiyun		#size-cells = <2>;
732*4882a593Smuzhiyun		#interrupt-cells = <1>;
733*4882a593Smuzhiyun		interrupt-map-mask = <0xf800 0 0 0>;
734*4882a593Smuzhiyun		interrupt-map = <0x0000 0 0 0 &sysirq GIC_SPI 193 IRQ_TYPE_LEVEL_LOW>,
735*4882a593Smuzhiyun				<0x0800 0 0 0 &sysirq GIC_SPI 194 IRQ_TYPE_LEVEL_LOW>,
736*4882a593Smuzhiyun				<0x1000 0 0 0 &sysirq GIC_SPI 195 IRQ_TYPE_LEVEL_LOW>;
737*4882a593Smuzhiyun		clocks = <&topckgen CLK_TOP_ETHIF_SEL>,
738*4882a593Smuzhiyun			 <&hifsys CLK_HIFSYS_PCIE0>,
739*4882a593Smuzhiyun			 <&hifsys CLK_HIFSYS_PCIE1>,
740*4882a593Smuzhiyun			 <&hifsys CLK_HIFSYS_PCIE2>;
741*4882a593Smuzhiyun		clock-names = "free_ck", "sys_ck0", "sys_ck1", "sys_ck2";
742*4882a593Smuzhiyun		resets = <&hifsys MT2701_HIFSYS_PCIE0_RST>,
743*4882a593Smuzhiyun			 <&hifsys MT2701_HIFSYS_PCIE1_RST>,
744*4882a593Smuzhiyun			 <&hifsys MT2701_HIFSYS_PCIE2_RST>;
745*4882a593Smuzhiyun		reset-names = "pcie-rst0", "pcie-rst1", "pcie-rst2";
746*4882a593Smuzhiyun		phys = <&pcie0_port PHY_TYPE_PCIE>,
747*4882a593Smuzhiyun		       <&pcie1_port PHY_TYPE_PCIE>,
748*4882a593Smuzhiyun		       <&u3port1 PHY_TYPE_PCIE>;
749*4882a593Smuzhiyun		phy-names = "pcie-phy0", "pcie-phy1", "pcie-phy2";
750*4882a593Smuzhiyun		power-domains = <&scpsys MT2701_POWER_DOMAIN_HIF>;
751*4882a593Smuzhiyun		bus-range = <0x00 0xff>;
752*4882a593Smuzhiyun		status = "disabled";
753*4882a593Smuzhiyun		ranges = <0x81000000 0 0x1a160000 0 0x1a160000 0 0x00010000
754*4882a593Smuzhiyun			  0x83000000 0 0x60000000 0 0x60000000 0 0x10000000>;
755*4882a593Smuzhiyun
756*4882a593Smuzhiyun		pcie@0,0 {
757*4882a593Smuzhiyun			reg = <0x0000 0 0 0 0>;
758*4882a593Smuzhiyun			#address-cells = <3>;
759*4882a593Smuzhiyun			#size-cells = <2>;
760*4882a593Smuzhiyun			#interrupt-cells = <1>;
761*4882a593Smuzhiyun			interrupt-map-mask = <0 0 0 0>;
762*4882a593Smuzhiyun			interrupt-map = <0 0 0 0 &sysirq GIC_SPI 193 IRQ_TYPE_LEVEL_LOW>;
763*4882a593Smuzhiyun			ranges;
764*4882a593Smuzhiyun			status = "disabled";
765*4882a593Smuzhiyun		};
766*4882a593Smuzhiyun
767*4882a593Smuzhiyun		pcie@1,0 {
768*4882a593Smuzhiyun			reg = <0x0800 0 0 0 0>;
769*4882a593Smuzhiyun			#address-cells = <3>;
770*4882a593Smuzhiyun			#size-cells = <2>;
771*4882a593Smuzhiyun			#interrupt-cells = <1>;
772*4882a593Smuzhiyun			interrupt-map-mask = <0 0 0 0>;
773*4882a593Smuzhiyun			interrupt-map = <0 0 0 0 &sysirq GIC_SPI 194 IRQ_TYPE_LEVEL_LOW>;
774*4882a593Smuzhiyun			ranges;
775*4882a593Smuzhiyun			status = "disabled";
776*4882a593Smuzhiyun		};
777*4882a593Smuzhiyun
778*4882a593Smuzhiyun		pcie@2,0 {
779*4882a593Smuzhiyun			reg = <0x1000 0 0 0 0>;
780*4882a593Smuzhiyun			#address-cells = <3>;
781*4882a593Smuzhiyun			#size-cells = <2>;
782*4882a593Smuzhiyun			#interrupt-cells = <1>;
783*4882a593Smuzhiyun			interrupt-map-mask = <0 0 0 0>;
784*4882a593Smuzhiyun			interrupt-map = <0 0 0 0 &sysirq GIC_SPI 195 IRQ_TYPE_LEVEL_LOW>;
785*4882a593Smuzhiyun			ranges;
786*4882a593Smuzhiyun			status = "disabled";
787*4882a593Smuzhiyun		};
788*4882a593Smuzhiyun	};
789*4882a593Smuzhiyun
790*4882a593Smuzhiyun	pcie0_phy: pcie-phy@1a149000 {
791*4882a593Smuzhiyun		compatible = "mediatek,generic-tphy-v1";
792*4882a593Smuzhiyun		reg = <0 0x1a149000 0 0x0700>;
793*4882a593Smuzhiyun		#address-cells = <2>;
794*4882a593Smuzhiyun		#size-cells = <2>;
795*4882a593Smuzhiyun		ranges;
796*4882a593Smuzhiyun		status = "disabled";
797*4882a593Smuzhiyun
798*4882a593Smuzhiyun		pcie0_port: pcie-phy@1a149900 {
799*4882a593Smuzhiyun			reg = <0 0x1a149900 0 0x0700>;
800*4882a593Smuzhiyun			clocks = <&clk26m>;
801*4882a593Smuzhiyun			clock-names = "ref";
802*4882a593Smuzhiyun			#phy-cells = <1>;
803*4882a593Smuzhiyun			status = "okay";
804*4882a593Smuzhiyun		};
805*4882a593Smuzhiyun	};
806*4882a593Smuzhiyun
807*4882a593Smuzhiyun	pcie1_phy: pcie-phy@1a14a000 {
808*4882a593Smuzhiyun		compatible = "mediatek,generic-tphy-v1";
809*4882a593Smuzhiyun		reg = <0 0x1a14a000 0 0x0700>;
810*4882a593Smuzhiyun		#address-cells = <2>;
811*4882a593Smuzhiyun		#size-cells = <2>;
812*4882a593Smuzhiyun		ranges;
813*4882a593Smuzhiyun		status = "disabled";
814*4882a593Smuzhiyun
815*4882a593Smuzhiyun		pcie1_port: pcie-phy@1a14a900 {
816*4882a593Smuzhiyun			reg = <0 0x1a14a900 0 0x0700>;
817*4882a593Smuzhiyun			clocks = <&clk26m>;
818*4882a593Smuzhiyun			clock-names = "ref";
819*4882a593Smuzhiyun			#phy-cells = <1>;
820*4882a593Smuzhiyun			status = "okay";
821*4882a593Smuzhiyun		};
822*4882a593Smuzhiyun	};
823*4882a593Smuzhiyun
824*4882a593Smuzhiyun	usb1: usb@1a1c0000 {
825*4882a593Smuzhiyun		compatible = "mediatek,mt7623-xhci",
826*4882a593Smuzhiyun			     "mediatek,mt8173-xhci";
827*4882a593Smuzhiyun		reg = <0 0x1a1c0000 0 0x1000>,
828*4882a593Smuzhiyun		      <0 0x1a1c4700 0 0x0100>;
829*4882a593Smuzhiyun		reg-names = "mac", "ippc";
830*4882a593Smuzhiyun		interrupts = <GIC_SPI 196 IRQ_TYPE_LEVEL_LOW>;
831*4882a593Smuzhiyun		clocks = <&hifsys CLK_HIFSYS_USB0PHY>,
832*4882a593Smuzhiyun			 <&topckgen CLK_TOP_ETHIF_SEL>;
833*4882a593Smuzhiyun		clock-names = "sys_ck", "ref_ck";
834*4882a593Smuzhiyun		power-domains = <&scpsys MT2701_POWER_DOMAIN_HIF>;
835*4882a593Smuzhiyun		phys = <&u2port0 PHY_TYPE_USB2>, <&u3port0 PHY_TYPE_USB3>;
836*4882a593Smuzhiyun		status = "disabled";
837*4882a593Smuzhiyun	};
838*4882a593Smuzhiyun
839*4882a593Smuzhiyun	u3phy1: usb-phy@1a1c4000 {
840*4882a593Smuzhiyun		compatible = "mediatek,mt7623-u3phy",
841*4882a593Smuzhiyun			     "mediatek,mt2701-u3phy";
842*4882a593Smuzhiyun		reg = <0 0x1a1c4000 0 0x0700>;
843*4882a593Smuzhiyun		#address-cells = <2>;
844*4882a593Smuzhiyun		#size-cells = <2>;
845*4882a593Smuzhiyun		ranges;
846*4882a593Smuzhiyun		status = "disabled";
847*4882a593Smuzhiyun
848*4882a593Smuzhiyun		u2port0: usb-phy@1a1c4800 {
849*4882a593Smuzhiyun			reg = <0 0x1a1c4800 0 0x0100>;
850*4882a593Smuzhiyun			clocks = <&topckgen CLK_TOP_USB_PHY48M>;
851*4882a593Smuzhiyun			clock-names = "ref";
852*4882a593Smuzhiyun			#phy-cells = <1>;
853*4882a593Smuzhiyun			status = "okay";
854*4882a593Smuzhiyun		};
855*4882a593Smuzhiyun
856*4882a593Smuzhiyun		u3port0: usb-phy@1a1c4900 {
857*4882a593Smuzhiyun			reg = <0 0x1a1c4900 0 0x0700>;
858*4882a593Smuzhiyun			clocks = <&clk26m>;
859*4882a593Smuzhiyun			clock-names = "ref";
860*4882a593Smuzhiyun			#phy-cells = <1>;
861*4882a593Smuzhiyun			status = "okay";
862*4882a593Smuzhiyun		};
863*4882a593Smuzhiyun	};
864*4882a593Smuzhiyun
865*4882a593Smuzhiyun	usb2: usb@1a240000 {
866*4882a593Smuzhiyun		compatible = "mediatek,mt7623-xhci",
867*4882a593Smuzhiyun			     "mediatek,mt8173-xhci";
868*4882a593Smuzhiyun		reg = <0 0x1a240000 0 0x1000>,
869*4882a593Smuzhiyun		      <0 0x1a244700 0 0x0100>;
870*4882a593Smuzhiyun		reg-names = "mac", "ippc";
871*4882a593Smuzhiyun		interrupts = <GIC_SPI 197 IRQ_TYPE_LEVEL_LOW>;
872*4882a593Smuzhiyun		clocks = <&hifsys CLK_HIFSYS_USB1PHY>,
873*4882a593Smuzhiyun			 <&topckgen CLK_TOP_ETHIF_SEL>;
874*4882a593Smuzhiyun		clock-names = "sys_ck", "ref_ck";
875*4882a593Smuzhiyun		power-domains = <&scpsys MT2701_POWER_DOMAIN_HIF>;
876*4882a593Smuzhiyun		phys = <&u2port1 PHY_TYPE_USB2>, <&u3port1 PHY_TYPE_USB3>;
877*4882a593Smuzhiyun		status = "disabled";
878*4882a593Smuzhiyun	};
879*4882a593Smuzhiyun
880*4882a593Smuzhiyun	u3phy2: usb-phy@1a244000 {
881*4882a593Smuzhiyun		compatible = "mediatek,mt7623-u3phy",
882*4882a593Smuzhiyun			     "mediatek,mt2701-u3phy";
883*4882a593Smuzhiyun		reg = <0 0x1a244000 0 0x0700>;
884*4882a593Smuzhiyun		#address-cells = <2>;
885*4882a593Smuzhiyun		#size-cells = <2>;
886*4882a593Smuzhiyun		ranges;
887*4882a593Smuzhiyun		status = "disabled";
888*4882a593Smuzhiyun
889*4882a593Smuzhiyun		u2port1: usb-phy@1a244800 {
890*4882a593Smuzhiyun			reg = <0 0x1a244800 0 0x0100>;
891*4882a593Smuzhiyun			clocks = <&topckgen CLK_TOP_USB_PHY48M>;
892*4882a593Smuzhiyun			clock-names = "ref";
893*4882a593Smuzhiyun			#phy-cells = <1>;
894*4882a593Smuzhiyun			status = "okay";
895*4882a593Smuzhiyun		};
896*4882a593Smuzhiyun
897*4882a593Smuzhiyun		u3port1: usb-phy@1a244900 {
898*4882a593Smuzhiyun			reg = <0 0x1a244900 0 0x0700>;
899*4882a593Smuzhiyun			clocks = <&clk26m>;
900*4882a593Smuzhiyun			clock-names = "ref";
901*4882a593Smuzhiyun			#phy-cells = <1>;
902*4882a593Smuzhiyun			status = "okay";
903*4882a593Smuzhiyun		};
904*4882a593Smuzhiyun	};
905*4882a593Smuzhiyun
906*4882a593Smuzhiyun	ethsys: syscon@1b000000 {
907*4882a593Smuzhiyun		compatible = "mediatek,mt7623-ethsys",
908*4882a593Smuzhiyun			     "mediatek,mt2701-ethsys",
909*4882a593Smuzhiyun			     "syscon";
910*4882a593Smuzhiyun		reg = <0 0x1b000000 0 0x1000>;
911*4882a593Smuzhiyun		#clock-cells = <1>;
912*4882a593Smuzhiyun		#reset-cells = <1>;
913*4882a593Smuzhiyun	};
914*4882a593Smuzhiyun
915*4882a593Smuzhiyun	hsdma: dma-controller@1b007000 {
916*4882a593Smuzhiyun		compatible = "mediatek,mt7623-hsdma";
917*4882a593Smuzhiyun		reg = <0 0x1b007000 0 0x1000>;
918*4882a593Smuzhiyun		interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_LOW>;
919*4882a593Smuzhiyun		clocks = <&ethsys CLK_ETHSYS_HSDMA>;
920*4882a593Smuzhiyun		clock-names = "hsdma";
921*4882a593Smuzhiyun		power-domains = <&scpsys MT2701_POWER_DOMAIN_ETH>;
922*4882a593Smuzhiyun		#dma-cells = <1>;
923*4882a593Smuzhiyun	};
924*4882a593Smuzhiyun
925*4882a593Smuzhiyun	eth: ethernet@1b100000 {
926*4882a593Smuzhiyun		compatible = "mediatek,mt7623-eth",
927*4882a593Smuzhiyun			     "mediatek,mt2701-eth",
928*4882a593Smuzhiyun			     "syscon";
929*4882a593Smuzhiyun		reg = <0 0x1b100000 0 0x20000>;
930*4882a593Smuzhiyun		interrupts = <GIC_SPI 200 IRQ_TYPE_LEVEL_LOW>,
931*4882a593Smuzhiyun			     <GIC_SPI 199 IRQ_TYPE_LEVEL_LOW>,
932*4882a593Smuzhiyun			     <GIC_SPI 198 IRQ_TYPE_LEVEL_LOW>;
933*4882a593Smuzhiyun		clocks = <&topckgen CLK_TOP_ETHIF_SEL>,
934*4882a593Smuzhiyun			 <&ethsys CLK_ETHSYS_ESW>,
935*4882a593Smuzhiyun			 <&ethsys CLK_ETHSYS_GP1>,
936*4882a593Smuzhiyun			 <&ethsys CLK_ETHSYS_GP2>,
937*4882a593Smuzhiyun			 <&apmixedsys CLK_APMIXED_TRGPLL>;
938*4882a593Smuzhiyun		clock-names = "ethif", "esw", "gp1", "gp2", "trgpll";
939*4882a593Smuzhiyun		resets = <&ethsys MT2701_ETHSYS_FE_RST>,
940*4882a593Smuzhiyun			 <&ethsys MT2701_ETHSYS_GMAC_RST>,
941*4882a593Smuzhiyun			 <&ethsys MT2701_ETHSYS_PPE_RST>;
942*4882a593Smuzhiyun		reset-names = "fe", "gmac", "ppe";
943*4882a593Smuzhiyun		power-domains = <&scpsys MT2701_POWER_DOMAIN_ETH>;
944*4882a593Smuzhiyun		mediatek,ethsys = <&ethsys>;
945*4882a593Smuzhiyun		mediatek,pctl = <&syscfg_pctl_a>;
946*4882a593Smuzhiyun		#address-cells = <1>;
947*4882a593Smuzhiyun		#size-cells = <0>;
948*4882a593Smuzhiyun		status = "disabled";
949*4882a593Smuzhiyun	};
950*4882a593Smuzhiyun
951*4882a593Smuzhiyun	crypto: crypto@1b240000 {
952*4882a593Smuzhiyun		compatible = "mediatek,eip97-crypto";
953*4882a593Smuzhiyun		reg = <0 0x1b240000 0 0x20000>;
954*4882a593Smuzhiyun		interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_LOW>,
955*4882a593Smuzhiyun			     <GIC_SPI 83 IRQ_TYPE_LEVEL_LOW>,
956*4882a593Smuzhiyun			     <GIC_SPI 84 IRQ_TYPE_LEVEL_LOW>,
957*4882a593Smuzhiyun			     <GIC_SPI 91 IRQ_TYPE_LEVEL_LOW>,
958*4882a593Smuzhiyun			     <GIC_SPI 97 IRQ_TYPE_LEVEL_LOW>;
959*4882a593Smuzhiyun		clocks = <&ethsys CLK_ETHSYS_CRYPTO>;
960*4882a593Smuzhiyun		clock-names = "cryp";
961*4882a593Smuzhiyun		power-domains = <&scpsys MT2701_POWER_DOMAIN_ETH>;
962*4882a593Smuzhiyun		status = "disabled";
963*4882a593Smuzhiyun	};
964*4882a593Smuzhiyun
965*4882a593Smuzhiyun	bdpsys: syscon@1c000000 {
966*4882a593Smuzhiyun		compatible = "mediatek,mt7623-bdpsys",
967*4882a593Smuzhiyun			     "mediatek,mt2701-bdpsys",
968*4882a593Smuzhiyun			     "syscon";
969*4882a593Smuzhiyun		reg = <0 0x1c000000 0 0x1000>;
970*4882a593Smuzhiyun		#clock-cells = <1>;
971*4882a593Smuzhiyun	};
972*4882a593Smuzhiyun};
973*4882a593Smuzhiyun
974*4882a593Smuzhiyun&pio {
975*4882a593Smuzhiyun	cir_pins_a:cir-default {
976*4882a593Smuzhiyun		pins-cir {
977*4882a593Smuzhiyun			pinmux = <MT7623_PIN_46_IR_FUNC_IR>;
978*4882a593Smuzhiyun			bias-disable;
979*4882a593Smuzhiyun		};
980*4882a593Smuzhiyun	};
981*4882a593Smuzhiyun
982*4882a593Smuzhiyun	i2c0_pins_a: i2c0-default {
983*4882a593Smuzhiyun		pins-i2c0 {
984*4882a593Smuzhiyun			pinmux = <MT7623_PIN_75_SDA0_FUNC_SDA0>,
985*4882a593Smuzhiyun				 <MT7623_PIN_76_SCL0_FUNC_SCL0>;
986*4882a593Smuzhiyun			bias-disable;
987*4882a593Smuzhiyun		};
988*4882a593Smuzhiyun	};
989*4882a593Smuzhiyun
990*4882a593Smuzhiyun	i2c1_pins_a: i2c1-default {
991*4882a593Smuzhiyun		pin-i2c1 {
992*4882a593Smuzhiyun			pinmux = <MT7623_PIN_57_SDA1_FUNC_SDA1>,
993*4882a593Smuzhiyun				 <MT7623_PIN_58_SCL1_FUNC_SCL1>;
994*4882a593Smuzhiyun			bias-disable;
995*4882a593Smuzhiyun		};
996*4882a593Smuzhiyun	};
997*4882a593Smuzhiyun
998*4882a593Smuzhiyun	i2c1_pins_b: i2c1-alt {
999*4882a593Smuzhiyun		pin-i2c1 {
1000*4882a593Smuzhiyun			pinmux = <MT7623_PIN_242_URTS2_FUNC_SCL1>,
1001*4882a593Smuzhiyun				 <MT7623_PIN_243_UCTS2_FUNC_SDA1>;
1002*4882a593Smuzhiyun			bias-disable;
1003*4882a593Smuzhiyun		};
1004*4882a593Smuzhiyun	};
1005*4882a593Smuzhiyun
1006*4882a593Smuzhiyun	i2c2_pins_a: i2c2-default {
1007*4882a593Smuzhiyun		pin-i2c2 {
1008*4882a593Smuzhiyun			pinmux = <MT7623_PIN_77_SDA2_FUNC_SDA2>,
1009*4882a593Smuzhiyun				 <MT7623_PIN_78_SCL2_FUNC_SCL2>;
1010*4882a593Smuzhiyun			bias-disable;
1011*4882a593Smuzhiyun		};
1012*4882a593Smuzhiyun	};
1013*4882a593Smuzhiyun
1014*4882a593Smuzhiyun	i2c2_pins_b: i2c2-alt {
1015*4882a593Smuzhiyun		pin-i2c2 {
1016*4882a593Smuzhiyun			pinmux = <MT7623_PIN_122_GPIO122_FUNC_SDA2>,
1017*4882a593Smuzhiyun				 <MT7623_PIN_123_HTPLG_FUNC_SCL2>;
1018*4882a593Smuzhiyun			bias-disable;
1019*4882a593Smuzhiyun		};
1020*4882a593Smuzhiyun	};
1021*4882a593Smuzhiyun
1022*4882a593Smuzhiyun	i2s0_pins_a: i2s0-default {
1023*4882a593Smuzhiyun		pin-i2s0 {
1024*4882a593Smuzhiyun			pinmux = <MT7623_PIN_49_I2S0_DATA_FUNC_I2S0_DATA>,
1025*4882a593Smuzhiyun				 <MT7623_PIN_72_I2S0_DATA_IN_FUNC_I2S0_DATA_IN>,
1026*4882a593Smuzhiyun				 <MT7623_PIN_73_I2S0_LRCK_FUNC_I2S0_LRCK>,
1027*4882a593Smuzhiyun				 <MT7623_PIN_74_I2S0_BCK_FUNC_I2S0_BCK>,
1028*4882a593Smuzhiyun				 <MT7623_PIN_126_I2S0_MCLK_FUNC_I2S0_MCLK>;
1029*4882a593Smuzhiyun			drive-strength = <MTK_DRIVE_12mA>;
1030*4882a593Smuzhiyun			bias-pull-down;
1031*4882a593Smuzhiyun		};
1032*4882a593Smuzhiyun	};
1033*4882a593Smuzhiyun
1034*4882a593Smuzhiyun	i2s1_pins_a: i2s1-default {
1035*4882a593Smuzhiyun		pin-i2s1 {
1036*4882a593Smuzhiyun			pinmux = <MT7623_PIN_33_I2S1_DATA_FUNC_I2S1_DATA>,
1037*4882a593Smuzhiyun				 <MT7623_PIN_34_I2S1_DATA_IN_FUNC_I2S1_DATA_IN>,
1038*4882a593Smuzhiyun				 <MT7623_PIN_35_I2S1_BCK_FUNC_I2S1_BCK>,
1039*4882a593Smuzhiyun				 <MT7623_PIN_36_I2S1_LRCK_FUNC_I2S1_LRCK>,
1040*4882a593Smuzhiyun				 <MT7623_PIN_37_I2S1_MCLK_FUNC_I2S1_MCLK>;
1041*4882a593Smuzhiyun			drive-strength = <MTK_DRIVE_12mA>;
1042*4882a593Smuzhiyun			bias-pull-down;
1043*4882a593Smuzhiyun		};
1044*4882a593Smuzhiyun	};
1045*4882a593Smuzhiyun
1046*4882a593Smuzhiyun	key_pins_a: keys-alt {
1047*4882a593Smuzhiyun		pins-keys {
1048*4882a593Smuzhiyun			pinmux = <MT7623_PIN_256_GPIO256_FUNC_GPIO256>,
1049*4882a593Smuzhiyun				 <MT7623_PIN_257_GPIO257_FUNC_GPIO257> ;
1050*4882a593Smuzhiyun			input-enable;
1051*4882a593Smuzhiyun		};
1052*4882a593Smuzhiyun	};
1053*4882a593Smuzhiyun
1054*4882a593Smuzhiyun	led_pins_a: leds-alt {
1055*4882a593Smuzhiyun		pins-leds {
1056*4882a593Smuzhiyun			pinmux = <MT7623_PIN_239_EXT_SDIO0_FUNC_GPIO239>,
1057*4882a593Smuzhiyun				 <MT7623_PIN_240_EXT_XCS_FUNC_GPIO240>,
1058*4882a593Smuzhiyun				 <MT7623_PIN_241_EXT_SCK_FUNC_GPIO241>;
1059*4882a593Smuzhiyun		};
1060*4882a593Smuzhiyun	};
1061*4882a593Smuzhiyun
1062*4882a593Smuzhiyun	mmc0_pins_default: mmc0default {
1063*4882a593Smuzhiyun		pins-cmd-dat {
1064*4882a593Smuzhiyun			pinmux = <MT7623_PIN_111_MSDC0_DAT7_FUNC_MSDC0_DAT7>,
1065*4882a593Smuzhiyun				 <MT7623_PIN_112_MSDC0_DAT6_FUNC_MSDC0_DAT6>,
1066*4882a593Smuzhiyun				 <MT7623_PIN_113_MSDC0_DAT5_FUNC_MSDC0_DAT5>,
1067*4882a593Smuzhiyun				 <MT7623_PIN_114_MSDC0_DAT4_FUNC_MSDC0_DAT4>,
1068*4882a593Smuzhiyun				 <MT7623_PIN_118_MSDC0_DAT3_FUNC_MSDC0_DAT3>,
1069*4882a593Smuzhiyun				 <MT7623_PIN_119_MSDC0_DAT2_FUNC_MSDC0_DAT2>,
1070*4882a593Smuzhiyun				 <MT7623_PIN_120_MSDC0_DAT1_FUNC_MSDC0_DAT1>,
1071*4882a593Smuzhiyun				 <MT7623_PIN_121_MSDC0_DAT0_FUNC_MSDC0_DAT0>,
1072*4882a593Smuzhiyun				 <MT7623_PIN_116_MSDC0_CMD_FUNC_MSDC0_CMD>;
1073*4882a593Smuzhiyun			input-enable;
1074*4882a593Smuzhiyun			bias-pull-up;
1075*4882a593Smuzhiyun		};
1076*4882a593Smuzhiyun
1077*4882a593Smuzhiyun		pins-clk {
1078*4882a593Smuzhiyun			pinmux = <MT7623_PIN_117_MSDC0_CLK_FUNC_MSDC0_CLK>;
1079*4882a593Smuzhiyun			bias-pull-down;
1080*4882a593Smuzhiyun		};
1081*4882a593Smuzhiyun
1082*4882a593Smuzhiyun		pins-rst {
1083*4882a593Smuzhiyun			pinmux = <MT7623_PIN_115_MSDC0_RSTB_FUNC_MSDC0_RSTB>;
1084*4882a593Smuzhiyun			bias-pull-up;
1085*4882a593Smuzhiyun		};
1086*4882a593Smuzhiyun	};
1087*4882a593Smuzhiyun
1088*4882a593Smuzhiyun	mmc0_pins_uhs: mmc0 {
1089*4882a593Smuzhiyun		pins-cmd-dat {
1090*4882a593Smuzhiyun			pinmux = <MT7623_PIN_111_MSDC0_DAT7_FUNC_MSDC0_DAT7>,
1091*4882a593Smuzhiyun				 <MT7623_PIN_112_MSDC0_DAT6_FUNC_MSDC0_DAT6>,
1092*4882a593Smuzhiyun				 <MT7623_PIN_113_MSDC0_DAT5_FUNC_MSDC0_DAT5>,
1093*4882a593Smuzhiyun				 <MT7623_PIN_114_MSDC0_DAT4_FUNC_MSDC0_DAT4>,
1094*4882a593Smuzhiyun				 <MT7623_PIN_118_MSDC0_DAT3_FUNC_MSDC0_DAT3>,
1095*4882a593Smuzhiyun				 <MT7623_PIN_119_MSDC0_DAT2_FUNC_MSDC0_DAT2>,
1096*4882a593Smuzhiyun				 <MT7623_PIN_120_MSDC0_DAT1_FUNC_MSDC0_DAT1>,
1097*4882a593Smuzhiyun				 <MT7623_PIN_121_MSDC0_DAT0_FUNC_MSDC0_DAT0>,
1098*4882a593Smuzhiyun				 <MT7623_PIN_116_MSDC0_CMD_FUNC_MSDC0_CMD>;
1099*4882a593Smuzhiyun			input-enable;
1100*4882a593Smuzhiyun			drive-strength = <MTK_DRIVE_2mA>;
1101*4882a593Smuzhiyun			bias-pull-up = <MTK_PUPD_SET_R1R0_01>;
1102*4882a593Smuzhiyun		};
1103*4882a593Smuzhiyun
1104*4882a593Smuzhiyun		pins-clk {
1105*4882a593Smuzhiyun			pinmux = <MT7623_PIN_117_MSDC0_CLK_FUNC_MSDC0_CLK>;
1106*4882a593Smuzhiyun			drive-strength = <MTK_DRIVE_2mA>;
1107*4882a593Smuzhiyun			bias-pull-down = <MTK_PUPD_SET_R1R0_01>;
1108*4882a593Smuzhiyun		};
1109*4882a593Smuzhiyun
1110*4882a593Smuzhiyun		pins-rst {
1111*4882a593Smuzhiyun			pinmux = <MT7623_PIN_115_MSDC0_RSTB_FUNC_MSDC0_RSTB>;
1112*4882a593Smuzhiyun			bias-pull-up;
1113*4882a593Smuzhiyun		};
1114*4882a593Smuzhiyun	};
1115*4882a593Smuzhiyun
1116*4882a593Smuzhiyun	mmc1_pins_default: mmc1default {
1117*4882a593Smuzhiyun		pins-cmd-dat {
1118*4882a593Smuzhiyun			pinmux = <MT7623_PIN_107_MSDC1_DAT0_FUNC_MSDC1_DAT0>,
1119*4882a593Smuzhiyun				 <MT7623_PIN_108_MSDC1_DAT1_FUNC_MSDC1_DAT1>,
1120*4882a593Smuzhiyun				 <MT7623_PIN_109_MSDC1_DAT2_FUNC_MSDC1_DAT2>,
1121*4882a593Smuzhiyun				 <MT7623_PIN_110_MSDC1_DAT3_FUNC_MSDC1_DAT3>,
1122*4882a593Smuzhiyun				 <MT7623_PIN_105_MSDC1_CMD_FUNC_MSDC1_CMD>;
1123*4882a593Smuzhiyun			input-enable;
1124*4882a593Smuzhiyun			drive-strength = <MTK_DRIVE_4mA>;
1125*4882a593Smuzhiyun			bias-pull-up = <MTK_PUPD_SET_R1R0_10>;
1126*4882a593Smuzhiyun		};
1127*4882a593Smuzhiyun
1128*4882a593Smuzhiyun		pins-clk {
1129*4882a593Smuzhiyun			pinmux = <MT7623_PIN_106_MSDC1_CLK_FUNC_MSDC1_CLK>;
1130*4882a593Smuzhiyun			bias-pull-down;
1131*4882a593Smuzhiyun			drive-strength = <MTK_DRIVE_4mA>;
1132*4882a593Smuzhiyun		};
1133*4882a593Smuzhiyun
1134*4882a593Smuzhiyun		pins-wp {
1135*4882a593Smuzhiyun			pinmux = <MT7623_PIN_29_EINT7_FUNC_MSDC1_WP>;
1136*4882a593Smuzhiyun			input-enable;
1137*4882a593Smuzhiyun			bias-pull-up;
1138*4882a593Smuzhiyun		};
1139*4882a593Smuzhiyun
1140*4882a593Smuzhiyun		pins-insert {
1141*4882a593Smuzhiyun			pinmux = <MT7623_PIN_261_MSDC1_INS_FUNC_GPIO261>;
1142*4882a593Smuzhiyun			bias-pull-up;
1143*4882a593Smuzhiyun		};
1144*4882a593Smuzhiyun	};
1145*4882a593Smuzhiyun
1146*4882a593Smuzhiyun	mmc1_pins_uhs: mmc1 {
1147*4882a593Smuzhiyun		pins-cmd-dat {
1148*4882a593Smuzhiyun			pinmux = <MT7623_PIN_107_MSDC1_DAT0_FUNC_MSDC1_DAT0>,
1149*4882a593Smuzhiyun				 <MT7623_PIN_108_MSDC1_DAT1_FUNC_MSDC1_DAT1>,
1150*4882a593Smuzhiyun				 <MT7623_PIN_109_MSDC1_DAT2_FUNC_MSDC1_DAT2>,
1151*4882a593Smuzhiyun				 <MT7623_PIN_110_MSDC1_DAT3_FUNC_MSDC1_DAT3>,
1152*4882a593Smuzhiyun				 <MT7623_PIN_105_MSDC1_CMD_FUNC_MSDC1_CMD>;
1153*4882a593Smuzhiyun			input-enable;
1154*4882a593Smuzhiyun			drive-strength = <MTK_DRIVE_4mA>;
1155*4882a593Smuzhiyun			bias-pull-up = <MTK_PUPD_SET_R1R0_10>;
1156*4882a593Smuzhiyun		};
1157*4882a593Smuzhiyun
1158*4882a593Smuzhiyun		pins-clk {
1159*4882a593Smuzhiyun			pinmux = <MT7623_PIN_106_MSDC1_CLK_FUNC_MSDC1_CLK>;
1160*4882a593Smuzhiyun			drive-strength = <MTK_DRIVE_4mA>;
1161*4882a593Smuzhiyun			bias-pull-down = <MTK_PUPD_SET_R1R0_10>;
1162*4882a593Smuzhiyun		};
1163*4882a593Smuzhiyun	};
1164*4882a593Smuzhiyun
1165*4882a593Smuzhiyun	nand_pins_default: nanddefault {
1166*4882a593Smuzhiyun		pins-ale {
1167*4882a593Smuzhiyun			pinmux = <MT7623_PIN_116_MSDC0_CMD_FUNC_NALE>;
1168*4882a593Smuzhiyun			drive-strength = <MTK_DRIVE_8mA>;
1169*4882a593Smuzhiyun			bias-pull-down = <MTK_PUPD_SET_R1R0_10>;
1170*4882a593Smuzhiyun		};
1171*4882a593Smuzhiyun
1172*4882a593Smuzhiyun		pins-dat {
1173*4882a593Smuzhiyun			pinmux = <MT7623_PIN_111_MSDC0_DAT7_FUNC_NLD7>,
1174*4882a593Smuzhiyun				 <MT7623_PIN_112_MSDC0_DAT6_FUNC_NLD6>,
1175*4882a593Smuzhiyun				 <MT7623_PIN_114_MSDC0_DAT4_FUNC_NLD4>,
1176*4882a593Smuzhiyun				 <MT7623_PIN_118_MSDC0_DAT3_FUNC_NLD3>,
1177*4882a593Smuzhiyun				 <MT7623_PIN_121_MSDC0_DAT0_FUNC_NLD0>,
1178*4882a593Smuzhiyun				 <MT7623_PIN_120_MSDC0_DAT1_FUNC_NLD1>,
1179*4882a593Smuzhiyun				 <MT7623_PIN_113_MSDC0_DAT5_FUNC_NLD5>,
1180*4882a593Smuzhiyun				 <MT7623_PIN_115_MSDC0_RSTB_FUNC_NLD8>,
1181*4882a593Smuzhiyun				 <MT7623_PIN_119_MSDC0_DAT2_FUNC_NLD2>;
1182*4882a593Smuzhiyun			input-enable;
1183*4882a593Smuzhiyun			drive-strength = <MTK_DRIVE_8mA>;
1184*4882a593Smuzhiyun			bias-pull-up;
1185*4882a593Smuzhiyun		};
1186*4882a593Smuzhiyun
1187*4882a593Smuzhiyun		pins-we {
1188*4882a593Smuzhiyun			pinmux = <MT7623_PIN_117_MSDC0_CLK_FUNC_NWEB>;
1189*4882a593Smuzhiyun			drive-strength = <MTK_DRIVE_8mA>;
1190*4882a593Smuzhiyun			bias-pull-up = <MTK_PUPD_SET_R1R0_10>;
1191*4882a593Smuzhiyun		};
1192*4882a593Smuzhiyun	};
1193*4882a593Smuzhiyun
1194*4882a593Smuzhiyun	pcie_default: pcie_pin_default {
1195*4882a593Smuzhiyun		pins_cmd_dat {
1196*4882a593Smuzhiyun			pinmux = <MT7623_PIN_208_AUD_EXT_CK1_FUNC_PCIE0_PERST_N>,
1197*4882a593Smuzhiyun				 <MT7623_PIN_209_AUD_EXT_CK2_FUNC_PCIE1_PERST_N>;
1198*4882a593Smuzhiyun			bias-disable;
1199*4882a593Smuzhiyun		};
1200*4882a593Smuzhiyun	};
1201*4882a593Smuzhiyun
1202*4882a593Smuzhiyun	pwm_pins_a: pwm-default {
1203*4882a593Smuzhiyun		pins-pwm {
1204*4882a593Smuzhiyun			pinmux = <MT7623_PIN_203_PWM0_FUNC_PWM0>,
1205*4882a593Smuzhiyun				 <MT7623_PIN_204_PWM1_FUNC_PWM1>,
1206*4882a593Smuzhiyun				 <MT7623_PIN_205_PWM2_FUNC_PWM2>,
1207*4882a593Smuzhiyun				 <MT7623_PIN_206_PWM3_FUNC_PWM3>,
1208*4882a593Smuzhiyun				 <MT7623_PIN_207_PWM4_FUNC_PWM4>;
1209*4882a593Smuzhiyun		};
1210*4882a593Smuzhiyun	};
1211*4882a593Smuzhiyun
1212*4882a593Smuzhiyun	spi0_pins_a: spi0-default {
1213*4882a593Smuzhiyun		pins-spi {
1214*4882a593Smuzhiyun			pinmux = <MT7623_PIN_53_SPI0_CSN_FUNC_SPI0_CS>,
1215*4882a593Smuzhiyun				<MT7623_PIN_54_SPI0_CK_FUNC_SPI0_CK>,
1216*4882a593Smuzhiyun				<MT7623_PIN_55_SPI0_MI_FUNC_SPI0_MI>,
1217*4882a593Smuzhiyun				<MT7623_PIN_56_SPI0_MO_FUNC_SPI0_MO>;
1218*4882a593Smuzhiyun			bias-disable;
1219*4882a593Smuzhiyun		};
1220*4882a593Smuzhiyun	};
1221*4882a593Smuzhiyun
1222*4882a593Smuzhiyun	spi1_pins_a: spi1-default {
1223*4882a593Smuzhiyun		pins-spi {
1224*4882a593Smuzhiyun			pinmux = <MT7623_PIN_7_SPI1_CSN_FUNC_SPI1_CS>,
1225*4882a593Smuzhiyun				<MT7623_PIN_199_SPI1_CK_FUNC_SPI1_CK>,
1226*4882a593Smuzhiyun				<MT7623_PIN_8_SPI1_MI_FUNC_SPI1_MI>,
1227*4882a593Smuzhiyun				<MT7623_PIN_9_SPI1_MO_FUNC_SPI1_MO>;
1228*4882a593Smuzhiyun		};
1229*4882a593Smuzhiyun	};
1230*4882a593Smuzhiyun
1231*4882a593Smuzhiyun	spi2_pins_a: spi2-default {
1232*4882a593Smuzhiyun		pins-spi {
1233*4882a593Smuzhiyun			pinmux = <MT7623_PIN_101_SPI2_CSN_FUNC_SPI2_CS>,
1234*4882a593Smuzhiyun				 <MT7623_PIN_104_SPI2_CK_FUNC_SPI2_CK>,
1235*4882a593Smuzhiyun				 <MT7623_PIN_102_SPI2_MI_FUNC_SPI2_MI>,
1236*4882a593Smuzhiyun				 <MT7623_PIN_103_SPI2_MO_FUNC_SPI2_MO>;
1237*4882a593Smuzhiyun		};
1238*4882a593Smuzhiyun	};
1239*4882a593Smuzhiyun
1240*4882a593Smuzhiyun	uart0_pins_a: uart0-default {
1241*4882a593Smuzhiyun		pins-dat {
1242*4882a593Smuzhiyun			pinmux = <MT7623_PIN_79_URXD0_FUNC_URXD0>,
1243*4882a593Smuzhiyun				 <MT7623_PIN_80_UTXD0_FUNC_UTXD0>;
1244*4882a593Smuzhiyun		};
1245*4882a593Smuzhiyun	};
1246*4882a593Smuzhiyun
1247*4882a593Smuzhiyun	uart1_pins_a: uart1-default {
1248*4882a593Smuzhiyun		pins-dat {
1249*4882a593Smuzhiyun			pinmux = <MT7623_PIN_81_URXD1_FUNC_URXD1>,
1250*4882a593Smuzhiyun				 <MT7623_PIN_82_UTXD1_FUNC_UTXD1>;
1251*4882a593Smuzhiyun		};
1252*4882a593Smuzhiyun	};
1253*4882a593Smuzhiyun
1254*4882a593Smuzhiyun	uart2_pins_a: uart2-default {
1255*4882a593Smuzhiyun		pins-dat {
1256*4882a593Smuzhiyun			pinmux = <MT7623_PIN_14_GPIO14_FUNC_URXD2>,
1257*4882a593Smuzhiyun				 <MT7623_PIN_15_GPIO15_FUNC_UTXD2>;
1258*4882a593Smuzhiyun		};
1259*4882a593Smuzhiyun	};
1260*4882a593Smuzhiyun
1261*4882a593Smuzhiyun	uart2_pins_b: uart2-alt {
1262*4882a593Smuzhiyun		pins-dat {
1263*4882a593Smuzhiyun			pinmux = <MT7623_PIN_200_URXD2_FUNC_URXD2>,
1264*4882a593Smuzhiyun				 <MT7623_PIN_201_UTXD2_FUNC_UTXD2>;
1265*4882a593Smuzhiyun		};
1266*4882a593Smuzhiyun	};
1267*4882a593Smuzhiyun};
1268