xref: /openbmc/u-boot/arch/arm/dts/mt7629.dtsi (revision 376ac00dc3bc69e05b8c8cde1e3c10b58c116edd)
1*376ac00dSRyder Lee/*
2*376ac00dSRyder Lee * Copyright (C) 2018 MediaTek Inc.
3*376ac00dSRyder Lee * Author: Ryder Lee <ryder.lee@mediatek.com>
4*376ac00dSRyder Lee *
5*376ac00dSRyder Lee * SPDX-License-Identifier: (GPL-2.0 OR MIT)
6*376ac00dSRyder Lee */
7*376ac00dSRyder Lee
8*376ac00dSRyder Lee#include <dt-bindings/clock/mt7629-clk.h>
9*376ac00dSRyder Lee#include <dt-bindings/gpio/gpio.h>
10*376ac00dSRyder Lee#include <dt-bindings/interrupt-controller/irq.h>
11*376ac00dSRyder Lee#include <dt-bindings/interrupt-controller/arm-gic.h>
12*376ac00dSRyder Lee#include <dt-bindings/power/mt7629-power.h>
13*376ac00dSRyder Lee#include "skeleton.dtsi"
14*376ac00dSRyder Lee
15*376ac00dSRyder Lee/ {
16*376ac00dSRyder Lee	compatible = "mediatek,mt7629";
17*376ac00dSRyder Lee	interrupt-parent = <&sysirq>;
18*376ac00dSRyder Lee	#address-cells = <1>;
19*376ac00dSRyder Lee	#size-cells = <1>;
20*376ac00dSRyder Lee
21*376ac00dSRyder Lee	cpus {
22*376ac00dSRyder Lee		#address-cells = <1>;
23*376ac00dSRyder Lee		#size-cells = <0>;
24*376ac00dSRyder Lee		enable-method = "mediatek,mt6589-smp";
25*376ac00dSRyder Lee
26*376ac00dSRyder Lee		cpu@0 {
27*376ac00dSRyder Lee			device_type = "cpu";
28*376ac00dSRyder Lee			compatible = "arm,cortex-a7";
29*376ac00dSRyder Lee			reg = <0x0>;
30*376ac00dSRyder Lee			clock-frequency = <1250000000>;
31*376ac00dSRyder Lee		};
32*376ac00dSRyder Lee
33*376ac00dSRyder Lee		cpu@1 {
34*376ac00dSRyder Lee			device_type = "cpu";
35*376ac00dSRyder Lee			compatible = "arm,cortex-a7";
36*376ac00dSRyder Lee			reg = <0x1>;
37*376ac00dSRyder Lee			clock-frequency = <1250000000>;
38*376ac00dSRyder Lee		};
39*376ac00dSRyder Lee	};
40*376ac00dSRyder Lee
41*376ac00dSRyder Lee	clk20m: oscillator@0 {
42*376ac00dSRyder Lee		compatible = "fixed-clock";
43*376ac00dSRyder Lee		#clock-cells = <0>;
44*376ac00dSRyder Lee		clock-frequency = <20000000>;
45*376ac00dSRyder Lee		clock-output-names = "clk20m";
46*376ac00dSRyder Lee	};
47*376ac00dSRyder Lee
48*376ac00dSRyder Lee	clk40m: oscillator@1 {
49*376ac00dSRyder Lee		compatible = "fixed-clock";
50*376ac00dSRyder Lee		#clock-cells = <0>;
51*376ac00dSRyder Lee		clock-frequency = <40000000>;
52*376ac00dSRyder Lee		clock-output-names = "clkxtal";
53*376ac00dSRyder Lee	};
54*376ac00dSRyder Lee
55*376ac00dSRyder Lee	timer {
56*376ac00dSRyder Lee		compatible = "arm,armv7-timer";
57*376ac00dSRyder Lee		interrupt-parent = <&gic>;
58*376ac00dSRyder Lee		interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
59*376ac00dSRyder Lee			     <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
60*376ac00dSRyder Lee			     <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
61*376ac00dSRyder Lee			     <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
62*376ac00dSRyder Lee		clock-frequency = <20000000>;
63*376ac00dSRyder Lee		arm,cpu-registers-not-fw-configured;
64*376ac00dSRyder Lee	};
65*376ac00dSRyder Lee
66*376ac00dSRyder Lee	infracfg: syscon@10000000 {
67*376ac00dSRyder Lee		compatible = "mediatek,mt7629-infracfg", "syscon";
68*376ac00dSRyder Lee		reg = <0x10000000 0x1000>;
69*376ac00dSRyder Lee		#clock-cells = <1>;
70*376ac00dSRyder Lee		u-boot,dm-pre-reloc;
71*376ac00dSRyder Lee	};
72*376ac00dSRyder Lee
73*376ac00dSRyder Lee	pericfg: syscon@10002000 {
74*376ac00dSRyder Lee		compatible = "mediatek,mt7629-pericfg", "syscon";
75*376ac00dSRyder Lee		reg = <0x10002000 0x1000>;
76*376ac00dSRyder Lee		#clock-cells = <1>;
77*376ac00dSRyder Lee		u-boot,dm-pre-reloc;
78*376ac00dSRyder Lee	};
79*376ac00dSRyder Lee
80*376ac00dSRyder Lee	timer0: timer@10004000 {
81*376ac00dSRyder Lee		compatible = "mediatek,timer";
82*376ac00dSRyder Lee		reg = <0x10004000 0x80>;
83*376ac00dSRyder Lee		interrupts = <GIC_SPI 152 IRQ_TYPE_LEVEL_LOW>;
84*376ac00dSRyder Lee		clocks = <&topckgen CLK_TOP_10M_SEL>,
85*376ac00dSRyder Lee			 <&topckgen CLK_TOP_CLKXTAL_D4>;
86*376ac00dSRyder Lee		clock-names = "mux", "src";
87*376ac00dSRyder Lee		u-boot,dm-pre-reloc;
88*376ac00dSRyder Lee	};
89*376ac00dSRyder Lee
90*376ac00dSRyder Lee	scpsys: scpsys@10006000 {
91*376ac00dSRyder Lee		compatible = "mediatek,mt7629-scpsys";
92*376ac00dSRyder Lee		reg = <0x10006000 0x1000>;
93*376ac00dSRyder Lee		clocks = <&topckgen CLK_TOP_HIF_SEL>;
94*376ac00dSRyder Lee		clock-names = "hif_sel";
95*376ac00dSRyder Lee		assigned-clocks = <&topckgen CLK_TOP_HIF_SEL>;
96*376ac00dSRyder Lee		assigned-clock-parents = <&topckgen CLK_TOP_UNIVPLL1_D2>;
97*376ac00dSRyder Lee		#power-domain-cells = <1>;
98*376ac00dSRyder Lee		infracfg = <&infracfg>;
99*376ac00dSRyder Lee	};
100*376ac00dSRyder Lee
101*376ac00dSRyder Lee	mcucfg: syscon@10200000 {
102*376ac00dSRyder Lee		compatible = "mediatek,mt7629-mcucfg", "syscon";
103*376ac00dSRyder Lee		reg = <0x10200000 0x1000>;
104*376ac00dSRyder Lee		#clock-cells = <1>;
105*376ac00dSRyder Lee		u-boot,dm-pre-reloc;
106*376ac00dSRyder Lee	};
107*376ac00dSRyder Lee
108*376ac00dSRyder Lee	sysirq: interrupt-controller@10200a80 {
109*376ac00dSRyder Lee		compatible = "mediatek,sysirq";
110*376ac00dSRyder Lee		reg = <0x10200a80 0x20>;
111*376ac00dSRyder Lee		interrupt-controller;
112*376ac00dSRyder Lee		#interrupt-cells = <3>;
113*376ac00dSRyder Lee		interrupt-parent = <&gic>;
114*376ac00dSRyder Lee	};
115*376ac00dSRyder Lee
116*376ac00dSRyder Lee	dramc: dramc@10203000 {
117*376ac00dSRyder Lee		compatible = "mediatek,mt7629-dramc";
118*376ac00dSRyder Lee		reg = <0x10203000 0x600>,	/* EMI */
119*376ac00dSRyder Lee		      <0x10213000 0x1000>,	/* DDRPHY */
120*376ac00dSRyder Lee		      <0x10214000 0xd00>;	/* DRAMC_AO */
121*376ac00dSRyder Lee		clocks = <&topckgen CLK_TOP_DDRPHYCFG_SEL>,
122*376ac00dSRyder Lee			 <&topckgen CLK_TOP_SYSPLL1_D8>,
123*376ac00dSRyder Lee			 <&topckgen CLK_TOP_MEM_SEL>,
124*376ac00dSRyder Lee			 <&topckgen CLK_TOP_DMPLL>;
125*376ac00dSRyder Lee		clock-names = "phy", "phy_mux", "mem", "mem_mux";
126*376ac00dSRyder Lee		u-boot,dm-pre-reloc;
127*376ac00dSRyder Lee	};
128*376ac00dSRyder Lee
129*376ac00dSRyder Lee	apmixedsys: clock-controller@10209000 {
130*376ac00dSRyder Lee		compatible = "mediatek,mt7629-apmixedsys";
131*376ac00dSRyder Lee		reg = <0x10209000 0x1000>;
132*376ac00dSRyder Lee		#clock-cells = <1>;
133*376ac00dSRyder Lee		u-boot,dm-pre-reloc;
134*376ac00dSRyder Lee	};
135*376ac00dSRyder Lee
136*376ac00dSRyder Lee	topckgen: clock-controller@10210000 {
137*376ac00dSRyder Lee		compatible = "mediatek,mt7629-topckgen";
138*376ac00dSRyder Lee		reg = <0x10210000 0x1000>;
139*376ac00dSRyder Lee		#clock-cells = <1>;
140*376ac00dSRyder Lee		u-boot,dm-pre-reloc;
141*376ac00dSRyder Lee	};
142*376ac00dSRyder Lee
143*376ac00dSRyder Lee	watchdog: watchdog@10212000 {
144*376ac00dSRyder Lee		compatible = "mediatek,wdt";
145*376ac00dSRyder Lee		reg = <0x10212000 0x600>;
146*376ac00dSRyder Lee		interrupts = <GIC_SPI 128 IRQ_TYPE_EDGE_FALLING>;
147*376ac00dSRyder Lee		#reset-cells = <1>;
148*376ac00dSRyder Lee		status = "disabled";
149*376ac00dSRyder Lee	};
150*376ac00dSRyder Lee
151*376ac00dSRyder Lee	wdt-reboot {
152*376ac00dSRyder Lee		compatible = "wdt-reboot";
153*376ac00dSRyder Lee		wdt = <&watchdog>;
154*376ac00dSRyder Lee	};
155*376ac00dSRyder Lee
156*376ac00dSRyder Lee	pinctrl: pinctrl@10217000 {
157*376ac00dSRyder Lee		compatible = "mediatek,mt7629-pinctrl";
158*376ac00dSRyder Lee		reg = <0x10217000 0x8000>;
159*376ac00dSRyder Lee
160*376ac00dSRyder Lee		gpio: gpio-controller {
161*376ac00dSRyder Lee			gpio-controller;
162*376ac00dSRyder Lee			#gpio-cells = <2>;
163*376ac00dSRyder Lee		};
164*376ac00dSRyder Lee	};
165*376ac00dSRyder Lee
166*376ac00dSRyder Lee	gic: interrupt-controller@10300000 {
167*376ac00dSRyder Lee		compatible = "arm,gic-400";
168*376ac00dSRyder Lee		interrupt-controller;
169*376ac00dSRyder Lee		#interrupt-cells = <3>;
170*376ac00dSRyder Lee		interrupt-parent = <&gic>;
171*376ac00dSRyder Lee		reg = <0x10310000 0x1000>,
172*376ac00dSRyder Lee		      <0x10320000 0x1000>,
173*376ac00dSRyder Lee		      <0x10340000 0x2000>,
174*376ac00dSRyder Lee		      <0x10360000 0x2000>;
175*376ac00dSRyder Lee	};
176*376ac00dSRyder Lee
177*376ac00dSRyder Lee	uart0: serial@11002000 {
178*376ac00dSRyder Lee		compatible = "mediatek,hsuart";
179*376ac00dSRyder Lee		reg = <0x11002000 0x400>;
180*376ac00dSRyder Lee		reg-shift = <2>;
181*376ac00dSRyder Lee		interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_LOW>;
182*376ac00dSRyder Lee		clocks = <&topckgen CLK_TOP_UART_SEL>,
183*376ac00dSRyder Lee			 <&pericfg CLK_PERI_UART0_PD>;
184*376ac00dSRyder Lee		clock-names = "baud", "bus";
185*376ac00dSRyder Lee		status = "disabled";
186*376ac00dSRyder Lee		assigned-clocks = <&topckgen CLK_TOP_AXI_SEL>;
187*376ac00dSRyder Lee		assigned-clock-parents = <&topckgen CLK_TOP_SYSPLL1_D2>;
188*376ac00dSRyder Lee		u-boot,dm-pre-reloc;
189*376ac00dSRyder Lee	};
190*376ac00dSRyder Lee
191*376ac00dSRyder Lee	uart1: serial@11003000 {
192*376ac00dSRyder Lee		compatible = "mediatek,hsuart";
193*376ac00dSRyder Lee		reg = <0x11003000 0x400>;
194*376ac00dSRyder Lee		reg-shift = <2>;
195*376ac00dSRyder Lee		interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_LOW>;
196*376ac00dSRyder Lee		clocks = <&topckgen CLK_TOP_UART_SEL>,
197*376ac00dSRyder Lee			 <&pericfg CLK_PERI_UART1_PD>;
198*376ac00dSRyder Lee		clock-names = "baud", "bus";
199*376ac00dSRyder Lee		assigned-clocks = <&topckgen CLK_TOP_AXI_SEL>;
200*376ac00dSRyder Lee		assigned-clock-parents = <&topckgen CLK_TOP_SYSPLL1_D2>;
201*376ac00dSRyder Lee		status = "disabled";
202*376ac00dSRyder Lee	};
203*376ac00dSRyder Lee
204*376ac00dSRyder Lee	uart2: serial@11004000 {
205*376ac00dSRyder Lee		compatible = "mediatek,hsuart";
206*376ac00dSRyder Lee		reg = <0x11004000 0x400>;
207*376ac00dSRyder Lee		reg-shift = <2>;
208*376ac00dSRyder Lee		interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_LOW>;
209*376ac00dSRyder Lee		clocks = <&topckgen CLK_TOP_UART_SEL>,
210*376ac00dSRyder Lee			 <&pericfg CLK_PERI_UART2_PD>;
211*376ac00dSRyder Lee		clock-names = "baud", "bus";
212*376ac00dSRyder Lee		assigned-clocks = <&topckgen CLK_TOP_AXI_SEL>;
213*376ac00dSRyder Lee		assigned-clock-parents = <&topckgen CLK_TOP_SYSPLL1_D2>;
214*376ac00dSRyder Lee		status = "disabled";
215*376ac00dSRyder Lee	};
216*376ac00dSRyder Lee
217*376ac00dSRyder Lee	qspi: qspi@11014000 {
218*376ac00dSRyder Lee		compatible = "mediatek,mt7629-qspi";
219*376ac00dSRyder Lee		reg = <0x11014000 0xe0>, <0x30000000 0x10000000>;
220*376ac00dSRyder Lee		reg-names = "reg_base", "mem_base";
221*376ac00dSRyder Lee		status = "disabled";
222*376ac00dSRyder Lee		#address-cells = <1>;
223*376ac00dSRyder Lee		#size-cells = <0>;
224*376ac00dSRyder Lee		u-boot,dm-pre-reloc;
225*376ac00dSRyder Lee	};
226*376ac00dSRyder Lee
227*376ac00dSRyder Lee	ethsys: syscon@1b000000 {
228*376ac00dSRyder Lee		compatible = "mediatek,mt7629-ethsys", "syscon";
229*376ac00dSRyder Lee		reg = <0x1b000000 0x1000>;
230*376ac00dSRyder Lee		#clock-cells = <1>;
231*376ac00dSRyder Lee	};
232*376ac00dSRyder Lee
233*376ac00dSRyder Lee	sgmiisys0: syscon@1b128000 {
234*376ac00dSRyder Lee		compatible = "mediatek,mt7629-sgmiisys", "syscon";
235*376ac00dSRyder Lee		reg = <0x1b128000 0x1000>;
236*376ac00dSRyder Lee		#clock-cells = <1>;
237*376ac00dSRyder Lee	};
238*376ac00dSRyder Lee
239*376ac00dSRyder Lee	sgmiisys1: syscon@1b130000 {
240*376ac00dSRyder Lee		compatible = "mediatek,mt7629-sgmiisys", "syscon";
241*376ac00dSRyder Lee		reg = <0x1b130000 0x1000>;
242*376ac00dSRyder Lee		#clock-cells = <1>;
243*376ac00dSRyder Lee	};
244*376ac00dSRyder Lee};
245