xref: /OK3568_Linux_fs/kernel/arch/arm/boot/dts/mt7629.dtsi (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun// SPDX-License-Identifier: GPL-2.0
2*4882a593Smuzhiyun/*
3*4882a593Smuzhiyun * Copyright (c) 2019 MediaTek Inc.
4*4882a593Smuzhiyun *
5*4882a593Smuzhiyun * Author: Ryder Lee <ryder.lee@mediatek.com>
6*4882a593Smuzhiyun */
7*4882a593Smuzhiyun
8*4882a593Smuzhiyun#include <dt-bindings/interrupt-controller/irq.h>
9*4882a593Smuzhiyun#include <dt-bindings/interrupt-controller/arm-gic.h>
10*4882a593Smuzhiyun#include <dt-bindings/clock/mt7629-clk.h>
11*4882a593Smuzhiyun#include <dt-bindings/power/mt7622-power.h>
12*4882a593Smuzhiyun#include <dt-bindings/gpio/gpio.h>
13*4882a593Smuzhiyun#include <dt-bindings/phy/phy.h>
14*4882a593Smuzhiyun#include <dt-bindings/reset/mt7629-resets.h>
15*4882a593Smuzhiyun
16*4882a593Smuzhiyun/ {
17*4882a593Smuzhiyun	compatible = "mediatek,mt7629";
18*4882a593Smuzhiyun	interrupt-parent = <&sysirq>;
19*4882a593Smuzhiyun	#address-cells = <1>;
20*4882a593Smuzhiyun	#size-cells = <1>;
21*4882a593Smuzhiyun
22*4882a593Smuzhiyun	cpus {
23*4882a593Smuzhiyun		#address-cells = <1>;
24*4882a593Smuzhiyun		#size-cells = <0>;
25*4882a593Smuzhiyun		enable-method = "mediatek,mt6589-smp";
26*4882a593Smuzhiyun
27*4882a593Smuzhiyun		cpu0: cpu@0 {
28*4882a593Smuzhiyun			device_type = "cpu";
29*4882a593Smuzhiyun			compatible = "arm,cortex-a7";
30*4882a593Smuzhiyun			reg = <0x0>;
31*4882a593Smuzhiyun			clock-frequency = <1250000000>;
32*4882a593Smuzhiyun			cci-control-port = <&cci_control2>;
33*4882a593Smuzhiyun		};
34*4882a593Smuzhiyun
35*4882a593Smuzhiyun		cpu1: cpu@1 {
36*4882a593Smuzhiyun			device_type = "cpu";
37*4882a593Smuzhiyun			compatible = "arm,cortex-a7";
38*4882a593Smuzhiyun			reg = <0x1>;
39*4882a593Smuzhiyun			clock-frequency = <1250000000>;
40*4882a593Smuzhiyun			cci-control-port = <&cci_control2>;
41*4882a593Smuzhiyun		};
42*4882a593Smuzhiyun	};
43*4882a593Smuzhiyun
44*4882a593Smuzhiyun	pmu {
45*4882a593Smuzhiyun		compatible = "arm,cortex-a7-pmu";
46*4882a593Smuzhiyun		interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_LOW>,
47*4882a593Smuzhiyun			     <GIC_SPI 9 IRQ_TYPE_LEVEL_LOW>;
48*4882a593Smuzhiyun		interrupt-affinity = <&cpu0>, <&cpu1>;
49*4882a593Smuzhiyun	};
50*4882a593Smuzhiyun
51*4882a593Smuzhiyun	clk20m: oscillator-0 {
52*4882a593Smuzhiyun		compatible = "fixed-clock";
53*4882a593Smuzhiyun		#clock-cells = <0>;
54*4882a593Smuzhiyun		clock-frequency = <20000000>;
55*4882a593Smuzhiyun		clock-output-names = "clk20m";
56*4882a593Smuzhiyun	};
57*4882a593Smuzhiyun
58*4882a593Smuzhiyun	clk40m: oscillator-1 {
59*4882a593Smuzhiyun		compatible = "fixed-clock";
60*4882a593Smuzhiyun		#clock-cells = <0>;
61*4882a593Smuzhiyun		clock-frequency = <40000000>;
62*4882a593Smuzhiyun		clock-output-names = "clkxtal";
63*4882a593Smuzhiyun	};
64*4882a593Smuzhiyun
65*4882a593Smuzhiyun	timer {
66*4882a593Smuzhiyun		compatible = "arm,armv7-timer";
67*4882a593Smuzhiyun		interrupt-parent = <&gic>;
68*4882a593Smuzhiyun		interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
69*4882a593Smuzhiyun			     <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
70*4882a593Smuzhiyun			     <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
71*4882a593Smuzhiyun			     <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
72*4882a593Smuzhiyun		clock-frequency = <20000000>;
73*4882a593Smuzhiyun	};
74*4882a593Smuzhiyun
75*4882a593Smuzhiyun	soc {
76*4882a593Smuzhiyun		compatible = "simple-bus";
77*4882a593Smuzhiyun		#address-cells = <1>;
78*4882a593Smuzhiyun		#size-cells = <1>;
79*4882a593Smuzhiyun		ranges;
80*4882a593Smuzhiyun
81*4882a593Smuzhiyun		infracfg: syscon@10000000 {
82*4882a593Smuzhiyun			compatible = "mediatek,mt7629-infracfg", "syscon";
83*4882a593Smuzhiyun			reg = <0x10000000 0x1000>;
84*4882a593Smuzhiyun			#clock-cells = <1>;
85*4882a593Smuzhiyun		};
86*4882a593Smuzhiyun
87*4882a593Smuzhiyun		pericfg: syscon@10002000 {
88*4882a593Smuzhiyun			compatible = "mediatek,mt7629-pericfg", "syscon";
89*4882a593Smuzhiyun			reg = <0x10002000 0x1000>;
90*4882a593Smuzhiyun			#clock-cells = <1>;
91*4882a593Smuzhiyun		};
92*4882a593Smuzhiyun
93*4882a593Smuzhiyun		scpsys: power-controller@10006000 {
94*4882a593Smuzhiyun			compatible = "mediatek,mt7629-scpsys",
95*4882a593Smuzhiyun				     "mediatek,mt7622-scpsys";
96*4882a593Smuzhiyun			#power-domain-cells = <1>;
97*4882a593Smuzhiyun			reg = <0x10006000 0x1000>;
98*4882a593Smuzhiyun			clocks = <&topckgen CLK_TOP_HIF_SEL>;
99*4882a593Smuzhiyun			clock-names = "hif_sel";
100*4882a593Smuzhiyun			assigned-clocks = <&topckgen CLK_TOP_HIF_SEL>;
101*4882a593Smuzhiyun			assigned-clock-parents = <&topckgen CLK_TOP_UNIVPLL1_D2>;
102*4882a593Smuzhiyun			infracfg = <&infracfg>;
103*4882a593Smuzhiyun		};
104*4882a593Smuzhiyun
105*4882a593Smuzhiyun		timer: timer@10009000 {
106*4882a593Smuzhiyun			compatible = "mediatek,mt7629-timer",
107*4882a593Smuzhiyun				     "mediatek,mt6765-timer";
108*4882a593Smuzhiyun			reg = <0x10009000 0x60>;
109*4882a593Smuzhiyun			interrupts = <GIC_SPI 169 IRQ_TYPE_LEVEL_HIGH>,
110*4882a593Smuzhiyun				     <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>;
111*4882a593Smuzhiyun			clocks = <&clk20m>;
112*4882a593Smuzhiyun			clock-names = "clk20m";
113*4882a593Smuzhiyun		};
114*4882a593Smuzhiyun
115*4882a593Smuzhiyun		sysirq: interrupt-controller@10200a80 {
116*4882a593Smuzhiyun			compatible = "mediatek,mt7629-sysirq",
117*4882a593Smuzhiyun				     "mediatek,mt6577-sysirq";
118*4882a593Smuzhiyun			reg = <0x10200a80 0x20>;
119*4882a593Smuzhiyun			interrupt-controller;
120*4882a593Smuzhiyun			#interrupt-cells = <3>;
121*4882a593Smuzhiyun			interrupt-parent = <&gic>;
122*4882a593Smuzhiyun		};
123*4882a593Smuzhiyun
124*4882a593Smuzhiyun		apmixedsys: syscon@10209000 {
125*4882a593Smuzhiyun			compatible = "mediatek,mt7629-apmixedsys", "syscon";
126*4882a593Smuzhiyun			reg = <0x10209000 0x1000>;
127*4882a593Smuzhiyun			#clock-cells = <1>;
128*4882a593Smuzhiyun		};
129*4882a593Smuzhiyun
130*4882a593Smuzhiyun		rng: rng@1020f000 {
131*4882a593Smuzhiyun			compatible = "mediatek,mt7629-rng",
132*4882a593Smuzhiyun				     "mediatek,mt7623-rng";
133*4882a593Smuzhiyun			reg = <0x1020f000 0x100>;
134*4882a593Smuzhiyun			clocks = <&infracfg CLK_INFRA_TRNG_PD>;
135*4882a593Smuzhiyun			clock-names = "rng";
136*4882a593Smuzhiyun		};
137*4882a593Smuzhiyun
138*4882a593Smuzhiyun		topckgen: syscon@10210000 {
139*4882a593Smuzhiyun			compatible = "mediatek,mt7629-topckgen", "syscon";
140*4882a593Smuzhiyun			reg = <0x10210000 0x1000>;
141*4882a593Smuzhiyun			#clock-cells = <1>;
142*4882a593Smuzhiyun		};
143*4882a593Smuzhiyun
144*4882a593Smuzhiyun		watchdog: watchdog@10212000 {
145*4882a593Smuzhiyun			compatible = "mediatek,mt7629-wdt",
146*4882a593Smuzhiyun				     "mediatek,mt6589-wdt";
147*4882a593Smuzhiyun			reg = <0x10212000 0x100>;
148*4882a593Smuzhiyun		};
149*4882a593Smuzhiyun
150*4882a593Smuzhiyun		pio: pinctrl@10217000 {
151*4882a593Smuzhiyun			compatible = "mediatek,mt7629-pinctrl";
152*4882a593Smuzhiyun			reg = <0x10217000 0x8000>,
153*4882a593Smuzhiyun			      <0x10005000 0x1000>;
154*4882a593Smuzhiyun			reg-names = "base", "eint";
155*4882a593Smuzhiyun			gpio-controller;
156*4882a593Smuzhiyun			gpio-ranges = <&pio 0 0 79>;
157*4882a593Smuzhiyun			#gpio-cells = <2>;
158*4882a593Smuzhiyun			#interrupt-cells = <2>;
159*4882a593Smuzhiyun			interrupt-controller;
160*4882a593Smuzhiyun			interrupts = <GIC_SPI 153 IRQ_TYPE_LEVEL_HIGH>;
161*4882a593Smuzhiyun			interrupt-parent = <&gic>;
162*4882a593Smuzhiyun		};
163*4882a593Smuzhiyun
164*4882a593Smuzhiyun		gic: interrupt-controller@10300000 {
165*4882a593Smuzhiyun			compatible = "arm,gic-400";
166*4882a593Smuzhiyun			interrupt-controller;
167*4882a593Smuzhiyun			#interrupt-cells = <3>;
168*4882a593Smuzhiyun			interrupt-parent = <&gic>;
169*4882a593Smuzhiyun			reg = <0x10310000 0x1000>,
170*4882a593Smuzhiyun			      <0x10320000 0x1000>,
171*4882a593Smuzhiyun			      <0x10340000 0x2000>,
172*4882a593Smuzhiyun			      <0x10360000 0x2000>;
173*4882a593Smuzhiyun		};
174*4882a593Smuzhiyun
175*4882a593Smuzhiyun		cci: cci@10390000 {
176*4882a593Smuzhiyun			compatible = "arm,cci-400";
177*4882a593Smuzhiyun			#address-cells = <1>;
178*4882a593Smuzhiyun			#size-cells = <1>;
179*4882a593Smuzhiyun			reg = <0x10390000 0x1000>;
180*4882a593Smuzhiyun			ranges = <0 0x10390000 0x10000>;
181*4882a593Smuzhiyun
182*4882a593Smuzhiyun			cci_control0: slave-if@1000 {
183*4882a593Smuzhiyun				compatible = "arm,cci-400-ctrl-if";
184*4882a593Smuzhiyun				interface-type = "ace-lite";
185*4882a593Smuzhiyun				reg = <0x1000 0x1000>;
186*4882a593Smuzhiyun			};
187*4882a593Smuzhiyun
188*4882a593Smuzhiyun			cci_control1: slave-if@4000 {
189*4882a593Smuzhiyun				compatible = "arm,cci-400-ctrl-if";
190*4882a593Smuzhiyun				interface-type = "ace";
191*4882a593Smuzhiyun				reg = <0x4000 0x1000>;
192*4882a593Smuzhiyun			};
193*4882a593Smuzhiyun
194*4882a593Smuzhiyun			cci_control2: slave-if@5000 {
195*4882a593Smuzhiyun				compatible = "arm,cci-400-ctrl-if";
196*4882a593Smuzhiyun				interface-type = "ace";
197*4882a593Smuzhiyun				reg = <0x5000 0x1000>;
198*4882a593Smuzhiyun			};
199*4882a593Smuzhiyun
200*4882a593Smuzhiyun			pmu@9000 {
201*4882a593Smuzhiyun				compatible = "arm,cci-400-pmu,r1";
202*4882a593Smuzhiyun				reg = <0x9000 0x5000>;
203*4882a593Smuzhiyun				interrupts = <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>,
204*4882a593Smuzhiyun					     <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>,
205*4882a593Smuzhiyun					     <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>,
206*4882a593Smuzhiyun					     <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>,
207*4882a593Smuzhiyun					     <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>;
208*4882a593Smuzhiyun			};
209*4882a593Smuzhiyun		};
210*4882a593Smuzhiyun
211*4882a593Smuzhiyun		uart0: serial@11002000 {
212*4882a593Smuzhiyun			compatible = "mediatek,mt7629-uart",
213*4882a593Smuzhiyun				     "mediatek,mt6577-uart";
214*4882a593Smuzhiyun			reg = <0x11002000 0x400>;
215*4882a593Smuzhiyun			interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_LOW>;
216*4882a593Smuzhiyun			clocks = <&topckgen CLK_TOP_UART_SEL>,
217*4882a593Smuzhiyun				 <&pericfg CLK_PERI_UART0_PD>;
218*4882a593Smuzhiyun			clock-names = "baud", "bus";
219*4882a593Smuzhiyun			status = "disabled";
220*4882a593Smuzhiyun		};
221*4882a593Smuzhiyun
222*4882a593Smuzhiyun		uart1: serial@11003000 {
223*4882a593Smuzhiyun			compatible = "mediatek,mt7629-uart",
224*4882a593Smuzhiyun				     "mediatek,mt6577-uart";
225*4882a593Smuzhiyun			reg = <0x11003000 0x400>;
226*4882a593Smuzhiyun			interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_LOW>;
227*4882a593Smuzhiyun			clocks = <&topckgen CLK_TOP_UART_SEL>,
228*4882a593Smuzhiyun				 <&pericfg CLK_PERI_UART1_PD>;
229*4882a593Smuzhiyun			clock-names = "baud", "bus";
230*4882a593Smuzhiyun			status = "disabled";
231*4882a593Smuzhiyun		};
232*4882a593Smuzhiyun
233*4882a593Smuzhiyun		uart2: serial@11004000 {
234*4882a593Smuzhiyun			compatible = "mediatek,mt7629-uart",
235*4882a593Smuzhiyun				     "mediatek,mt6577-uart";
236*4882a593Smuzhiyun			reg = <0x11004000 0x400>;
237*4882a593Smuzhiyun			interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_LOW>;
238*4882a593Smuzhiyun			clocks = <&topckgen CLK_TOP_UART_SEL>,
239*4882a593Smuzhiyun				 <&pericfg CLK_PERI_UART2_PD>;
240*4882a593Smuzhiyun			clock-names = "baud", "bus";
241*4882a593Smuzhiyun			status = "disabled";
242*4882a593Smuzhiyun		};
243*4882a593Smuzhiyun
244*4882a593Smuzhiyun		pwm: pwm@11006000 {
245*4882a593Smuzhiyun			compatible = "mediatek,mt7629-pwm";
246*4882a593Smuzhiyun			reg = <0x11006000 0x1000>;
247*4882a593Smuzhiyun			#pwm-cells = <2>;
248*4882a593Smuzhiyun			clocks = <&topckgen CLK_TOP_PWM_SEL>,
249*4882a593Smuzhiyun				 <&pericfg CLK_PERI_PWM_PD>,
250*4882a593Smuzhiyun				 <&pericfg CLK_PERI_PWM1_PD>;
251*4882a593Smuzhiyun			clock-names = "top", "main", "pwm1";
252*4882a593Smuzhiyun			assigned-clocks = <&topckgen CLK_TOP_PWM_SEL>;
253*4882a593Smuzhiyun			assigned-clock-parents =
254*4882a593Smuzhiyun					<&topckgen CLK_TOP_UNIVPLL2_D4>;
255*4882a593Smuzhiyun			status = "disabled";
256*4882a593Smuzhiyun		};
257*4882a593Smuzhiyun
258*4882a593Smuzhiyun		i2c: i2c@11007000 {
259*4882a593Smuzhiyun			compatible = "mediatek,mt7629-i2c",
260*4882a593Smuzhiyun				     "mediatek,mt2712-i2c";
261*4882a593Smuzhiyun			reg = <0x11007000 0x90>,
262*4882a593Smuzhiyun			      <0x11000100 0x80>;
263*4882a593Smuzhiyun			interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_LOW>;
264*4882a593Smuzhiyun			clock-div = <4>;
265*4882a593Smuzhiyun			clocks = <&pericfg CLK_PERI_I2C0_PD>,
266*4882a593Smuzhiyun				 <&pericfg CLK_PERI_AP_DMA_PD>;
267*4882a593Smuzhiyun			clock-names = "main", "dma";
268*4882a593Smuzhiyun			assigned-clocks = <&topckgen CLK_TOP_AXI_SEL>;
269*4882a593Smuzhiyun			assigned-clock-parents = <&topckgen CLK_TOP_SYSPLL1_D2>;
270*4882a593Smuzhiyun			#address-cells = <1>;
271*4882a593Smuzhiyun			#size-cells = <0>;
272*4882a593Smuzhiyun			status = "disabled";
273*4882a593Smuzhiyun		};
274*4882a593Smuzhiyun
275*4882a593Smuzhiyun		spi: spi@1100a000 {
276*4882a593Smuzhiyun			compatible = "mediatek,mt7629-spi",
277*4882a593Smuzhiyun				     "mediatek,mt7622-spi";
278*4882a593Smuzhiyun			#address-cells = <1>;
279*4882a593Smuzhiyun			#size-cells = <0>;
280*4882a593Smuzhiyun			reg = <0x1100a000 0x100>;
281*4882a593Smuzhiyun			interrupts = <GIC_SPI 118 IRQ_TYPE_LEVEL_LOW>;
282*4882a593Smuzhiyun			clocks = <&topckgen CLK_TOP_SYSPLL3_D2>,
283*4882a593Smuzhiyun				 <&topckgen CLK_TOP_SPI0_SEL>,
284*4882a593Smuzhiyun				 <&pericfg CLK_PERI_SPI0_PD>;
285*4882a593Smuzhiyun			clock-names = "parent-clk", "sel-clk", "spi-clk";
286*4882a593Smuzhiyun			status = "disabled";
287*4882a593Smuzhiyun		};
288*4882a593Smuzhiyun
289*4882a593Smuzhiyun		qspi: spi@11014000 {
290*4882a593Smuzhiyun			compatible = "mediatek,mt7629-nor",
291*4882a593Smuzhiyun				     "mediatek,mt8173-nor";
292*4882a593Smuzhiyun			reg = <0x11014000 0xe0>;
293*4882a593Smuzhiyun			clocks = <&pericfg CLK_PERI_FLASH_PD>,
294*4882a593Smuzhiyun				 <&topckgen CLK_TOP_FLASH_SEL>;
295*4882a593Smuzhiyun			clock-names = "spi", "sf";
296*4882a593Smuzhiyun			#address-cells = <1>;
297*4882a593Smuzhiyun			#size-cells = <0>;
298*4882a593Smuzhiyun			status = "disabled";
299*4882a593Smuzhiyun		};
300*4882a593Smuzhiyun
301*4882a593Smuzhiyun		ssusbsys: syscon@1a000000 {
302*4882a593Smuzhiyun			compatible = "mediatek,mt7629-ssusbsys", "syscon";
303*4882a593Smuzhiyun			reg = <0x1a000000 0x1000>;
304*4882a593Smuzhiyun			#clock-cells = <1>;
305*4882a593Smuzhiyun			#reset-cells = <1>;
306*4882a593Smuzhiyun		};
307*4882a593Smuzhiyun
308*4882a593Smuzhiyun		ssusb: usb@1a0c0000 {
309*4882a593Smuzhiyun			compatible = "mediatek,mt7629-xhci",
310*4882a593Smuzhiyun				     "mediatek,mtk-xhci";
311*4882a593Smuzhiyun			reg = <0x1a0c0000 0x01000>,
312*4882a593Smuzhiyun			      <0x1a0c3e00 0x0100>;
313*4882a593Smuzhiyun			reg-names = "mac", "ippc";
314*4882a593Smuzhiyun			interrupts = <GIC_SPI 232 IRQ_TYPE_LEVEL_LOW>;
315*4882a593Smuzhiyun			clocks = <&ssusbsys CLK_SSUSB_SYS_EN>,
316*4882a593Smuzhiyun				 <&ssusbsys CLK_SSUSB_REF_EN>,
317*4882a593Smuzhiyun				 <&ssusbsys CLK_SSUSB_MCU_EN>,
318*4882a593Smuzhiyun				 <&ssusbsys CLK_SSUSB_DMA_EN>;
319*4882a593Smuzhiyun			clock-names = "sys_ck", "ref_ck", "mcu_ck", "dma_ck";
320*4882a593Smuzhiyun			assigned-clocks = <&topckgen CLK_TOP_AXI_SEL>,
321*4882a593Smuzhiyun					  <&topckgen CLK_TOP_SATA_SEL>,
322*4882a593Smuzhiyun					  <&topckgen CLK_TOP_HIF_SEL>;
323*4882a593Smuzhiyun			assigned-clock-parents = <&topckgen CLK_TOP_SYSPLL1_D2>,
324*4882a593Smuzhiyun						 <&topckgen CLK_TOP_UNIVPLL2_D4>,
325*4882a593Smuzhiyun						 <&topckgen CLK_TOP_UNIVPLL1_D2>;
326*4882a593Smuzhiyun			power-domains = <&scpsys MT7622_POWER_DOMAIN_HIF1>;
327*4882a593Smuzhiyun			phys = <&u2port0 PHY_TYPE_USB2>,
328*4882a593Smuzhiyun			       <&u3port0 PHY_TYPE_USB3>;
329*4882a593Smuzhiyun			status = "disabled";
330*4882a593Smuzhiyun		};
331*4882a593Smuzhiyun
332*4882a593Smuzhiyun		u3phy0: usb-phy@1a0c4000 {
333*4882a593Smuzhiyun			compatible = "mediatek,generic-tphy-v2";
334*4882a593Smuzhiyun			#address-cells = <1>;
335*4882a593Smuzhiyun			#size-cells = <1>;
336*4882a593Smuzhiyun			ranges = <0 0x1a0c4000 0xe00>;
337*4882a593Smuzhiyun			status = "disabled";
338*4882a593Smuzhiyun
339*4882a593Smuzhiyun			u2port0: usb-phy@0 {
340*4882a593Smuzhiyun				reg = <0 0x700>;
341*4882a593Smuzhiyun				clocks = <&ssusbsys CLK_SSUSB_U2_PHY_EN>;
342*4882a593Smuzhiyun				clock-names = "ref";
343*4882a593Smuzhiyun				#phy-cells = <1>;
344*4882a593Smuzhiyun				status = "okay";
345*4882a593Smuzhiyun			};
346*4882a593Smuzhiyun
347*4882a593Smuzhiyun			u3port0: usb-phy@700 {
348*4882a593Smuzhiyun				reg = <0x700 0x700>;
349*4882a593Smuzhiyun				clocks = <&clk20m>;
350*4882a593Smuzhiyun				clock-names = "ref";
351*4882a593Smuzhiyun				#phy-cells = <1>;
352*4882a593Smuzhiyun				status = "okay";
353*4882a593Smuzhiyun			};
354*4882a593Smuzhiyun		};
355*4882a593Smuzhiyun
356*4882a593Smuzhiyun		pciesys: syscon@1a100800 {
357*4882a593Smuzhiyun			compatible = "mediatek,mt7629-pciesys", "syscon";
358*4882a593Smuzhiyun			reg = <0x1a100800 0x1000>;
359*4882a593Smuzhiyun			#clock-cells = <1>;
360*4882a593Smuzhiyun			#reset-cells = <1>;
361*4882a593Smuzhiyun		};
362*4882a593Smuzhiyun
363*4882a593Smuzhiyun		pcie: pcie@1a140000 {
364*4882a593Smuzhiyun			compatible = "mediatek,mt7629-pcie";
365*4882a593Smuzhiyun			device_type = "pci";
366*4882a593Smuzhiyun			reg = <0x1a140000 0x1000>,
367*4882a593Smuzhiyun			      <0x1a145000 0x1000>;
368*4882a593Smuzhiyun			reg-names = "subsys","port1";
369*4882a593Smuzhiyun			#address-cells = <3>;
370*4882a593Smuzhiyun			#size-cells = <2>;
371*4882a593Smuzhiyun			interrupts = <GIC_SPI 176 IRQ_TYPE_LEVEL_LOW>,
372*4882a593Smuzhiyun				     <GIC_SPI 229 IRQ_TYPE_LEVEL_LOW>;
373*4882a593Smuzhiyun			clocks = <&pciesys CLK_PCIE_P1_MAC_EN>,
374*4882a593Smuzhiyun				 <&pciesys CLK_PCIE_P0_AHB_EN>,
375*4882a593Smuzhiyun				 <&pciesys CLK_PCIE_P1_AUX_EN>,
376*4882a593Smuzhiyun				 <&pciesys CLK_PCIE_P1_AXI_EN>,
377*4882a593Smuzhiyun				 <&pciesys CLK_PCIE_P1_OBFF_EN>,
378*4882a593Smuzhiyun				 <&pciesys CLK_PCIE_P1_PIPE_EN>;
379*4882a593Smuzhiyun			clock-names = "sys_ck1", "ahb_ck1",
380*4882a593Smuzhiyun				      "aux_ck1", "axi_ck1",
381*4882a593Smuzhiyun				      "obff_ck1", "pipe_ck1";
382*4882a593Smuzhiyun			assigned-clocks = <&topckgen CLK_TOP_SATA_SEL>,
383*4882a593Smuzhiyun					  <&topckgen CLK_TOP_AXI_SEL>,
384*4882a593Smuzhiyun					  <&topckgen CLK_TOP_HIF_SEL>;
385*4882a593Smuzhiyun			assigned-clock-parents = <&topckgen CLK_TOP_UNIVPLL2_D4>,
386*4882a593Smuzhiyun						 <&topckgen CLK_TOP_SYSPLL1_D2>,
387*4882a593Smuzhiyun						 <&topckgen CLK_TOP_UNIVPLL1_D2>;
388*4882a593Smuzhiyun			phys = <&pcieport1 PHY_TYPE_PCIE>;
389*4882a593Smuzhiyun			phy-names = "pcie-phy1";
390*4882a593Smuzhiyun			power-domains = <&scpsys MT7622_POWER_DOMAIN_HIF0>;
391*4882a593Smuzhiyun			bus-range = <0x00 0xff>;
392*4882a593Smuzhiyun			ranges = <0x82000000 0 0x20000000 0x20000000 0 0x10000000>;
393*4882a593Smuzhiyun
394*4882a593Smuzhiyun			pcie1: pcie@1,0 {
395*4882a593Smuzhiyun				device_type = "pci";
396*4882a593Smuzhiyun				reg = <0x0800 0 0 0 0>;
397*4882a593Smuzhiyun				#address-cells = <3>;
398*4882a593Smuzhiyun				#size-cells = <2>;
399*4882a593Smuzhiyun				#interrupt-cells = <1>;
400*4882a593Smuzhiyun				ranges;
401*4882a593Smuzhiyun				num-lanes = <1>;
402*4882a593Smuzhiyun				interrupt-map-mask = <0 0 0 7>;
403*4882a593Smuzhiyun				interrupt-map = <0 0 0 1 &pcie_intc1 0>,
404*4882a593Smuzhiyun						<0 0 0 2 &pcie_intc1 1>,
405*4882a593Smuzhiyun						<0 0 0 3 &pcie_intc1 2>,
406*4882a593Smuzhiyun						<0 0 0 4 &pcie_intc1 3>;
407*4882a593Smuzhiyun
408*4882a593Smuzhiyun				pcie_intc1: interrupt-controller {
409*4882a593Smuzhiyun					interrupt-controller;
410*4882a593Smuzhiyun					#address-cells = <0>;
411*4882a593Smuzhiyun					#interrupt-cells = <1>;
412*4882a593Smuzhiyun				};
413*4882a593Smuzhiyun			};
414*4882a593Smuzhiyun		};
415*4882a593Smuzhiyun
416*4882a593Smuzhiyun		pciephy1: pcie-phy@1a14a000 {
417*4882a593Smuzhiyun			compatible = "mediatek,generic-tphy-v2";
418*4882a593Smuzhiyun			#address-cells = <1>;
419*4882a593Smuzhiyun			#size-cells = <1>;
420*4882a593Smuzhiyun			ranges = <0 0x1a14a000 0x1000>;
421*4882a593Smuzhiyun			status = "disabled";
422*4882a593Smuzhiyun
423*4882a593Smuzhiyun			pcieport1: port1phy@0 {
424*4882a593Smuzhiyun				reg = <0 0x1000>;
425*4882a593Smuzhiyun				clocks = <&clk20m>;
426*4882a593Smuzhiyun				clock-names = "ref";
427*4882a593Smuzhiyun				#phy-cells = <1>;
428*4882a593Smuzhiyun				status = "okay";
429*4882a593Smuzhiyun			};
430*4882a593Smuzhiyun		};
431*4882a593Smuzhiyun
432*4882a593Smuzhiyun		ethsys: syscon@1b000000 {
433*4882a593Smuzhiyun			compatible = "mediatek,mt7629-ethsys", "syscon";
434*4882a593Smuzhiyun			reg = <0x1b000000 0x1000>;
435*4882a593Smuzhiyun			#clock-cells = <1>;
436*4882a593Smuzhiyun			#reset-cells = <1>;
437*4882a593Smuzhiyun		};
438*4882a593Smuzhiyun
439*4882a593Smuzhiyun		eth: ethernet@1b100000 {
440*4882a593Smuzhiyun			compatible = "mediatek,mt7629-eth","syscon";
441*4882a593Smuzhiyun			reg = <0x1b100000 0x20000>;
442*4882a593Smuzhiyun			interrupts = <GIC_SPI 223 IRQ_TYPE_LEVEL_LOW>,
443*4882a593Smuzhiyun				     <GIC_SPI 224 IRQ_TYPE_LEVEL_LOW>,
444*4882a593Smuzhiyun				     <GIC_SPI 225 IRQ_TYPE_LEVEL_LOW>;
445*4882a593Smuzhiyun			clocks = <&topckgen CLK_TOP_ETH_SEL>,
446*4882a593Smuzhiyun				 <&topckgen CLK_TOP_F10M_REF_SEL>,
447*4882a593Smuzhiyun				 <&ethsys CLK_ETH_ESW_EN>,
448*4882a593Smuzhiyun				 <&ethsys CLK_ETH_GP0_EN>,
449*4882a593Smuzhiyun				 <&ethsys CLK_ETH_GP1_EN>,
450*4882a593Smuzhiyun				 <&ethsys CLK_ETH_GP2_EN>,
451*4882a593Smuzhiyun				 <&ethsys CLK_ETH_FE_EN>,
452*4882a593Smuzhiyun				 <&sgmiisys0 CLK_SGMII_TX_EN>,
453*4882a593Smuzhiyun				 <&sgmiisys0 CLK_SGMII_RX_EN>,
454*4882a593Smuzhiyun				 <&sgmiisys0 CLK_SGMII_CDR_REF>,
455*4882a593Smuzhiyun				 <&sgmiisys0 CLK_SGMII_CDR_FB>,
456*4882a593Smuzhiyun				 <&sgmiisys1 CLK_SGMII_TX_EN>,
457*4882a593Smuzhiyun				 <&sgmiisys1 CLK_SGMII_RX_EN>,
458*4882a593Smuzhiyun				 <&sgmiisys1 CLK_SGMII_CDR_REF>,
459*4882a593Smuzhiyun				 <&sgmiisys1 CLK_SGMII_CDR_FB>,
460*4882a593Smuzhiyun				 <&apmixedsys CLK_APMIXED_SGMIPLL>,
461*4882a593Smuzhiyun				 <&apmixedsys CLK_APMIXED_ETH2PLL>;
462*4882a593Smuzhiyun			clock-names = "ethif", "sgmiitop", "esw", "gp0", "gp1",
463*4882a593Smuzhiyun				      "gp2", "fe", "sgmii_tx250m", "sgmii_rx250m",
464*4882a593Smuzhiyun				      "sgmii_cdr_ref", "sgmii_cdr_fb",
465*4882a593Smuzhiyun				      "sgmii2_tx250m", "sgmii2_rx250m",
466*4882a593Smuzhiyun				      "sgmii2_cdr_ref", "sgmii2_cdr_fb",
467*4882a593Smuzhiyun				      "sgmii_ck", "eth2pll";
468*4882a593Smuzhiyun			assigned-clocks = <&topckgen CLK_TOP_ETH_SEL>,
469*4882a593Smuzhiyun					  <&topckgen CLK_TOP_F10M_REF_SEL>;
470*4882a593Smuzhiyun			assigned-clock-parents = <&topckgen CLK_TOP_UNIVPLL1_D2>,
471*4882a593Smuzhiyun						 <&topckgen CLK_TOP_SGMIIPLL_D2>;
472*4882a593Smuzhiyun			power-domains = <&scpsys MT7622_POWER_DOMAIN_ETHSYS>;
473*4882a593Smuzhiyun			mediatek,ethsys = <&ethsys>;
474*4882a593Smuzhiyun			mediatek,sgmiisys = <&sgmiisys0>, <&sgmiisys1>;
475*4882a593Smuzhiyun			mediatek,infracfg = <&infracfg>;
476*4882a593Smuzhiyun			#address-cells = <1>;
477*4882a593Smuzhiyun			#size-cells = <0>;
478*4882a593Smuzhiyun			status = "disabled";
479*4882a593Smuzhiyun		};
480*4882a593Smuzhiyun
481*4882a593Smuzhiyun		sgmiisys0: syscon@1b128000 {
482*4882a593Smuzhiyun			compatible = "mediatek,mt7629-sgmiisys", "syscon";
483*4882a593Smuzhiyun			reg = <0x1b128000 0x3000>;
484*4882a593Smuzhiyun			#clock-cells = <1>;
485*4882a593Smuzhiyun		};
486*4882a593Smuzhiyun
487*4882a593Smuzhiyun		sgmiisys1: syscon@1b130000 {
488*4882a593Smuzhiyun			compatible = "mediatek,mt7629-sgmiisys", "syscon";
489*4882a593Smuzhiyun			reg = <0x1b130000 0x3000>;
490*4882a593Smuzhiyun			#clock-cells = <1>;
491*4882a593Smuzhiyun		};
492*4882a593Smuzhiyun	};
493*4882a593Smuzhiyun};
494