xref: /freebsd/sys/contrib/device-tree/src/arm64/mediatek/mt2712e.dtsi (revision c66ec88fed842fbaad62c30d510644ceb7bd2d71)
1*c66ec88fSEmmanuel Vadot/*
2*c66ec88fSEmmanuel Vadot * Copyright (c) 2017 MediaTek Inc.
3*c66ec88fSEmmanuel Vadot * Author: YT Shen <yt.shen@mediatek.com>
4*c66ec88fSEmmanuel Vadot *
5*c66ec88fSEmmanuel Vadot * SPDX-License-Identifier: (GPL-2.0 OR MIT)
6*c66ec88fSEmmanuel Vadot */
7*c66ec88fSEmmanuel Vadot
8*c66ec88fSEmmanuel Vadot#include <dt-bindings/clock/mt2712-clk.h>
9*c66ec88fSEmmanuel Vadot#include <dt-bindings/interrupt-controller/irq.h>
10*c66ec88fSEmmanuel Vadot#include <dt-bindings/interrupt-controller/arm-gic.h>
11*c66ec88fSEmmanuel Vadot#include <dt-bindings/memory/mt2712-larb-port.h>
12*c66ec88fSEmmanuel Vadot#include <dt-bindings/phy/phy.h>
13*c66ec88fSEmmanuel Vadot#include <dt-bindings/power/mt2712-power.h>
14*c66ec88fSEmmanuel Vadot#include "mt2712-pinfunc.h"
15*c66ec88fSEmmanuel Vadot
16*c66ec88fSEmmanuel Vadot/ {
17*c66ec88fSEmmanuel Vadot	compatible = "mediatek,mt2712";
18*c66ec88fSEmmanuel Vadot	interrupt-parent = <&sysirq>;
19*c66ec88fSEmmanuel Vadot	#address-cells = <2>;
20*c66ec88fSEmmanuel Vadot	#size-cells = <2>;
21*c66ec88fSEmmanuel Vadot
22*c66ec88fSEmmanuel Vadot	cluster0_opp: opp_table0 {
23*c66ec88fSEmmanuel Vadot		compatible = "operating-points-v2";
24*c66ec88fSEmmanuel Vadot		opp-shared;
25*c66ec88fSEmmanuel Vadot		opp00 {
26*c66ec88fSEmmanuel Vadot			opp-hz = /bits/ 64 <598000000>;
27*c66ec88fSEmmanuel Vadot			opp-microvolt = <1000000>;
28*c66ec88fSEmmanuel Vadot		};
29*c66ec88fSEmmanuel Vadot		opp01 {
30*c66ec88fSEmmanuel Vadot			opp-hz = /bits/ 64 <702000000>;
31*c66ec88fSEmmanuel Vadot			opp-microvolt = <1000000>;
32*c66ec88fSEmmanuel Vadot		};
33*c66ec88fSEmmanuel Vadot		opp02 {
34*c66ec88fSEmmanuel Vadot			opp-hz = /bits/ 64 <793000000>;
35*c66ec88fSEmmanuel Vadot			opp-microvolt = <1000000>;
36*c66ec88fSEmmanuel Vadot		};
37*c66ec88fSEmmanuel Vadot	};
38*c66ec88fSEmmanuel Vadot
39*c66ec88fSEmmanuel Vadot	cluster1_opp: opp_table1 {
40*c66ec88fSEmmanuel Vadot		compatible = "operating-points-v2";
41*c66ec88fSEmmanuel Vadot		opp-shared;
42*c66ec88fSEmmanuel Vadot		opp00 {
43*c66ec88fSEmmanuel Vadot			opp-hz = /bits/ 64 <598000000>;
44*c66ec88fSEmmanuel Vadot			opp-microvolt = <1000000>;
45*c66ec88fSEmmanuel Vadot		};
46*c66ec88fSEmmanuel Vadot		opp01 {
47*c66ec88fSEmmanuel Vadot			opp-hz = /bits/ 64 <702000000>;
48*c66ec88fSEmmanuel Vadot			opp-microvolt = <1000000>;
49*c66ec88fSEmmanuel Vadot		};
50*c66ec88fSEmmanuel Vadot		opp02 {
51*c66ec88fSEmmanuel Vadot			opp-hz = /bits/ 64 <793000000>;
52*c66ec88fSEmmanuel Vadot			opp-microvolt = <1000000>;
53*c66ec88fSEmmanuel Vadot		};
54*c66ec88fSEmmanuel Vadot		opp03 {
55*c66ec88fSEmmanuel Vadot			opp-hz = /bits/ 64 <897000000>;
56*c66ec88fSEmmanuel Vadot			opp-microvolt = <1000000>;
57*c66ec88fSEmmanuel Vadot		};
58*c66ec88fSEmmanuel Vadot		opp04 {
59*c66ec88fSEmmanuel Vadot			opp-hz = /bits/ 64 <1001000000>;
60*c66ec88fSEmmanuel Vadot			opp-microvolt = <1000000>;
61*c66ec88fSEmmanuel Vadot		};
62*c66ec88fSEmmanuel Vadot	};
63*c66ec88fSEmmanuel Vadot
64*c66ec88fSEmmanuel Vadot	cpus {
65*c66ec88fSEmmanuel Vadot		#address-cells = <1>;
66*c66ec88fSEmmanuel Vadot		#size-cells = <0>;
67*c66ec88fSEmmanuel Vadot
68*c66ec88fSEmmanuel Vadot		cpu-map {
69*c66ec88fSEmmanuel Vadot			cluster0 {
70*c66ec88fSEmmanuel Vadot				core0 {
71*c66ec88fSEmmanuel Vadot					cpu = <&cpu0>;
72*c66ec88fSEmmanuel Vadot				};
73*c66ec88fSEmmanuel Vadot				core1 {
74*c66ec88fSEmmanuel Vadot					cpu = <&cpu1>;
75*c66ec88fSEmmanuel Vadot				};
76*c66ec88fSEmmanuel Vadot			};
77*c66ec88fSEmmanuel Vadot
78*c66ec88fSEmmanuel Vadot			cluster1 {
79*c66ec88fSEmmanuel Vadot				core0 {
80*c66ec88fSEmmanuel Vadot					cpu = <&cpu2>;
81*c66ec88fSEmmanuel Vadot				};
82*c66ec88fSEmmanuel Vadot			};
83*c66ec88fSEmmanuel Vadot		};
84*c66ec88fSEmmanuel Vadot
85*c66ec88fSEmmanuel Vadot		cpu0: cpu@0 {
86*c66ec88fSEmmanuel Vadot			device_type = "cpu";
87*c66ec88fSEmmanuel Vadot			compatible = "arm,cortex-a35";
88*c66ec88fSEmmanuel Vadot			reg = <0x000>;
89*c66ec88fSEmmanuel Vadot			clocks = <&mcucfg CLK_MCU_MP0_SEL>,
90*c66ec88fSEmmanuel Vadot				<&topckgen CLK_TOP_F_MP0_PLL1>;
91*c66ec88fSEmmanuel Vadot			clock-names = "cpu", "intermediate";
92*c66ec88fSEmmanuel Vadot			proc-supply = <&cpus_fixed_vproc0>;
93*c66ec88fSEmmanuel Vadot			operating-points-v2 = <&cluster0_opp>;
94*c66ec88fSEmmanuel Vadot			cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
95*c66ec88fSEmmanuel Vadot		};
96*c66ec88fSEmmanuel Vadot
97*c66ec88fSEmmanuel Vadot		cpu1: cpu@1 {
98*c66ec88fSEmmanuel Vadot			device_type = "cpu";
99*c66ec88fSEmmanuel Vadot			compatible = "arm,cortex-a35";
100*c66ec88fSEmmanuel Vadot			reg = <0x001>;
101*c66ec88fSEmmanuel Vadot			enable-method = "psci";
102*c66ec88fSEmmanuel Vadot			clocks = <&mcucfg CLK_MCU_MP0_SEL>,
103*c66ec88fSEmmanuel Vadot				<&topckgen CLK_TOP_F_MP0_PLL1>;
104*c66ec88fSEmmanuel Vadot			clock-names = "cpu", "intermediate";
105*c66ec88fSEmmanuel Vadot			proc-supply = <&cpus_fixed_vproc0>;
106*c66ec88fSEmmanuel Vadot			operating-points-v2 = <&cluster0_opp>;
107*c66ec88fSEmmanuel Vadot			cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
108*c66ec88fSEmmanuel Vadot		};
109*c66ec88fSEmmanuel Vadot
110*c66ec88fSEmmanuel Vadot		cpu2: cpu@200 {
111*c66ec88fSEmmanuel Vadot			device_type = "cpu";
112*c66ec88fSEmmanuel Vadot			compatible = "arm,cortex-a72";
113*c66ec88fSEmmanuel Vadot			reg = <0x200>;
114*c66ec88fSEmmanuel Vadot			enable-method = "psci";
115*c66ec88fSEmmanuel Vadot			clocks = <&mcucfg CLK_MCU_MP2_SEL>,
116*c66ec88fSEmmanuel Vadot				<&topckgen CLK_TOP_F_BIG_PLL1>;
117*c66ec88fSEmmanuel Vadot			clock-names = "cpu", "intermediate";
118*c66ec88fSEmmanuel Vadot			proc-supply = <&cpus_fixed_vproc1>;
119*c66ec88fSEmmanuel Vadot			operating-points-v2 = <&cluster1_opp>;
120*c66ec88fSEmmanuel Vadot			cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
121*c66ec88fSEmmanuel Vadot		};
122*c66ec88fSEmmanuel Vadot
123*c66ec88fSEmmanuel Vadot		idle-states {
124*c66ec88fSEmmanuel Vadot			entry-method = "psci";
125*c66ec88fSEmmanuel Vadot
126*c66ec88fSEmmanuel Vadot			CPU_SLEEP_0: cpu-sleep-0 {
127*c66ec88fSEmmanuel Vadot				compatible = "arm,idle-state";
128*c66ec88fSEmmanuel Vadot				local-timer-stop;
129*c66ec88fSEmmanuel Vadot				entry-latency-us = <100>;
130*c66ec88fSEmmanuel Vadot				exit-latency-us = <80>;
131*c66ec88fSEmmanuel Vadot				min-residency-us = <2000>;
132*c66ec88fSEmmanuel Vadot				arm,psci-suspend-param = <0x0010000>;
133*c66ec88fSEmmanuel Vadot			};
134*c66ec88fSEmmanuel Vadot
135*c66ec88fSEmmanuel Vadot			CLUSTER_SLEEP_0: cluster-sleep-0 {
136*c66ec88fSEmmanuel Vadot				compatible = "arm,idle-state";
137*c66ec88fSEmmanuel Vadot				local-timer-stop;
138*c66ec88fSEmmanuel Vadot				entry-latency-us = <350>;
139*c66ec88fSEmmanuel Vadot				exit-latency-us = <80>;
140*c66ec88fSEmmanuel Vadot				min-residency-us = <3000>;
141*c66ec88fSEmmanuel Vadot				arm,psci-suspend-param = <0x1010000>;
142*c66ec88fSEmmanuel Vadot			};
143*c66ec88fSEmmanuel Vadot		};
144*c66ec88fSEmmanuel Vadot	};
145*c66ec88fSEmmanuel Vadot
146*c66ec88fSEmmanuel Vadot	psci {
147*c66ec88fSEmmanuel Vadot		compatible = "arm,psci-0.2";
148*c66ec88fSEmmanuel Vadot		method = "smc";
149*c66ec88fSEmmanuel Vadot	};
150*c66ec88fSEmmanuel Vadot
151*c66ec88fSEmmanuel Vadot	baud_clk: dummy26m {
152*c66ec88fSEmmanuel Vadot		compatible = "fixed-clock";
153*c66ec88fSEmmanuel Vadot		clock-frequency = <26000000>;
154*c66ec88fSEmmanuel Vadot		#clock-cells = <0>;
155*c66ec88fSEmmanuel Vadot	};
156*c66ec88fSEmmanuel Vadot
157*c66ec88fSEmmanuel Vadot	sys_clk: dummyclk {
158*c66ec88fSEmmanuel Vadot		compatible = "fixed-clock";
159*c66ec88fSEmmanuel Vadot		clock-frequency = <26000000>;
160*c66ec88fSEmmanuel Vadot		#clock-cells = <0>;
161*c66ec88fSEmmanuel Vadot	};
162*c66ec88fSEmmanuel Vadot
163*c66ec88fSEmmanuel Vadot	clk26m: oscillator@0 {
164*c66ec88fSEmmanuel Vadot		compatible = "fixed-clock";
165*c66ec88fSEmmanuel Vadot		#clock-cells = <0>;
166*c66ec88fSEmmanuel Vadot		clock-frequency = <26000000>;
167*c66ec88fSEmmanuel Vadot		clock-output-names = "clk26m";
168*c66ec88fSEmmanuel Vadot	};
169*c66ec88fSEmmanuel Vadot
170*c66ec88fSEmmanuel Vadot	clk32k: oscillator@1 {
171*c66ec88fSEmmanuel Vadot		compatible = "fixed-clock";
172*c66ec88fSEmmanuel Vadot		#clock-cells = <0>;
173*c66ec88fSEmmanuel Vadot		clock-frequency = <32768>;
174*c66ec88fSEmmanuel Vadot		clock-output-names = "clk32k";
175*c66ec88fSEmmanuel Vadot	};
176*c66ec88fSEmmanuel Vadot
177*c66ec88fSEmmanuel Vadot	clkfpc: oscillator@2 {
178*c66ec88fSEmmanuel Vadot		compatible = "fixed-clock";
179*c66ec88fSEmmanuel Vadot		#clock-cells = <0>;
180*c66ec88fSEmmanuel Vadot		clock-frequency = <50000000>;
181*c66ec88fSEmmanuel Vadot		clock-output-names = "clkfpc";
182*c66ec88fSEmmanuel Vadot	};
183*c66ec88fSEmmanuel Vadot
184*c66ec88fSEmmanuel Vadot	clkaud_ext_i_0: oscillator@3 {
185*c66ec88fSEmmanuel Vadot		compatible = "fixed-clock";
186*c66ec88fSEmmanuel Vadot		#clock-cells = <0>;
187*c66ec88fSEmmanuel Vadot		clock-frequency = <6500000>;
188*c66ec88fSEmmanuel Vadot		clock-output-names = "clkaud_ext_i_0";
189*c66ec88fSEmmanuel Vadot	};
190*c66ec88fSEmmanuel Vadot
191*c66ec88fSEmmanuel Vadot	clkaud_ext_i_1: oscillator@4 {
192*c66ec88fSEmmanuel Vadot		compatible = "fixed-clock";
193*c66ec88fSEmmanuel Vadot		#clock-cells = <0>;
194*c66ec88fSEmmanuel Vadot		clock-frequency = <196608000>;
195*c66ec88fSEmmanuel Vadot		clock-output-names = "clkaud_ext_i_1";
196*c66ec88fSEmmanuel Vadot	};
197*c66ec88fSEmmanuel Vadot
198*c66ec88fSEmmanuel Vadot	clkaud_ext_i_2: oscillator@5 {
199*c66ec88fSEmmanuel Vadot		compatible = "fixed-clock";
200*c66ec88fSEmmanuel Vadot		#clock-cells = <0>;
201*c66ec88fSEmmanuel Vadot		clock-frequency = <180633600>;
202*c66ec88fSEmmanuel Vadot		clock-output-names = "clkaud_ext_i_2";
203*c66ec88fSEmmanuel Vadot	};
204*c66ec88fSEmmanuel Vadot
205*c66ec88fSEmmanuel Vadot	clki2si0_mck_i: oscillator@6 {
206*c66ec88fSEmmanuel Vadot		compatible = "fixed-clock";
207*c66ec88fSEmmanuel Vadot		#clock-cells = <0>;
208*c66ec88fSEmmanuel Vadot		clock-frequency = <30000000>;
209*c66ec88fSEmmanuel Vadot		clock-output-names = "clki2si0_mck_i";
210*c66ec88fSEmmanuel Vadot	};
211*c66ec88fSEmmanuel Vadot
212*c66ec88fSEmmanuel Vadot	clki2si1_mck_i: oscillator@7 {
213*c66ec88fSEmmanuel Vadot		compatible = "fixed-clock";
214*c66ec88fSEmmanuel Vadot		#clock-cells = <0>;
215*c66ec88fSEmmanuel Vadot		clock-frequency = <30000000>;
216*c66ec88fSEmmanuel Vadot		clock-output-names = "clki2si1_mck_i";
217*c66ec88fSEmmanuel Vadot	};
218*c66ec88fSEmmanuel Vadot
219*c66ec88fSEmmanuel Vadot	clki2si2_mck_i: oscillator@8 {
220*c66ec88fSEmmanuel Vadot		compatible = "fixed-clock";
221*c66ec88fSEmmanuel Vadot		#clock-cells = <0>;
222*c66ec88fSEmmanuel Vadot		clock-frequency = <30000000>;
223*c66ec88fSEmmanuel Vadot		clock-output-names = "clki2si2_mck_i";
224*c66ec88fSEmmanuel Vadot	};
225*c66ec88fSEmmanuel Vadot
226*c66ec88fSEmmanuel Vadot	clktdmin_mclk_i: oscillator@9 {
227*c66ec88fSEmmanuel Vadot		compatible = "fixed-clock";
228*c66ec88fSEmmanuel Vadot		#clock-cells = <0>;
229*c66ec88fSEmmanuel Vadot		clock-frequency = <30000000>;
230*c66ec88fSEmmanuel Vadot		clock-output-names = "clktdmin_mclk_i";
231*c66ec88fSEmmanuel Vadot	};
232*c66ec88fSEmmanuel Vadot
233*c66ec88fSEmmanuel Vadot	timer {
234*c66ec88fSEmmanuel Vadot		compatible = "arm,armv8-timer";
235*c66ec88fSEmmanuel Vadot		interrupt-parent = <&gic>;
236*c66ec88fSEmmanuel Vadot		interrupts = <GIC_PPI 13
237*c66ec88fSEmmanuel Vadot			      (GIC_CPU_MASK_RAW(0x13) | IRQ_TYPE_LEVEL_LOW)>,
238*c66ec88fSEmmanuel Vadot			     <GIC_PPI 14
239*c66ec88fSEmmanuel Vadot			      (GIC_CPU_MASK_RAW(0x13) | IRQ_TYPE_LEVEL_LOW)>,
240*c66ec88fSEmmanuel Vadot			     <GIC_PPI 11
241*c66ec88fSEmmanuel Vadot			      (GIC_CPU_MASK_RAW(0x13) | IRQ_TYPE_LEVEL_LOW)>,
242*c66ec88fSEmmanuel Vadot			     <GIC_PPI 10
243*c66ec88fSEmmanuel Vadot			      (GIC_CPU_MASK_RAW(0x13) | IRQ_TYPE_LEVEL_LOW)>;
244*c66ec88fSEmmanuel Vadot	};
245*c66ec88fSEmmanuel Vadot
246*c66ec88fSEmmanuel Vadot	topckgen: syscon@10000000 {
247*c66ec88fSEmmanuel Vadot		compatible = "mediatek,mt2712-topckgen", "syscon";
248*c66ec88fSEmmanuel Vadot		reg = <0 0x10000000 0 0x1000>;
249*c66ec88fSEmmanuel Vadot		#clock-cells = <1>;
250*c66ec88fSEmmanuel Vadot	};
251*c66ec88fSEmmanuel Vadot
252*c66ec88fSEmmanuel Vadot	infracfg: syscon@10001000 {
253*c66ec88fSEmmanuel Vadot		compatible = "mediatek,mt2712-infracfg", "syscon";
254*c66ec88fSEmmanuel Vadot		reg = <0 0x10001000 0 0x1000>;
255*c66ec88fSEmmanuel Vadot		#clock-cells = <1>;
256*c66ec88fSEmmanuel Vadot	};
257*c66ec88fSEmmanuel Vadot
258*c66ec88fSEmmanuel Vadot	pericfg: syscon@10003000 {
259*c66ec88fSEmmanuel Vadot		compatible = "mediatek,mt2712-pericfg", "syscon";
260*c66ec88fSEmmanuel Vadot		reg = <0 0x10003000 0 0x1000>;
261*c66ec88fSEmmanuel Vadot		#clock-cells = <1>;
262*c66ec88fSEmmanuel Vadot	};
263*c66ec88fSEmmanuel Vadot
264*c66ec88fSEmmanuel Vadot	syscfg_pctl_a: syscfg_pctl_a@10005000 {
265*c66ec88fSEmmanuel Vadot		compatible = "mediatek,mt2712-pctl-a-syscfg", "syscon";
266*c66ec88fSEmmanuel Vadot		reg = <0 0x10005000 0 0x1000>;
267*c66ec88fSEmmanuel Vadot	};
268*c66ec88fSEmmanuel Vadot
269*c66ec88fSEmmanuel Vadot	pio: pinctrl@10005000 {
270*c66ec88fSEmmanuel Vadot		compatible = "mediatek,mt2712-pinctrl";
271*c66ec88fSEmmanuel Vadot		reg = <0 0x1000b000 0 0x1000>;
272*c66ec88fSEmmanuel Vadot		mediatek,pctl-regmap = <&syscfg_pctl_a>;
273*c66ec88fSEmmanuel Vadot		pins-are-numbered;
274*c66ec88fSEmmanuel Vadot		gpio-controller;
275*c66ec88fSEmmanuel Vadot		#gpio-cells = <2>;
276*c66ec88fSEmmanuel Vadot		interrupt-controller;
277*c66ec88fSEmmanuel Vadot		#interrupt-cells = <2>;
278*c66ec88fSEmmanuel Vadot		interrupts = <GIC_SPI 153 IRQ_TYPE_LEVEL_HIGH>;
279*c66ec88fSEmmanuel Vadot	};
280*c66ec88fSEmmanuel Vadot
281*c66ec88fSEmmanuel Vadot	scpsys: power-controller@10006000 {
282*c66ec88fSEmmanuel Vadot		compatible = "mediatek,mt2712-scpsys", "syscon";
283*c66ec88fSEmmanuel Vadot		#power-domain-cells = <1>;
284*c66ec88fSEmmanuel Vadot		reg = <0 0x10006000 0 0x1000>;
285*c66ec88fSEmmanuel Vadot		clocks = <&topckgen CLK_TOP_MM_SEL>,
286*c66ec88fSEmmanuel Vadot			 <&topckgen CLK_TOP_MFG_SEL>,
287*c66ec88fSEmmanuel Vadot			 <&topckgen CLK_TOP_VENC_SEL>,
288*c66ec88fSEmmanuel Vadot			 <&topckgen CLK_TOP_JPGDEC_SEL>,
289*c66ec88fSEmmanuel Vadot			 <&topckgen CLK_TOP_A1SYS_HP_SEL>,
290*c66ec88fSEmmanuel Vadot			 <&topckgen CLK_TOP_VDEC_SEL>;
291*c66ec88fSEmmanuel Vadot		clock-names = "mm", "mfg", "venc",
292*c66ec88fSEmmanuel Vadot			"jpgdec", "audio", "vdec";
293*c66ec88fSEmmanuel Vadot		infracfg = <&infracfg>;
294*c66ec88fSEmmanuel Vadot	};
295*c66ec88fSEmmanuel Vadot
296*c66ec88fSEmmanuel Vadot	uart5: serial@1000f000 {
297*c66ec88fSEmmanuel Vadot		compatible = "mediatek,mt2712-uart",
298*c66ec88fSEmmanuel Vadot			     "mediatek,mt6577-uart";
299*c66ec88fSEmmanuel Vadot		reg = <0 0x1000f000 0 0x400>;
300*c66ec88fSEmmanuel Vadot		interrupts = <GIC_SPI 127 IRQ_TYPE_LEVEL_LOW>;
301*c66ec88fSEmmanuel Vadot		clocks = <&baud_clk>, <&sys_clk>;
302*c66ec88fSEmmanuel Vadot		clock-names = "baud", "bus";
303*c66ec88fSEmmanuel Vadot		dmas = <&apdma 10
304*c66ec88fSEmmanuel Vadot			&apdma 11>;
305*c66ec88fSEmmanuel Vadot		dma-names = "tx", "rx";
306*c66ec88fSEmmanuel Vadot		status = "disabled";
307*c66ec88fSEmmanuel Vadot	};
308*c66ec88fSEmmanuel Vadot
309*c66ec88fSEmmanuel Vadot	rtc: rtc@10011000 {
310*c66ec88fSEmmanuel Vadot		compatible = "mediatek,mt2712-rtc";
311*c66ec88fSEmmanuel Vadot		reg = <0 0x10011000 0 0x1000>;
312*c66ec88fSEmmanuel Vadot		interrupts = <GIC_SPI 239 IRQ_TYPE_LEVEL_LOW>;
313*c66ec88fSEmmanuel Vadot	};
314*c66ec88fSEmmanuel Vadot
315*c66ec88fSEmmanuel Vadot	spis1: spi@10013000 {
316*c66ec88fSEmmanuel Vadot		compatible = "mediatek,mt2712-spi-slave";
317*c66ec88fSEmmanuel Vadot		reg = <0 0x10013000 0 0x100>;
318*c66ec88fSEmmanuel Vadot		interrupts = <GIC_SPI 283 IRQ_TYPE_LEVEL_LOW>;
319*c66ec88fSEmmanuel Vadot		clocks = <&infracfg CLK_INFRA_AO_SPI1>;
320*c66ec88fSEmmanuel Vadot		clock-names = "spi";
321*c66ec88fSEmmanuel Vadot		assigned-clocks = <&topckgen CLK_TOP_SPISLV_SEL>;
322*c66ec88fSEmmanuel Vadot		assigned-clock-parents = <&topckgen CLK_TOP_UNIVPLL1_D2>;
323*c66ec88fSEmmanuel Vadot		status = "disabled";
324*c66ec88fSEmmanuel Vadot	};
325*c66ec88fSEmmanuel Vadot
326*c66ec88fSEmmanuel Vadot	iommu0: iommu@10205000 {
327*c66ec88fSEmmanuel Vadot		compatible = "mediatek,mt2712-m4u";
328*c66ec88fSEmmanuel Vadot		reg = <0 0x10205000 0 0x1000>;
329*c66ec88fSEmmanuel Vadot		interrupts = <GIC_SPI 147 IRQ_TYPE_LEVEL_LOW>;
330*c66ec88fSEmmanuel Vadot		clocks = <&infracfg CLK_INFRA_M4U>;
331*c66ec88fSEmmanuel Vadot		clock-names = "bclk";
332*c66ec88fSEmmanuel Vadot		mediatek,larbs = <&larb0 &larb1 &larb2
333*c66ec88fSEmmanuel Vadot				  &larb3 &larb6>;
334*c66ec88fSEmmanuel Vadot		#iommu-cells = <1>;
335*c66ec88fSEmmanuel Vadot	};
336*c66ec88fSEmmanuel Vadot
337*c66ec88fSEmmanuel Vadot	apmixedsys: syscon@10209000 {
338*c66ec88fSEmmanuel Vadot		compatible = "mediatek,mt2712-apmixedsys", "syscon";
339*c66ec88fSEmmanuel Vadot		reg = <0 0x10209000 0 0x1000>;
340*c66ec88fSEmmanuel Vadot		#clock-cells = <1>;
341*c66ec88fSEmmanuel Vadot	};
342*c66ec88fSEmmanuel Vadot
343*c66ec88fSEmmanuel Vadot	iommu1: iommu@1020a000 {
344*c66ec88fSEmmanuel Vadot		compatible = "mediatek,mt2712-m4u";
345*c66ec88fSEmmanuel Vadot		reg = <0 0x1020a000 0 0x1000>;
346*c66ec88fSEmmanuel Vadot		interrupts = <GIC_SPI 145 IRQ_TYPE_LEVEL_LOW>;
347*c66ec88fSEmmanuel Vadot		clocks = <&infracfg CLK_INFRA_M4U>;
348*c66ec88fSEmmanuel Vadot		clock-names = "bclk";
349*c66ec88fSEmmanuel Vadot		mediatek,larbs = <&larb4 &larb5 &larb7>;
350*c66ec88fSEmmanuel Vadot		#iommu-cells = <1>;
351*c66ec88fSEmmanuel Vadot	};
352*c66ec88fSEmmanuel Vadot
353*c66ec88fSEmmanuel Vadot	mcucfg: syscon@10220000 {
354*c66ec88fSEmmanuel Vadot		compatible = "mediatek,mt2712-mcucfg", "syscon";
355*c66ec88fSEmmanuel Vadot		reg = <0 0x10220000 0 0x1000>;
356*c66ec88fSEmmanuel Vadot		#clock-cells = <1>;
357*c66ec88fSEmmanuel Vadot	};
358*c66ec88fSEmmanuel Vadot
359*c66ec88fSEmmanuel Vadot	sysirq: interrupt-controller@10220a80 {
360*c66ec88fSEmmanuel Vadot		compatible = "mediatek,mt2712-sysirq",
361*c66ec88fSEmmanuel Vadot			     "mediatek,mt6577-sysirq";
362*c66ec88fSEmmanuel Vadot		interrupt-controller;
363*c66ec88fSEmmanuel Vadot		#interrupt-cells = <3>;
364*c66ec88fSEmmanuel Vadot		interrupt-parent = <&gic>;
365*c66ec88fSEmmanuel Vadot		reg = <0 0x10220a80 0 0x40>;
366*c66ec88fSEmmanuel Vadot	};
367*c66ec88fSEmmanuel Vadot
368*c66ec88fSEmmanuel Vadot	gic: interrupt-controller@10510000 {
369*c66ec88fSEmmanuel Vadot		compatible = "arm,gic-400";
370*c66ec88fSEmmanuel Vadot		#interrupt-cells = <3>;
371*c66ec88fSEmmanuel Vadot		interrupt-parent = <&gic>;
372*c66ec88fSEmmanuel Vadot		interrupt-controller;
373*c66ec88fSEmmanuel Vadot		reg = <0 0x10510000 0 0x10000>,
374*c66ec88fSEmmanuel Vadot		      <0 0x10520000 0 0x20000>,
375*c66ec88fSEmmanuel Vadot		      <0 0x10540000 0 0x20000>,
376*c66ec88fSEmmanuel Vadot		      <0 0x10560000 0 0x20000>;
377*c66ec88fSEmmanuel Vadot		interrupts = <GIC_PPI 9
378*c66ec88fSEmmanuel Vadot			 (GIC_CPU_MASK_RAW(0x13) | IRQ_TYPE_LEVEL_HIGH)>;
379*c66ec88fSEmmanuel Vadot	};
380*c66ec88fSEmmanuel Vadot
381*c66ec88fSEmmanuel Vadot	apdma: dma-controller@11000400 {
382*c66ec88fSEmmanuel Vadot		compatible = "mediatek,mt2712-uart-dma",
383*c66ec88fSEmmanuel Vadot			     "mediatek,mt6577-uart-dma";
384*c66ec88fSEmmanuel Vadot		reg = <0 0x11000400 0 0x80>,
385*c66ec88fSEmmanuel Vadot		      <0 0x11000480 0 0x80>,
386*c66ec88fSEmmanuel Vadot		      <0 0x11000500 0 0x80>,
387*c66ec88fSEmmanuel Vadot		      <0 0x11000580 0 0x80>,
388*c66ec88fSEmmanuel Vadot		      <0 0x11000600 0 0x80>,
389*c66ec88fSEmmanuel Vadot		      <0 0x11000680 0 0x80>,
390*c66ec88fSEmmanuel Vadot		      <0 0x11000700 0 0x80>,
391*c66ec88fSEmmanuel Vadot		      <0 0x11000780 0 0x80>,
392*c66ec88fSEmmanuel Vadot		      <0 0x11000800 0 0x80>,
393*c66ec88fSEmmanuel Vadot		      <0 0x11000880 0 0x80>,
394*c66ec88fSEmmanuel Vadot		      <0 0x11000900 0 0x80>,
395*c66ec88fSEmmanuel Vadot		      <0 0x11000980 0 0x80>;
396*c66ec88fSEmmanuel Vadot		interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_LOW>,
397*c66ec88fSEmmanuel Vadot			     <GIC_SPI 104 IRQ_TYPE_LEVEL_LOW>,
398*c66ec88fSEmmanuel Vadot			     <GIC_SPI 105 IRQ_TYPE_LEVEL_LOW>,
399*c66ec88fSEmmanuel Vadot			     <GIC_SPI 106 IRQ_TYPE_LEVEL_LOW>,
400*c66ec88fSEmmanuel Vadot			     <GIC_SPI 107 IRQ_TYPE_LEVEL_LOW>,
401*c66ec88fSEmmanuel Vadot			     <GIC_SPI 108 IRQ_TYPE_LEVEL_LOW>,
402*c66ec88fSEmmanuel Vadot			     <GIC_SPI 109 IRQ_TYPE_LEVEL_LOW>,
403*c66ec88fSEmmanuel Vadot			     <GIC_SPI 110 IRQ_TYPE_LEVEL_LOW>,
404*c66ec88fSEmmanuel Vadot			     <GIC_SPI 111 IRQ_TYPE_LEVEL_LOW>,
405*c66ec88fSEmmanuel Vadot			     <GIC_SPI 112 IRQ_TYPE_LEVEL_LOW>,
406*c66ec88fSEmmanuel Vadot			     <GIC_SPI 113 IRQ_TYPE_LEVEL_LOW>,
407*c66ec88fSEmmanuel Vadot			     <GIC_SPI 114 IRQ_TYPE_LEVEL_LOW>;
408*c66ec88fSEmmanuel Vadot		dma-requests = <12>;
409*c66ec88fSEmmanuel Vadot		clocks = <&pericfg CLK_PERI_AP_DMA>;
410*c66ec88fSEmmanuel Vadot		clock-names = "apdma";
411*c66ec88fSEmmanuel Vadot		#dma-cells = <1>;
412*c66ec88fSEmmanuel Vadot	};
413*c66ec88fSEmmanuel Vadot
414*c66ec88fSEmmanuel Vadot	auxadc: adc@11001000 {
415*c66ec88fSEmmanuel Vadot		compatible = "mediatek,mt2712-auxadc";
416*c66ec88fSEmmanuel Vadot		reg = <0 0x11001000 0 0x1000>;
417*c66ec88fSEmmanuel Vadot		clocks = <&pericfg CLK_PERI_AUXADC>;
418*c66ec88fSEmmanuel Vadot		clock-names = "main";
419*c66ec88fSEmmanuel Vadot		#io-channel-cells = <1>;
420*c66ec88fSEmmanuel Vadot		status = "disabled";
421*c66ec88fSEmmanuel Vadot	};
422*c66ec88fSEmmanuel Vadot
423*c66ec88fSEmmanuel Vadot	uart0: serial@11002000 {
424*c66ec88fSEmmanuel Vadot		compatible = "mediatek,mt2712-uart",
425*c66ec88fSEmmanuel Vadot			     "mediatek,mt6577-uart";
426*c66ec88fSEmmanuel Vadot		reg = <0 0x11002000 0 0x400>;
427*c66ec88fSEmmanuel Vadot		interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_LOW>;
428*c66ec88fSEmmanuel Vadot		clocks = <&baud_clk>, <&sys_clk>;
429*c66ec88fSEmmanuel Vadot		clock-names = "baud", "bus";
430*c66ec88fSEmmanuel Vadot		dmas = <&apdma 0
431*c66ec88fSEmmanuel Vadot			&apdma 1>;
432*c66ec88fSEmmanuel Vadot		dma-names = "tx", "rx";
433*c66ec88fSEmmanuel Vadot		status = "disabled";
434*c66ec88fSEmmanuel Vadot	};
435*c66ec88fSEmmanuel Vadot
436*c66ec88fSEmmanuel Vadot	uart1: serial@11003000 {
437*c66ec88fSEmmanuel Vadot		compatible = "mediatek,mt2712-uart",
438*c66ec88fSEmmanuel Vadot			     "mediatek,mt6577-uart";
439*c66ec88fSEmmanuel Vadot		reg = <0 0x11003000 0 0x400>;
440*c66ec88fSEmmanuel Vadot		interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_LOW>;
441*c66ec88fSEmmanuel Vadot		clocks = <&baud_clk>, <&sys_clk>;
442*c66ec88fSEmmanuel Vadot		clock-names = "baud", "bus";
443*c66ec88fSEmmanuel Vadot		dmas = <&apdma 2
444*c66ec88fSEmmanuel Vadot			&apdma 3>;
445*c66ec88fSEmmanuel Vadot		dma-names = "tx", "rx";
446*c66ec88fSEmmanuel Vadot		status = "disabled";
447*c66ec88fSEmmanuel Vadot	};
448*c66ec88fSEmmanuel Vadot
449*c66ec88fSEmmanuel Vadot	uart2: serial@11004000 {
450*c66ec88fSEmmanuel Vadot		compatible = "mediatek,mt2712-uart",
451*c66ec88fSEmmanuel Vadot			     "mediatek,mt6577-uart";
452*c66ec88fSEmmanuel Vadot		reg = <0 0x11004000 0 0x400>;
453*c66ec88fSEmmanuel Vadot		interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_LOW>;
454*c66ec88fSEmmanuel Vadot		clocks = <&baud_clk>, <&sys_clk>;
455*c66ec88fSEmmanuel Vadot		clock-names = "baud", "bus";
456*c66ec88fSEmmanuel Vadot		dmas = <&apdma 4
457*c66ec88fSEmmanuel Vadot			&apdma 5>;
458*c66ec88fSEmmanuel Vadot		dma-names = "tx", "rx";
459*c66ec88fSEmmanuel Vadot		status = "disabled";
460*c66ec88fSEmmanuel Vadot	};
461*c66ec88fSEmmanuel Vadot
462*c66ec88fSEmmanuel Vadot	uart3: serial@11005000 {
463*c66ec88fSEmmanuel Vadot		compatible = "mediatek,mt2712-uart",
464*c66ec88fSEmmanuel Vadot			     "mediatek,mt6577-uart";
465*c66ec88fSEmmanuel Vadot		reg = <0 0x11005000 0 0x400>;
466*c66ec88fSEmmanuel Vadot		interrupts = <GIC_SPI 94 IRQ_TYPE_LEVEL_LOW>;
467*c66ec88fSEmmanuel Vadot		clocks = <&baud_clk>, <&sys_clk>;
468*c66ec88fSEmmanuel Vadot		clock-names = "baud", "bus";
469*c66ec88fSEmmanuel Vadot		dmas = <&apdma 6
470*c66ec88fSEmmanuel Vadot			&apdma 7>;
471*c66ec88fSEmmanuel Vadot		dma-names = "tx", "rx";
472*c66ec88fSEmmanuel Vadot		status = "disabled";
473*c66ec88fSEmmanuel Vadot	};
474*c66ec88fSEmmanuel Vadot
475*c66ec88fSEmmanuel Vadot	pwm: pwm@11006000 {
476*c66ec88fSEmmanuel Vadot		compatible = "mediatek,mt2712-pwm";
477*c66ec88fSEmmanuel Vadot		reg = <0 0x11006000 0 0x1000>;
478*c66ec88fSEmmanuel Vadot		#pwm-cells = <2>;
479*c66ec88fSEmmanuel Vadot		interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_LOW>;
480*c66ec88fSEmmanuel Vadot		clocks = <&topckgen CLK_TOP_PWM_SEL>,
481*c66ec88fSEmmanuel Vadot			 <&pericfg CLK_PERI_PWM>,
482*c66ec88fSEmmanuel Vadot			 <&pericfg CLK_PERI_PWM0>,
483*c66ec88fSEmmanuel Vadot			 <&pericfg CLK_PERI_PWM1>,
484*c66ec88fSEmmanuel Vadot			 <&pericfg CLK_PERI_PWM2>,
485*c66ec88fSEmmanuel Vadot			 <&pericfg CLK_PERI_PWM3>,
486*c66ec88fSEmmanuel Vadot			 <&pericfg CLK_PERI_PWM4>,
487*c66ec88fSEmmanuel Vadot			 <&pericfg CLK_PERI_PWM5>,
488*c66ec88fSEmmanuel Vadot			 <&pericfg CLK_PERI_PWM6>,
489*c66ec88fSEmmanuel Vadot			 <&pericfg CLK_PERI_PWM7>;
490*c66ec88fSEmmanuel Vadot		clock-names = "top",
491*c66ec88fSEmmanuel Vadot			      "main",
492*c66ec88fSEmmanuel Vadot			      "pwm1",
493*c66ec88fSEmmanuel Vadot			      "pwm2",
494*c66ec88fSEmmanuel Vadot			      "pwm3",
495*c66ec88fSEmmanuel Vadot			      "pwm4",
496*c66ec88fSEmmanuel Vadot			      "pwm5",
497*c66ec88fSEmmanuel Vadot			      "pwm6",
498*c66ec88fSEmmanuel Vadot			      "pwm7",
499*c66ec88fSEmmanuel Vadot			      "pwm8";
500*c66ec88fSEmmanuel Vadot		status = "disabled";
501*c66ec88fSEmmanuel Vadot	};
502*c66ec88fSEmmanuel Vadot
503*c66ec88fSEmmanuel Vadot	i2c0: i2c@11007000 {
504*c66ec88fSEmmanuel Vadot		compatible = "mediatek,mt2712-i2c";
505*c66ec88fSEmmanuel Vadot		reg = <0 0x11007000 0 0x90>,
506*c66ec88fSEmmanuel Vadot		      <0 0x11000180 0 0x80>;
507*c66ec88fSEmmanuel Vadot		interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_LOW>;
508*c66ec88fSEmmanuel Vadot		clock-div = <4>;
509*c66ec88fSEmmanuel Vadot		clocks = <&pericfg CLK_PERI_I2C0>,
510*c66ec88fSEmmanuel Vadot			 <&pericfg CLK_PERI_AP_DMA>;
511*c66ec88fSEmmanuel Vadot		clock-names = "main",
512*c66ec88fSEmmanuel Vadot			      "dma";
513*c66ec88fSEmmanuel Vadot		#address-cells = <1>;
514*c66ec88fSEmmanuel Vadot		#size-cells = <0>;
515*c66ec88fSEmmanuel Vadot		status = "disabled";
516*c66ec88fSEmmanuel Vadot	};
517*c66ec88fSEmmanuel Vadot
518*c66ec88fSEmmanuel Vadot	i2c1: i2c@11008000 {
519*c66ec88fSEmmanuel Vadot		compatible = "mediatek,mt2712-i2c";
520*c66ec88fSEmmanuel Vadot		reg = <0 0x11008000 0 0x90>,
521*c66ec88fSEmmanuel Vadot		      <0 0x11000200 0 0x80>;
522*c66ec88fSEmmanuel Vadot		interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_LOW>;
523*c66ec88fSEmmanuel Vadot		clock-div = <4>;
524*c66ec88fSEmmanuel Vadot		clocks = <&pericfg CLK_PERI_I2C1>,
525*c66ec88fSEmmanuel Vadot			 <&pericfg CLK_PERI_AP_DMA>;
526*c66ec88fSEmmanuel Vadot		clock-names = "main",
527*c66ec88fSEmmanuel Vadot			      "dma";
528*c66ec88fSEmmanuel Vadot		#address-cells = <1>;
529*c66ec88fSEmmanuel Vadot		#size-cells = <0>;
530*c66ec88fSEmmanuel Vadot		status = "disabled";
531*c66ec88fSEmmanuel Vadot	};
532*c66ec88fSEmmanuel Vadot
533*c66ec88fSEmmanuel Vadot	i2c2: i2c@11009000 {
534*c66ec88fSEmmanuel Vadot		compatible = "mediatek,mt2712-i2c";
535*c66ec88fSEmmanuel Vadot		reg = <0 0x11009000 0 0x90>,
536*c66ec88fSEmmanuel Vadot		      <0 0x11000280 0 0x80>;
537*c66ec88fSEmmanuel Vadot		interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_LOW>;
538*c66ec88fSEmmanuel Vadot		clock-div = <4>;
539*c66ec88fSEmmanuel Vadot		clocks = <&pericfg CLK_PERI_I2C2>,
540*c66ec88fSEmmanuel Vadot			 <&pericfg CLK_PERI_AP_DMA>;
541*c66ec88fSEmmanuel Vadot		clock-names = "main",
542*c66ec88fSEmmanuel Vadot			      "dma";
543*c66ec88fSEmmanuel Vadot		#address-cells = <1>;
544*c66ec88fSEmmanuel Vadot		#size-cells = <0>;
545*c66ec88fSEmmanuel Vadot		status = "disabled";
546*c66ec88fSEmmanuel Vadot	};
547*c66ec88fSEmmanuel Vadot
548*c66ec88fSEmmanuel Vadot	spi0: spi@1100a000 {
549*c66ec88fSEmmanuel Vadot		compatible = "mediatek,mt2712-spi";
550*c66ec88fSEmmanuel Vadot		#address-cells = <1>;
551*c66ec88fSEmmanuel Vadot		#size-cells = <0>;
552*c66ec88fSEmmanuel Vadot		reg = <0 0x1100a000 0 0x100>;
553*c66ec88fSEmmanuel Vadot		interrupts = <GIC_SPI 118 IRQ_TYPE_LEVEL_LOW>;
554*c66ec88fSEmmanuel Vadot		clocks = <&topckgen CLK_TOP_UNIVPLL2_D4>,
555*c66ec88fSEmmanuel Vadot			 <&topckgen CLK_TOP_SPI_SEL>,
556*c66ec88fSEmmanuel Vadot			 <&pericfg CLK_PERI_SPI0>;
557*c66ec88fSEmmanuel Vadot		clock-names = "parent-clk", "sel-clk", "spi-clk";
558*c66ec88fSEmmanuel Vadot		status = "disabled";
559*c66ec88fSEmmanuel Vadot	};
560*c66ec88fSEmmanuel Vadot
561*c66ec88fSEmmanuel Vadot	nandc: nfi@1100e000 {
562*c66ec88fSEmmanuel Vadot		compatible = "mediatek,mt2712-nfc";
563*c66ec88fSEmmanuel Vadot		reg = <0 0x1100e000 0 0x1000>;
564*c66ec88fSEmmanuel Vadot		interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_LOW>;
565*c66ec88fSEmmanuel Vadot		clocks = <&topckgen CLK_TOP_NFI2X_EN>, <&pericfg CLK_PERI_NFI>;
566*c66ec88fSEmmanuel Vadot		clock-names = "nfi_clk", "pad_clk";
567*c66ec88fSEmmanuel Vadot		ecc-engine = <&bch>;
568*c66ec88fSEmmanuel Vadot		#address-cells = <1>;
569*c66ec88fSEmmanuel Vadot		#size-cells = <0>;
570*c66ec88fSEmmanuel Vadot		status = "disabled";
571*c66ec88fSEmmanuel Vadot	};
572*c66ec88fSEmmanuel Vadot
573*c66ec88fSEmmanuel Vadot	bch: ecc@1100f000 {
574*c66ec88fSEmmanuel Vadot		compatible = "mediatek,mt2712-ecc";
575*c66ec88fSEmmanuel Vadot		reg = <0 0x1100f000 0 0x1000>;
576*c66ec88fSEmmanuel Vadot		interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_LOW>;
577*c66ec88fSEmmanuel Vadot		clocks = <&topckgen CLK_TOP_NFI1X_CK_EN>;
578*c66ec88fSEmmanuel Vadot		clock-names = "nfiecc_clk";
579*c66ec88fSEmmanuel Vadot		status = "disabled";
580*c66ec88fSEmmanuel Vadot	};
581*c66ec88fSEmmanuel Vadot
582*c66ec88fSEmmanuel Vadot	i2c3: i2c@11010000 {
583*c66ec88fSEmmanuel Vadot		compatible = "mediatek,mt2712-i2c";
584*c66ec88fSEmmanuel Vadot		reg = <0 0x11010000 0 0x90>,
585*c66ec88fSEmmanuel Vadot		      <0 0x11000300 0 0x80>;
586*c66ec88fSEmmanuel Vadot		interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_LOW>;
587*c66ec88fSEmmanuel Vadot		clock-div = <4>;
588*c66ec88fSEmmanuel Vadot		clocks = <&pericfg CLK_PERI_I2C3>,
589*c66ec88fSEmmanuel Vadot			 <&pericfg CLK_PERI_AP_DMA>;
590*c66ec88fSEmmanuel Vadot		clock-names = "main",
591*c66ec88fSEmmanuel Vadot			      "dma";
592*c66ec88fSEmmanuel Vadot		#address-cells = <1>;
593*c66ec88fSEmmanuel Vadot		#size-cells = <0>;
594*c66ec88fSEmmanuel Vadot		status = "disabled";
595*c66ec88fSEmmanuel Vadot	};
596*c66ec88fSEmmanuel Vadot
597*c66ec88fSEmmanuel Vadot	i2c4: i2c@11011000 {
598*c66ec88fSEmmanuel Vadot		compatible = "mediatek,mt2712-i2c";
599*c66ec88fSEmmanuel Vadot		reg = <0 0x11011000 0 0x90>,
600*c66ec88fSEmmanuel Vadot		      <0 0x11000380 0 0x80>;
601*c66ec88fSEmmanuel Vadot		interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_LOW>;
602*c66ec88fSEmmanuel Vadot		clock-div = <4>;
603*c66ec88fSEmmanuel Vadot		clocks = <&pericfg CLK_PERI_I2C4>,
604*c66ec88fSEmmanuel Vadot			 <&pericfg CLK_PERI_AP_DMA>;
605*c66ec88fSEmmanuel Vadot		clock-names = "main",
606*c66ec88fSEmmanuel Vadot			      "dma";
607*c66ec88fSEmmanuel Vadot		#address-cells = <1>;
608*c66ec88fSEmmanuel Vadot		#size-cells = <0>;
609*c66ec88fSEmmanuel Vadot		status = "disabled";
610*c66ec88fSEmmanuel Vadot	};
611*c66ec88fSEmmanuel Vadot
612*c66ec88fSEmmanuel Vadot	i2c5: i2c@11013000 {
613*c66ec88fSEmmanuel Vadot		compatible = "mediatek,mt2712-i2c";
614*c66ec88fSEmmanuel Vadot		reg = <0 0x11013000 0 0x90>,
615*c66ec88fSEmmanuel Vadot		      <0 0x11000100 0 0x80>;
616*c66ec88fSEmmanuel Vadot		interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_LOW>;
617*c66ec88fSEmmanuel Vadot		clock-div = <4>;
618*c66ec88fSEmmanuel Vadot		clocks = <&pericfg CLK_PERI_I2C5>,
619*c66ec88fSEmmanuel Vadot			 <&pericfg CLK_PERI_AP_DMA>;
620*c66ec88fSEmmanuel Vadot		clock-names = "main",
621*c66ec88fSEmmanuel Vadot			      "dma";
622*c66ec88fSEmmanuel Vadot		#address-cells = <1>;
623*c66ec88fSEmmanuel Vadot		#size-cells = <0>;
624*c66ec88fSEmmanuel Vadot		status = "disabled";
625*c66ec88fSEmmanuel Vadot	};
626*c66ec88fSEmmanuel Vadot
627*c66ec88fSEmmanuel Vadot	spi2: spi@11015000 {
628*c66ec88fSEmmanuel Vadot		compatible = "mediatek,mt2712-spi";
629*c66ec88fSEmmanuel Vadot		#address-cells = <1>;
630*c66ec88fSEmmanuel Vadot		#size-cells = <0>;
631*c66ec88fSEmmanuel Vadot		reg = <0 0x11015000 0 0x100>;
632*c66ec88fSEmmanuel Vadot		interrupts = <GIC_SPI 284 IRQ_TYPE_LEVEL_LOW>;
633*c66ec88fSEmmanuel Vadot		clocks = <&topckgen CLK_TOP_UNIVPLL2_D4>,
634*c66ec88fSEmmanuel Vadot			 <&topckgen CLK_TOP_SPI_SEL>,
635*c66ec88fSEmmanuel Vadot			 <&pericfg CLK_PERI_SPI2>;
636*c66ec88fSEmmanuel Vadot		clock-names = "parent-clk", "sel-clk", "spi-clk";
637*c66ec88fSEmmanuel Vadot		status = "disabled";
638*c66ec88fSEmmanuel Vadot	};
639*c66ec88fSEmmanuel Vadot
640*c66ec88fSEmmanuel Vadot	spi3: spi@11016000 {
641*c66ec88fSEmmanuel Vadot		compatible = "mediatek,mt2712-spi";
642*c66ec88fSEmmanuel Vadot		#address-cells = <1>;
643*c66ec88fSEmmanuel Vadot		#size-cells = <0>;
644*c66ec88fSEmmanuel Vadot		reg = <0 0x11016000 0 0x100>;
645*c66ec88fSEmmanuel Vadot		interrupts = <GIC_SPI 285 IRQ_TYPE_LEVEL_LOW>;
646*c66ec88fSEmmanuel Vadot		clocks = <&topckgen CLK_TOP_UNIVPLL2_D4>,
647*c66ec88fSEmmanuel Vadot			 <&topckgen CLK_TOP_SPI_SEL>,
648*c66ec88fSEmmanuel Vadot			 <&pericfg CLK_PERI_SPI3>;
649*c66ec88fSEmmanuel Vadot		clock-names = "parent-clk", "sel-clk", "spi-clk";
650*c66ec88fSEmmanuel Vadot		status = "disabled";
651*c66ec88fSEmmanuel Vadot	};
652*c66ec88fSEmmanuel Vadot
653*c66ec88fSEmmanuel Vadot	spi4: spi@10012000 {
654*c66ec88fSEmmanuel Vadot		compatible = "mediatek,mt2712-spi";
655*c66ec88fSEmmanuel Vadot		#address-cells = <1>;
656*c66ec88fSEmmanuel Vadot		#size-cells = <0>;
657*c66ec88fSEmmanuel Vadot		reg = <0 0x10012000 0 0x100>;
658*c66ec88fSEmmanuel Vadot		interrupts = <GIC_SPI 286 IRQ_TYPE_LEVEL_LOW>;
659*c66ec88fSEmmanuel Vadot		clocks = <&topckgen CLK_TOP_UNIVPLL2_D4>,
660*c66ec88fSEmmanuel Vadot			 <&topckgen CLK_TOP_SPI_SEL>,
661*c66ec88fSEmmanuel Vadot			 <&infracfg CLK_INFRA_AO_SPI0>;
662*c66ec88fSEmmanuel Vadot		clock-names = "parent-clk", "sel-clk", "spi-clk";
663*c66ec88fSEmmanuel Vadot		status = "disabled";
664*c66ec88fSEmmanuel Vadot	};
665*c66ec88fSEmmanuel Vadot
666*c66ec88fSEmmanuel Vadot	spi5: spi@11018000 {
667*c66ec88fSEmmanuel Vadot		compatible = "mediatek,mt2712-spi";
668*c66ec88fSEmmanuel Vadot		#address-cells = <1>;
669*c66ec88fSEmmanuel Vadot		#size-cells = <0>;
670*c66ec88fSEmmanuel Vadot		reg = <0 0x11018000 0 0x100>;
671*c66ec88fSEmmanuel Vadot		interrupts = <GIC_SPI 287 IRQ_TYPE_LEVEL_LOW>;
672*c66ec88fSEmmanuel Vadot		clocks = <&topckgen CLK_TOP_UNIVPLL2_D4>,
673*c66ec88fSEmmanuel Vadot			 <&topckgen CLK_TOP_SPI_SEL>,
674*c66ec88fSEmmanuel Vadot			 <&pericfg CLK_PERI_SPI5>;
675*c66ec88fSEmmanuel Vadot		clock-names = "parent-clk", "sel-clk", "spi-clk";
676*c66ec88fSEmmanuel Vadot		status = "disabled";
677*c66ec88fSEmmanuel Vadot	};
678*c66ec88fSEmmanuel Vadot
679*c66ec88fSEmmanuel Vadot	uart4: serial@11019000 {
680*c66ec88fSEmmanuel Vadot		compatible = "mediatek,mt2712-uart",
681*c66ec88fSEmmanuel Vadot			     "mediatek,mt6577-uart";
682*c66ec88fSEmmanuel Vadot		reg = <0 0x11019000 0 0x400>;
683*c66ec88fSEmmanuel Vadot		interrupts = <GIC_SPI 126 IRQ_TYPE_LEVEL_LOW>;
684*c66ec88fSEmmanuel Vadot		clocks = <&baud_clk>, <&sys_clk>;
685*c66ec88fSEmmanuel Vadot		clock-names = "baud", "bus";
686*c66ec88fSEmmanuel Vadot		dmas = <&apdma 8
687*c66ec88fSEmmanuel Vadot			&apdma 9>;
688*c66ec88fSEmmanuel Vadot		dma-names = "tx", "rx";
689*c66ec88fSEmmanuel Vadot		status = "disabled";
690*c66ec88fSEmmanuel Vadot	};
691*c66ec88fSEmmanuel Vadot
692*c66ec88fSEmmanuel Vadot	stmmac_axi_setup: stmmac-axi-config {
693*c66ec88fSEmmanuel Vadot		snps,wr_osr_lmt = <0x7>;
694*c66ec88fSEmmanuel Vadot		snps,rd_osr_lmt = <0x7>;
695*c66ec88fSEmmanuel Vadot		snps,blen = <0 0 0 0 16 8 4>;
696*c66ec88fSEmmanuel Vadot	};
697*c66ec88fSEmmanuel Vadot
698*c66ec88fSEmmanuel Vadot	mtl_rx_setup: rx-queues-config {
699*c66ec88fSEmmanuel Vadot		snps,rx-queues-to-use = <1>;
700*c66ec88fSEmmanuel Vadot		snps,rx-sched-sp;
701*c66ec88fSEmmanuel Vadot		queue0 {
702*c66ec88fSEmmanuel Vadot			snps,dcb-algorithm;
703*c66ec88fSEmmanuel Vadot			snps,map-to-dma-channel = <0x0>;
704*c66ec88fSEmmanuel Vadot			snps,priority = <0x0>;
705*c66ec88fSEmmanuel Vadot		};
706*c66ec88fSEmmanuel Vadot	};
707*c66ec88fSEmmanuel Vadot
708*c66ec88fSEmmanuel Vadot	mtl_tx_setup: tx-queues-config {
709*c66ec88fSEmmanuel Vadot		snps,tx-queues-to-use = <3>;
710*c66ec88fSEmmanuel Vadot		snps,tx-sched-wrr;
711*c66ec88fSEmmanuel Vadot		queue0 {
712*c66ec88fSEmmanuel Vadot			snps,weight = <0x10>;
713*c66ec88fSEmmanuel Vadot			snps,dcb-algorithm;
714*c66ec88fSEmmanuel Vadot			snps,priority = <0x0>;
715*c66ec88fSEmmanuel Vadot		};
716*c66ec88fSEmmanuel Vadot		queue1 {
717*c66ec88fSEmmanuel Vadot			snps,weight = <0x11>;
718*c66ec88fSEmmanuel Vadot			snps,dcb-algorithm;
719*c66ec88fSEmmanuel Vadot			snps,priority = <0x1>;
720*c66ec88fSEmmanuel Vadot		};
721*c66ec88fSEmmanuel Vadot		queue2 {
722*c66ec88fSEmmanuel Vadot			snps,weight = <0x12>;
723*c66ec88fSEmmanuel Vadot			snps,dcb-algorithm;
724*c66ec88fSEmmanuel Vadot			snps,priority = <0x2>;
725*c66ec88fSEmmanuel Vadot		};
726*c66ec88fSEmmanuel Vadot	};
727*c66ec88fSEmmanuel Vadot
728*c66ec88fSEmmanuel Vadot	eth: ethernet@1101c000 {
729*c66ec88fSEmmanuel Vadot		compatible = "mediatek,mt2712-gmac";
730*c66ec88fSEmmanuel Vadot		reg = <0 0x1101c000 0 0x1300>;
731*c66ec88fSEmmanuel Vadot		interrupts = <GIC_SPI 237 IRQ_TYPE_LEVEL_LOW>;
732*c66ec88fSEmmanuel Vadot		interrupt-names = "macirq";
733*c66ec88fSEmmanuel Vadot		mac-address = [00 55 7b b5 7d f7];
734*c66ec88fSEmmanuel Vadot		clock-names = "axi",
735*c66ec88fSEmmanuel Vadot			      "apb",
736*c66ec88fSEmmanuel Vadot			      "mac_main",
737*c66ec88fSEmmanuel Vadot			      "ptp_ref";
738*c66ec88fSEmmanuel Vadot		clocks = <&pericfg CLK_PERI_GMAC>,
739*c66ec88fSEmmanuel Vadot			 <&pericfg CLK_PERI_GMAC_PCLK>,
740*c66ec88fSEmmanuel Vadot			 <&topckgen CLK_TOP_ETHER_125M_SEL>,
741*c66ec88fSEmmanuel Vadot			 <&topckgen CLK_TOP_ETHER_50M_SEL>;
742*c66ec88fSEmmanuel Vadot		assigned-clocks = <&topckgen CLK_TOP_ETHER_125M_SEL>,
743*c66ec88fSEmmanuel Vadot				  <&topckgen CLK_TOP_ETHER_50M_SEL>;
744*c66ec88fSEmmanuel Vadot		assigned-clock-parents = <&topckgen CLK_TOP_ETHERPLL_125M>,
745*c66ec88fSEmmanuel Vadot					 <&topckgen CLK_TOP_APLL1_D3>;
746*c66ec88fSEmmanuel Vadot		power-domains = <&scpsys MT2712_POWER_DOMAIN_AUDIO>;
747*c66ec88fSEmmanuel Vadot		mediatek,pericfg = <&pericfg>;
748*c66ec88fSEmmanuel Vadot		snps,axi-config = <&stmmac_axi_setup>;
749*c66ec88fSEmmanuel Vadot		snps,mtl-rx-config = <&mtl_rx_setup>;
750*c66ec88fSEmmanuel Vadot		snps,mtl-tx-config = <&mtl_tx_setup>;
751*c66ec88fSEmmanuel Vadot		snps,txpbl = <1>;
752*c66ec88fSEmmanuel Vadot		snps,rxpbl = <1>;
753*c66ec88fSEmmanuel Vadot		clk_csr = <0>;
754*c66ec88fSEmmanuel Vadot		status = "disabled";
755*c66ec88fSEmmanuel Vadot	};
756*c66ec88fSEmmanuel Vadot
757*c66ec88fSEmmanuel Vadot	mmc0: mmc@11230000 {
758*c66ec88fSEmmanuel Vadot		compatible = "mediatek,mt2712-mmc";
759*c66ec88fSEmmanuel Vadot		reg = <0 0x11230000 0 0x1000>;
760*c66ec88fSEmmanuel Vadot		interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_LOW>;
761*c66ec88fSEmmanuel Vadot		clocks = <&pericfg CLK_PERI_MSDC30_0>,
762*c66ec88fSEmmanuel Vadot			 <&pericfg CLK_PERI_MSDC50_0_HCLK_EN>,
763*c66ec88fSEmmanuel Vadot			 <&pericfg CLK_PERI_MSDC30_0_QTR_EN>,
764*c66ec88fSEmmanuel Vadot			 <&pericfg CLK_PERI_MSDC50_0_EN>;
765*c66ec88fSEmmanuel Vadot		clock-names = "source", "hclk", "bus_clk", "source_cg";
766*c66ec88fSEmmanuel Vadot		status = "disabled";
767*c66ec88fSEmmanuel Vadot	};
768*c66ec88fSEmmanuel Vadot
769*c66ec88fSEmmanuel Vadot	mmc1: mmc@11240000 {
770*c66ec88fSEmmanuel Vadot		compatible = "mediatek,mt2712-mmc";
771*c66ec88fSEmmanuel Vadot		reg = <0 0x11240000 0 0x1000>;
772*c66ec88fSEmmanuel Vadot		interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_LOW>;
773*c66ec88fSEmmanuel Vadot		clocks = <&pericfg CLK_PERI_MSDC30_1>,
774*c66ec88fSEmmanuel Vadot			 <&topckgen CLK_TOP_AXI_SEL>,
775*c66ec88fSEmmanuel Vadot			 <&pericfg CLK_PERI_MSDC30_1_EN>;
776*c66ec88fSEmmanuel Vadot		clock-names = "source", "hclk", "source_cg";
777*c66ec88fSEmmanuel Vadot		status = "disabled";
778*c66ec88fSEmmanuel Vadot	};
779*c66ec88fSEmmanuel Vadot
780*c66ec88fSEmmanuel Vadot	mmc2: mmc@11250000 {
781*c66ec88fSEmmanuel Vadot		compatible = "mediatek,mt2712-mmc";
782*c66ec88fSEmmanuel Vadot		reg = <0 0x11250000 0 0x1000>;
783*c66ec88fSEmmanuel Vadot		interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_LOW>;
784*c66ec88fSEmmanuel Vadot		clocks = <&pericfg CLK_PERI_MSDC30_2>,
785*c66ec88fSEmmanuel Vadot			 <&topckgen CLK_TOP_AXI_SEL>,
786*c66ec88fSEmmanuel Vadot			 <&pericfg CLK_PERI_MSDC30_2_EN>;
787*c66ec88fSEmmanuel Vadot		clock-names = "source", "hclk", "source_cg";
788*c66ec88fSEmmanuel Vadot		status = "disabled";
789*c66ec88fSEmmanuel Vadot	};
790*c66ec88fSEmmanuel Vadot
791*c66ec88fSEmmanuel Vadot	ssusb: usb@11271000 {
792*c66ec88fSEmmanuel Vadot		compatible = "mediatek,mt2712-mtu3", "mediatek,mtu3";
793*c66ec88fSEmmanuel Vadot		reg = <0 0x11271000 0 0x3000>,
794*c66ec88fSEmmanuel Vadot		      <0 0x11280700 0 0x0100>;
795*c66ec88fSEmmanuel Vadot		reg-names = "mac", "ippc";
796*c66ec88fSEmmanuel Vadot		interrupts = <GIC_SPI 122 IRQ_TYPE_LEVEL_LOW>;
797*c66ec88fSEmmanuel Vadot		phys = <&u2port0 PHY_TYPE_USB2>,
798*c66ec88fSEmmanuel Vadot		       <&u2port1 PHY_TYPE_USB2>;
799*c66ec88fSEmmanuel Vadot		power-domains = <&scpsys MT2712_POWER_DOMAIN_USB>;
800*c66ec88fSEmmanuel Vadot		clocks = <&topckgen CLK_TOP_USB30_SEL>;
801*c66ec88fSEmmanuel Vadot		clock-names = "sys_ck";
802*c66ec88fSEmmanuel Vadot		mediatek,syscon-wakeup = <&pericfg 0x510 2>;
803*c66ec88fSEmmanuel Vadot		#address-cells = <2>;
804*c66ec88fSEmmanuel Vadot		#size-cells = <2>;
805*c66ec88fSEmmanuel Vadot		ranges;
806*c66ec88fSEmmanuel Vadot		status = "disabled";
807*c66ec88fSEmmanuel Vadot
808*c66ec88fSEmmanuel Vadot		usb_host0: xhci@11270000 {
809*c66ec88fSEmmanuel Vadot			compatible = "mediatek,mt2712-xhci",
810*c66ec88fSEmmanuel Vadot				     "mediatek,mtk-xhci";
811*c66ec88fSEmmanuel Vadot			reg = <0 0x11270000 0 0x1000>;
812*c66ec88fSEmmanuel Vadot			reg-names = "mac";
813*c66ec88fSEmmanuel Vadot			interrupts = <GIC_SPI 123 IRQ_TYPE_LEVEL_LOW>;
814*c66ec88fSEmmanuel Vadot			power-domains = <&scpsys MT2712_POWER_DOMAIN_USB>;
815*c66ec88fSEmmanuel Vadot			clocks = <&topckgen CLK_TOP_USB30_SEL>, <&clk26m>;
816*c66ec88fSEmmanuel Vadot			clock-names = "sys_ck", "ref_ck";
817*c66ec88fSEmmanuel Vadot			status = "disabled";
818*c66ec88fSEmmanuel Vadot		};
819*c66ec88fSEmmanuel Vadot	};
820*c66ec88fSEmmanuel Vadot
821*c66ec88fSEmmanuel Vadot	u3phy0: usb-phy@11290000 {
822*c66ec88fSEmmanuel Vadot		compatible = "mediatek,mt2712-tphy",
823*c66ec88fSEmmanuel Vadot			     "mediatek,generic-tphy-v2";
824*c66ec88fSEmmanuel Vadot		#address-cells = <1>;
825*c66ec88fSEmmanuel Vadot		#size-cells = <1>;
826*c66ec88fSEmmanuel Vadot		ranges = <0 0 0x11290000 0x9000>;
827*c66ec88fSEmmanuel Vadot		status = "okay";
828*c66ec88fSEmmanuel Vadot
829*c66ec88fSEmmanuel Vadot		u2port0: usb-phy@0 {
830*c66ec88fSEmmanuel Vadot			reg = <0x0 0x700>;
831*c66ec88fSEmmanuel Vadot			clocks = <&clk26m>;
832*c66ec88fSEmmanuel Vadot			clock-names = "ref";
833*c66ec88fSEmmanuel Vadot			#phy-cells = <1>;
834*c66ec88fSEmmanuel Vadot			status = "okay";
835*c66ec88fSEmmanuel Vadot		};
836*c66ec88fSEmmanuel Vadot
837*c66ec88fSEmmanuel Vadot		u2port1: usb-phy@8000 {
838*c66ec88fSEmmanuel Vadot			reg = <0x8000 0x700>;
839*c66ec88fSEmmanuel Vadot			clocks = <&clk26m>;
840*c66ec88fSEmmanuel Vadot			clock-names = "ref";
841*c66ec88fSEmmanuel Vadot			#phy-cells = <1>;
842*c66ec88fSEmmanuel Vadot			status = "okay";
843*c66ec88fSEmmanuel Vadot		};
844*c66ec88fSEmmanuel Vadot
845*c66ec88fSEmmanuel Vadot		u3port0: usb-phy@8700 {
846*c66ec88fSEmmanuel Vadot			reg = <0x8700 0x900>;
847*c66ec88fSEmmanuel Vadot			clocks = <&clk26m>;
848*c66ec88fSEmmanuel Vadot			clock-names = "ref";
849*c66ec88fSEmmanuel Vadot			#phy-cells = <1>;
850*c66ec88fSEmmanuel Vadot			status = "okay";
851*c66ec88fSEmmanuel Vadot		};
852*c66ec88fSEmmanuel Vadot	};
853*c66ec88fSEmmanuel Vadot
854*c66ec88fSEmmanuel Vadot	ssusb1: usb@112c1000 {
855*c66ec88fSEmmanuel Vadot		compatible = "mediatek,mt2712-mtu3", "mediatek,mtu3";
856*c66ec88fSEmmanuel Vadot		reg = <0 0x112c1000 0 0x3000>,
857*c66ec88fSEmmanuel Vadot		      <0 0x112d0700 0 0x0100>;
858*c66ec88fSEmmanuel Vadot		reg-names = "mac", "ippc";
859*c66ec88fSEmmanuel Vadot		interrupts = <GIC_SPI 248 IRQ_TYPE_LEVEL_LOW>;
860*c66ec88fSEmmanuel Vadot		phys = <&u2port2 PHY_TYPE_USB2>,
861*c66ec88fSEmmanuel Vadot		       <&u2port3 PHY_TYPE_USB2>,
862*c66ec88fSEmmanuel Vadot		       <&u3port1 PHY_TYPE_USB3>;
863*c66ec88fSEmmanuel Vadot		power-domains = <&scpsys MT2712_POWER_DOMAIN_USB2>;
864*c66ec88fSEmmanuel Vadot		clocks = <&topckgen CLK_TOP_USB30_SEL>;
865*c66ec88fSEmmanuel Vadot		clock-names = "sys_ck";
866*c66ec88fSEmmanuel Vadot		mediatek,syscon-wakeup = <&pericfg 0x514 2>;
867*c66ec88fSEmmanuel Vadot		#address-cells = <2>;
868*c66ec88fSEmmanuel Vadot		#size-cells = <2>;
869*c66ec88fSEmmanuel Vadot		ranges;
870*c66ec88fSEmmanuel Vadot		status = "disabled";
871*c66ec88fSEmmanuel Vadot
872*c66ec88fSEmmanuel Vadot		usb_host1: xhci@112c0000 {
873*c66ec88fSEmmanuel Vadot			compatible = "mediatek,mt2712-xhci",
874*c66ec88fSEmmanuel Vadot				     "mediatek,mtk-xhci";
875*c66ec88fSEmmanuel Vadot			reg = <0 0x112c0000 0 0x1000>;
876*c66ec88fSEmmanuel Vadot			reg-names = "mac";
877*c66ec88fSEmmanuel Vadot			interrupts = <GIC_SPI 249 IRQ_TYPE_LEVEL_LOW>;
878*c66ec88fSEmmanuel Vadot			power-domains = <&scpsys MT2712_POWER_DOMAIN_USB2>;
879*c66ec88fSEmmanuel Vadot			clocks = <&topckgen CLK_TOP_USB30_SEL>, <&clk26m>;
880*c66ec88fSEmmanuel Vadot			clock-names = "sys_ck", "ref_ck";
881*c66ec88fSEmmanuel Vadot			status = "disabled";
882*c66ec88fSEmmanuel Vadot		};
883*c66ec88fSEmmanuel Vadot	};
884*c66ec88fSEmmanuel Vadot
885*c66ec88fSEmmanuel Vadot	u3phy1: usb-phy@112e0000 {
886*c66ec88fSEmmanuel Vadot		compatible = "mediatek,mt2712-tphy",
887*c66ec88fSEmmanuel Vadot			     "mediatek,generic-tphy-v2";
888*c66ec88fSEmmanuel Vadot		#address-cells = <1>;
889*c66ec88fSEmmanuel Vadot		#size-cells = <1>;
890*c66ec88fSEmmanuel Vadot		ranges = <0 0 0x112e0000 0x9000>;
891*c66ec88fSEmmanuel Vadot		status = "okay";
892*c66ec88fSEmmanuel Vadot
893*c66ec88fSEmmanuel Vadot		u2port2: usb-phy@0 {
894*c66ec88fSEmmanuel Vadot			reg = <0x0 0x700>;
895*c66ec88fSEmmanuel Vadot			clocks = <&clk26m>;
896*c66ec88fSEmmanuel Vadot			clock-names = "ref";
897*c66ec88fSEmmanuel Vadot			#phy-cells = <1>;
898*c66ec88fSEmmanuel Vadot			status = "okay";
899*c66ec88fSEmmanuel Vadot		};
900*c66ec88fSEmmanuel Vadot
901*c66ec88fSEmmanuel Vadot		u2port3: usb-phy@8000 {
902*c66ec88fSEmmanuel Vadot			reg = <0x8000 0x700>;
903*c66ec88fSEmmanuel Vadot			clocks = <&clk26m>;
904*c66ec88fSEmmanuel Vadot			clock-names = "ref";
905*c66ec88fSEmmanuel Vadot			#phy-cells = <1>;
906*c66ec88fSEmmanuel Vadot			status = "okay";
907*c66ec88fSEmmanuel Vadot		};
908*c66ec88fSEmmanuel Vadot
909*c66ec88fSEmmanuel Vadot		u3port1: usb-phy@8700 {
910*c66ec88fSEmmanuel Vadot			reg = <0x8700 0x900>;
911*c66ec88fSEmmanuel Vadot			clocks = <&clk26m>;
912*c66ec88fSEmmanuel Vadot			clock-names = "ref";
913*c66ec88fSEmmanuel Vadot			#phy-cells = <1>;
914*c66ec88fSEmmanuel Vadot			status = "okay";
915*c66ec88fSEmmanuel Vadot		};
916*c66ec88fSEmmanuel Vadot	};
917*c66ec88fSEmmanuel Vadot
918*c66ec88fSEmmanuel Vadot	pcie: pcie@11700000 {
919*c66ec88fSEmmanuel Vadot		compatible = "mediatek,mt2712-pcie";
920*c66ec88fSEmmanuel Vadot		device_type = "pci";
921*c66ec88fSEmmanuel Vadot		reg = <0 0x11700000 0 0x1000>,
922*c66ec88fSEmmanuel Vadot		      <0 0x112ff000 0 0x1000>;
923*c66ec88fSEmmanuel Vadot		reg-names = "port0", "port1";
924*c66ec88fSEmmanuel Vadot		#address-cells = <3>;
925*c66ec88fSEmmanuel Vadot		#size-cells = <2>;
926*c66ec88fSEmmanuel Vadot		interrupts = <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>,
927*c66ec88fSEmmanuel Vadot			     <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>;
928*c66ec88fSEmmanuel Vadot		clocks = <&topckgen CLK_TOP_PE2_MAC_P0_SEL>,
929*c66ec88fSEmmanuel Vadot			 <&topckgen CLK_TOP_PE2_MAC_P1_SEL>,
930*c66ec88fSEmmanuel Vadot			 <&pericfg CLK_PERI_PCIE0>,
931*c66ec88fSEmmanuel Vadot			 <&pericfg CLK_PERI_PCIE1>;
932*c66ec88fSEmmanuel Vadot		clock-names = "sys_ck0", "sys_ck1", "ahb_ck0", "ahb_ck1";
933*c66ec88fSEmmanuel Vadot		phys = <&u3port0 PHY_TYPE_PCIE>, <&u3port1 PHY_TYPE_PCIE>;
934*c66ec88fSEmmanuel Vadot		phy-names = "pcie-phy0", "pcie-phy1";
935*c66ec88fSEmmanuel Vadot		bus-range = <0x00 0xff>;
936*c66ec88fSEmmanuel Vadot		ranges = <0x82000000 0 0x20000000  0x0 0x20000000  0 0x10000000>;
937*c66ec88fSEmmanuel Vadot
938*c66ec88fSEmmanuel Vadot		pcie0: pcie@0,0 {
939*c66ec88fSEmmanuel Vadot			device_type = "pci";
940*c66ec88fSEmmanuel Vadot			status = "disabled";
941*c66ec88fSEmmanuel Vadot			reg = <0x0000 0 0 0 0>;
942*c66ec88fSEmmanuel Vadot			#address-cells = <3>;
943*c66ec88fSEmmanuel Vadot			#size-cells = <2>;
944*c66ec88fSEmmanuel Vadot			#interrupt-cells = <1>;
945*c66ec88fSEmmanuel Vadot			ranges;
946*c66ec88fSEmmanuel Vadot			interrupt-map-mask = <0 0 0 7>;
947*c66ec88fSEmmanuel Vadot			interrupt-map = <0 0 0 1 &pcie_intc0 0>,
948*c66ec88fSEmmanuel Vadot					<0 0 0 2 &pcie_intc0 1>,
949*c66ec88fSEmmanuel Vadot					<0 0 0 3 &pcie_intc0 2>,
950*c66ec88fSEmmanuel Vadot					<0 0 0 4 &pcie_intc0 3>;
951*c66ec88fSEmmanuel Vadot			pcie_intc0: interrupt-controller {
952*c66ec88fSEmmanuel Vadot				interrupt-controller;
953*c66ec88fSEmmanuel Vadot				#address-cells = <0>;
954*c66ec88fSEmmanuel Vadot				#interrupt-cells = <1>;
955*c66ec88fSEmmanuel Vadot			};
956*c66ec88fSEmmanuel Vadot		};
957*c66ec88fSEmmanuel Vadot
958*c66ec88fSEmmanuel Vadot		pcie1: pcie@1,0 {
959*c66ec88fSEmmanuel Vadot			device_type = "pci";
960*c66ec88fSEmmanuel Vadot			status = "disabled";
961*c66ec88fSEmmanuel Vadot			reg = <0x0800 0 0 0 0>;
962*c66ec88fSEmmanuel Vadot			#address-cells = <3>;
963*c66ec88fSEmmanuel Vadot			#size-cells = <2>;
964*c66ec88fSEmmanuel Vadot			#interrupt-cells = <1>;
965*c66ec88fSEmmanuel Vadot			ranges;
966*c66ec88fSEmmanuel Vadot			interrupt-map-mask = <0 0 0 7>;
967*c66ec88fSEmmanuel Vadot			interrupt-map = <0 0 0 1 &pcie_intc1 0>,
968*c66ec88fSEmmanuel Vadot					<0 0 0 2 &pcie_intc1 1>,
969*c66ec88fSEmmanuel Vadot					<0 0 0 3 &pcie_intc1 2>,
970*c66ec88fSEmmanuel Vadot					<0 0 0 4 &pcie_intc1 3>;
971*c66ec88fSEmmanuel Vadot			pcie_intc1: interrupt-controller {
972*c66ec88fSEmmanuel Vadot				interrupt-controller;
973*c66ec88fSEmmanuel Vadot				#address-cells = <0>;
974*c66ec88fSEmmanuel Vadot				#interrupt-cells = <1>;
975*c66ec88fSEmmanuel Vadot			};
976*c66ec88fSEmmanuel Vadot		};
977*c66ec88fSEmmanuel Vadot	};
978*c66ec88fSEmmanuel Vadot
979*c66ec88fSEmmanuel Vadot	mfgcfg: syscon@13000000 {
980*c66ec88fSEmmanuel Vadot		compatible = "mediatek,mt2712-mfgcfg", "syscon";
981*c66ec88fSEmmanuel Vadot		reg = <0 0x13000000 0 0x1000>;
982*c66ec88fSEmmanuel Vadot		#clock-cells = <1>;
983*c66ec88fSEmmanuel Vadot	};
984*c66ec88fSEmmanuel Vadot
985*c66ec88fSEmmanuel Vadot	mmsys: syscon@14000000 {
986*c66ec88fSEmmanuel Vadot		compatible = "mediatek,mt2712-mmsys", "syscon";
987*c66ec88fSEmmanuel Vadot		reg = <0 0x14000000 0 0x1000>;
988*c66ec88fSEmmanuel Vadot		#clock-cells = <1>;
989*c66ec88fSEmmanuel Vadot	};
990*c66ec88fSEmmanuel Vadot
991*c66ec88fSEmmanuel Vadot	larb0: larb@14021000 {
992*c66ec88fSEmmanuel Vadot		compatible = "mediatek,mt2712-smi-larb";
993*c66ec88fSEmmanuel Vadot		reg = <0 0x14021000 0 0x1000>;
994*c66ec88fSEmmanuel Vadot		mediatek,smi = <&smi_common0>;
995*c66ec88fSEmmanuel Vadot		mediatek,larb-id = <0>;
996*c66ec88fSEmmanuel Vadot		power-domains = <&scpsys MT2712_POWER_DOMAIN_MM>;
997*c66ec88fSEmmanuel Vadot		clocks = <&mmsys CLK_MM_SMI_LARB0>,
998*c66ec88fSEmmanuel Vadot			 <&mmsys CLK_MM_SMI_LARB0>;
999*c66ec88fSEmmanuel Vadot		clock-names = "apb", "smi";
1000*c66ec88fSEmmanuel Vadot	};
1001*c66ec88fSEmmanuel Vadot
1002*c66ec88fSEmmanuel Vadot	smi_common0: smi@14022000 {
1003*c66ec88fSEmmanuel Vadot		compatible = "mediatek,mt2712-smi-common";
1004*c66ec88fSEmmanuel Vadot		reg = <0 0x14022000 0 0x1000>;
1005*c66ec88fSEmmanuel Vadot		power-domains = <&scpsys MT2712_POWER_DOMAIN_MM>;
1006*c66ec88fSEmmanuel Vadot		clocks = <&mmsys CLK_MM_SMI_COMMON>,
1007*c66ec88fSEmmanuel Vadot			 <&mmsys CLK_MM_SMI_COMMON>;
1008*c66ec88fSEmmanuel Vadot		clock-names = "apb", "smi";
1009*c66ec88fSEmmanuel Vadot	};
1010*c66ec88fSEmmanuel Vadot
1011*c66ec88fSEmmanuel Vadot	larb4: larb@14027000 {
1012*c66ec88fSEmmanuel Vadot		compatible = "mediatek,mt2712-smi-larb";
1013*c66ec88fSEmmanuel Vadot		reg = <0 0x14027000 0 0x1000>;
1014*c66ec88fSEmmanuel Vadot		mediatek,smi = <&smi_common1>;
1015*c66ec88fSEmmanuel Vadot		mediatek,larb-id = <4>;
1016*c66ec88fSEmmanuel Vadot		power-domains = <&scpsys MT2712_POWER_DOMAIN_MM>;
1017*c66ec88fSEmmanuel Vadot		clocks = <&mmsys CLK_MM_SMI_LARB4>,
1018*c66ec88fSEmmanuel Vadot			 <&mmsys CLK_MM_SMI_LARB4>;
1019*c66ec88fSEmmanuel Vadot		clock-names = "apb", "smi";
1020*c66ec88fSEmmanuel Vadot	};
1021*c66ec88fSEmmanuel Vadot
1022*c66ec88fSEmmanuel Vadot	larb5: larb@14030000 {
1023*c66ec88fSEmmanuel Vadot		compatible = "mediatek,mt2712-smi-larb";
1024*c66ec88fSEmmanuel Vadot		reg = <0 0x14030000 0 0x1000>;
1025*c66ec88fSEmmanuel Vadot		mediatek,smi = <&smi_common1>;
1026*c66ec88fSEmmanuel Vadot		mediatek,larb-id = <5>;
1027*c66ec88fSEmmanuel Vadot		power-domains = <&scpsys MT2712_POWER_DOMAIN_MM>;
1028*c66ec88fSEmmanuel Vadot		clocks = <&mmsys CLK_MM_SMI_LARB5>,
1029*c66ec88fSEmmanuel Vadot			 <&mmsys CLK_MM_SMI_LARB5>;
1030*c66ec88fSEmmanuel Vadot		clock-names = "apb", "smi";
1031*c66ec88fSEmmanuel Vadot	};
1032*c66ec88fSEmmanuel Vadot
1033*c66ec88fSEmmanuel Vadot	smi_common1: smi@14031000 {
1034*c66ec88fSEmmanuel Vadot		compatible = "mediatek,mt2712-smi-common";
1035*c66ec88fSEmmanuel Vadot		reg = <0 0x14031000 0 0x1000>;
1036*c66ec88fSEmmanuel Vadot		power-domains = <&scpsys MT2712_POWER_DOMAIN_MM>;
1037*c66ec88fSEmmanuel Vadot		clocks = <&mmsys CLK_MM_SMI_COMMON1>,
1038*c66ec88fSEmmanuel Vadot			 <&mmsys CLK_MM_SMI_COMMON1>;
1039*c66ec88fSEmmanuel Vadot		clock-names = "apb", "smi";
1040*c66ec88fSEmmanuel Vadot	};
1041*c66ec88fSEmmanuel Vadot
1042*c66ec88fSEmmanuel Vadot	larb7: larb@14032000 {
1043*c66ec88fSEmmanuel Vadot		compatible = "mediatek,mt2712-smi-larb";
1044*c66ec88fSEmmanuel Vadot		reg = <0 0x14032000 0 0x1000>;
1045*c66ec88fSEmmanuel Vadot		mediatek,smi = <&smi_common1>;
1046*c66ec88fSEmmanuel Vadot		mediatek,larb-id = <7>;
1047*c66ec88fSEmmanuel Vadot		power-domains = <&scpsys MT2712_POWER_DOMAIN_MM>;
1048*c66ec88fSEmmanuel Vadot		clocks = <&mmsys CLK_MM_SMI_LARB7>,
1049*c66ec88fSEmmanuel Vadot			 <&mmsys CLK_MM_SMI_LARB7>;
1050*c66ec88fSEmmanuel Vadot		clock-names = "apb", "smi";
1051*c66ec88fSEmmanuel Vadot	};
1052*c66ec88fSEmmanuel Vadot
1053*c66ec88fSEmmanuel Vadot	imgsys: syscon@15000000 {
1054*c66ec88fSEmmanuel Vadot		compatible = "mediatek,mt2712-imgsys", "syscon";
1055*c66ec88fSEmmanuel Vadot		reg = <0 0x15000000 0 0x1000>;
1056*c66ec88fSEmmanuel Vadot		#clock-cells = <1>;
1057*c66ec88fSEmmanuel Vadot	};
1058*c66ec88fSEmmanuel Vadot
1059*c66ec88fSEmmanuel Vadot	larb2: larb@15001000 {
1060*c66ec88fSEmmanuel Vadot		compatible = "mediatek,mt2712-smi-larb";
1061*c66ec88fSEmmanuel Vadot		reg = <0 0x15001000 0 0x1000>;
1062*c66ec88fSEmmanuel Vadot		mediatek,smi = <&smi_common0>;
1063*c66ec88fSEmmanuel Vadot		mediatek,larb-id = <2>;
1064*c66ec88fSEmmanuel Vadot		power-domains = <&scpsys MT2712_POWER_DOMAIN_ISP>;
1065*c66ec88fSEmmanuel Vadot		clocks = <&imgsys CLK_IMG_SMI_LARB2>,
1066*c66ec88fSEmmanuel Vadot			 <&imgsys CLK_IMG_SMI_LARB2>;
1067*c66ec88fSEmmanuel Vadot		clock-names = "apb", "smi";
1068*c66ec88fSEmmanuel Vadot	};
1069*c66ec88fSEmmanuel Vadot
1070*c66ec88fSEmmanuel Vadot	bdpsys: syscon@15010000 {
1071*c66ec88fSEmmanuel Vadot		compatible = "mediatek,mt2712-bdpsys", "syscon";
1072*c66ec88fSEmmanuel Vadot		reg = <0 0x15010000 0 0x1000>;
1073*c66ec88fSEmmanuel Vadot		#clock-cells = <1>;
1074*c66ec88fSEmmanuel Vadot	};
1075*c66ec88fSEmmanuel Vadot
1076*c66ec88fSEmmanuel Vadot	vdecsys: syscon@16000000 {
1077*c66ec88fSEmmanuel Vadot		compatible = "mediatek,mt2712-vdecsys", "syscon";
1078*c66ec88fSEmmanuel Vadot		reg = <0 0x16000000 0 0x1000>;
1079*c66ec88fSEmmanuel Vadot		#clock-cells = <1>;
1080*c66ec88fSEmmanuel Vadot	};
1081*c66ec88fSEmmanuel Vadot
1082*c66ec88fSEmmanuel Vadot	larb1: larb@16010000 {
1083*c66ec88fSEmmanuel Vadot		compatible = "mediatek,mt2712-smi-larb";
1084*c66ec88fSEmmanuel Vadot		reg = <0 0x16010000 0 0x1000>;
1085*c66ec88fSEmmanuel Vadot		mediatek,smi = <&smi_common0>;
1086*c66ec88fSEmmanuel Vadot		mediatek,larb-id = <1>;
1087*c66ec88fSEmmanuel Vadot		power-domains = <&scpsys MT2712_POWER_DOMAIN_VDEC>;
1088*c66ec88fSEmmanuel Vadot		clocks = <&vdecsys CLK_VDEC_CKEN>,
1089*c66ec88fSEmmanuel Vadot			 <&vdecsys CLK_VDEC_LARB1_CKEN>;
1090*c66ec88fSEmmanuel Vadot		clock-names = "apb", "smi";
1091*c66ec88fSEmmanuel Vadot	};
1092*c66ec88fSEmmanuel Vadot
1093*c66ec88fSEmmanuel Vadot	vencsys: syscon@18000000 {
1094*c66ec88fSEmmanuel Vadot		compatible = "mediatek,mt2712-vencsys", "syscon";
1095*c66ec88fSEmmanuel Vadot		reg = <0 0x18000000 0 0x1000>;
1096*c66ec88fSEmmanuel Vadot		#clock-cells = <1>;
1097*c66ec88fSEmmanuel Vadot	};
1098*c66ec88fSEmmanuel Vadot
1099*c66ec88fSEmmanuel Vadot	larb3: larb@18001000 {
1100*c66ec88fSEmmanuel Vadot		compatible = "mediatek,mt2712-smi-larb";
1101*c66ec88fSEmmanuel Vadot		reg = <0 0x18001000 0 0x1000>;
1102*c66ec88fSEmmanuel Vadot		mediatek,smi = <&smi_common0>;
1103*c66ec88fSEmmanuel Vadot		mediatek,larb-id = <3>;
1104*c66ec88fSEmmanuel Vadot		power-domains = <&scpsys MT2712_POWER_DOMAIN_VENC>;
1105*c66ec88fSEmmanuel Vadot		clocks = <&vencsys CLK_VENC_SMI_COMMON_CON>,
1106*c66ec88fSEmmanuel Vadot			 <&vencsys CLK_VENC_VENC>;
1107*c66ec88fSEmmanuel Vadot		clock-names = "apb", "smi";
1108*c66ec88fSEmmanuel Vadot	};
1109*c66ec88fSEmmanuel Vadot
1110*c66ec88fSEmmanuel Vadot	larb6: larb@18002000 {
1111*c66ec88fSEmmanuel Vadot		compatible = "mediatek,mt2712-smi-larb";
1112*c66ec88fSEmmanuel Vadot		reg = <0 0x18002000 0 0x1000>;
1113*c66ec88fSEmmanuel Vadot		mediatek,smi = <&smi_common0>;
1114*c66ec88fSEmmanuel Vadot		mediatek,larb-id = <6>;
1115*c66ec88fSEmmanuel Vadot		power-domains = <&scpsys MT2712_POWER_DOMAIN_VENC>;
1116*c66ec88fSEmmanuel Vadot		clocks = <&vencsys CLK_VENC_SMI_COMMON_CON>,
1117*c66ec88fSEmmanuel Vadot			 <&vencsys CLK_VENC_VENC>;
1118*c66ec88fSEmmanuel Vadot		clock-names = "apb", "smi";
1119*c66ec88fSEmmanuel Vadot	};
1120*c66ec88fSEmmanuel Vadot
1121*c66ec88fSEmmanuel Vadot	jpgdecsys: syscon@19000000 {
1122*c66ec88fSEmmanuel Vadot		compatible = "mediatek,mt2712-jpgdecsys", "syscon";
1123*c66ec88fSEmmanuel Vadot		reg = <0 0x19000000 0 0x1000>;
1124*c66ec88fSEmmanuel Vadot		#clock-cells = <1>;
1125*c66ec88fSEmmanuel Vadot	};
1126*c66ec88fSEmmanuel Vadot};
1127*c66ec88fSEmmanuel Vadot
1128