]>
Commit | Line | Data |
---|---|---|
bdf2cbb2 | 1 | /* |
2 | * Copyright (c) 2017 MediaTek Inc. | |
3 | * Author: YT Shen <yt.shen@mediatek.com> | |
4 | * | |
5 | * SPDX-License-Identifier: (GPL-2.0 OR MIT) | |
6 | */ | |
7 | ||
5d483970 | 8 | #include <dt-bindings/clock/mt2712-clk.h> |
bdf2cbb2 | 9 | #include <dt-bindings/interrupt-controller/irq.h> |
10 | #include <dt-bindings/interrupt-controller/arm-gic.h> | |
11 | ||
12 | / { | |
13 | compatible = "mediatek,mt2712"; | |
14 | interrupt-parent = <&sysirq>; | |
15 | #address-cells = <2>; | |
16 | #size-cells = <2>; | |
17 | ||
18 | cpus { | |
19 | #address-cells = <1>; | |
20 | #size-cells = <0>; | |
21 | ||
22 | cpu-map { | |
23 | cluster0 { | |
24 | core0 { | |
25 | cpu = <&cpu0>; | |
26 | }; | |
27 | core1 { | |
28 | cpu = <&cpu1>; | |
29 | }; | |
30 | }; | |
31 | ||
32 | cluster1 { | |
33 | core0 { | |
34 | cpu = <&cpu2>; | |
35 | }; | |
36 | }; | |
37 | }; | |
38 | ||
39 | cpu0: cpu@0 { | |
40 | device_type = "cpu"; | |
41 | compatible = "arm,cortex-a35"; | |
42 | reg = <0x000>; | |
f5a3d783 | 43 | cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>; |
bdf2cbb2 | 44 | }; |
45 | ||
46 | cpu1: cpu@1 { | |
47 | device_type = "cpu"; | |
48 | compatible = "arm,cortex-a35"; | |
49 | reg = <0x001>; | |
50 | enable-method = "psci"; | |
f5a3d783 | 51 | cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>; |
bdf2cbb2 | 52 | }; |
53 | ||
54 | cpu2: cpu@200 { | |
55 | device_type = "cpu"; | |
56 | compatible = "arm,cortex-a72"; | |
57 | reg = <0x200>; | |
58 | enable-method = "psci"; | |
f5a3d783 JL |
59 | cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>; |
60 | }; | |
61 | ||
62 | idle-states { | |
63 | entry-method = "arm,psci"; | |
64 | ||
65 | CPU_SLEEP_0: cpu-sleep-0 { | |
66 | compatible = "arm,idle-state"; | |
67 | local-timer-stop; | |
68 | entry-latency-us = <100>; | |
69 | exit-latency-us = <80>; | |
70 | min-residency-us = <2000>; | |
71 | arm,psci-suspend-param = <0x0010000>; | |
72 | }; | |
73 | ||
74 | CLUSTER_SLEEP_0: cluster-sleep-0 { | |
75 | compatible = "arm,idle-state"; | |
76 | local-timer-stop; | |
77 | entry-latency-us = <350>; | |
78 | exit-latency-us = <80>; | |
79 | min-residency-us = <3000>; | |
80 | arm,psci-suspend-param = <0x1010000>; | |
81 | }; | |
bdf2cbb2 | 82 | }; |
83 | }; | |
84 | ||
85 | psci { | |
86 | compatible = "arm,psci-0.2"; | |
87 | method = "smc"; | |
88 | }; | |
89 | ||
90 | baud_clk: dummy26m { | |
91 | compatible = "fixed-clock"; | |
92 | clock-frequency = <26000000>; | |
93 | #clock-cells = <0>; | |
94 | }; | |
95 | ||
96 | sys_clk: dummyclk { | |
97 | compatible = "fixed-clock"; | |
98 | clock-frequency = <26000000>; | |
99 | #clock-cells = <0>; | |
100 | }; | |
101 | ||
5d483970 | 102 | clk26m: oscillator@0 { |
103 | compatible = "fixed-clock"; | |
104 | #clock-cells = <0>; | |
105 | clock-frequency = <26000000>; | |
106 | clock-output-names = "clk26m"; | |
107 | }; | |
108 | ||
109 | clk32k: oscillator@1 { | |
110 | compatible = "fixed-clock"; | |
111 | #clock-cells = <0>; | |
112 | clock-frequency = <32768>; | |
113 | clock-output-names = "clk32k"; | |
114 | }; | |
115 | ||
116 | clkfpc: oscillator@2 { | |
117 | compatible = "fixed-clock"; | |
118 | #clock-cells = <0>; | |
119 | clock-frequency = <50000000>; | |
120 | clock-output-names = "clkfpc"; | |
121 | }; | |
122 | ||
123 | clkaud_ext_i_0: oscillator@3 { | |
124 | compatible = "fixed-clock"; | |
125 | #clock-cells = <0>; | |
126 | clock-frequency = <6500000>; | |
127 | clock-output-names = "clkaud_ext_i_0"; | |
128 | }; | |
129 | ||
130 | clkaud_ext_i_1: oscillator@4 { | |
131 | compatible = "fixed-clock"; | |
132 | #clock-cells = <0>; | |
133 | clock-frequency = <196608000>; | |
134 | clock-output-names = "clkaud_ext_i_1"; | |
135 | }; | |
136 | ||
137 | clkaud_ext_i_2: oscillator@5 { | |
138 | compatible = "fixed-clock"; | |
139 | #clock-cells = <0>; | |
140 | clock-frequency = <180633600>; | |
141 | clock-output-names = "clkaud_ext_i_2"; | |
142 | }; | |
143 | ||
bdf2cbb2 | 144 | timer { |
145 | compatible = "arm,armv8-timer"; | |
146 | interrupt-parent = <&gic>; | |
147 | interrupts = <GIC_PPI 13 | |
148 | (GIC_CPU_MASK_RAW(0x13) | IRQ_TYPE_LEVEL_LOW)>, | |
149 | <GIC_PPI 14 | |
150 | (GIC_CPU_MASK_RAW(0x13) | IRQ_TYPE_LEVEL_LOW)>, | |
151 | <GIC_PPI 11 | |
152 | (GIC_CPU_MASK_RAW(0x13) | IRQ_TYPE_LEVEL_LOW)>, | |
153 | <GIC_PPI 10 | |
154 | (GIC_CPU_MASK_RAW(0x13) | IRQ_TYPE_LEVEL_LOW)>; | |
155 | }; | |
156 | ||
5d483970 | 157 | topckgen: syscon@10000000 { |
158 | compatible = "mediatek,mt2712-topckgen", "syscon"; | |
159 | reg = <0 0x10000000 0 0x1000>; | |
160 | #clock-cells = <1>; | |
161 | }; | |
162 | ||
163 | infracfg: syscon@10001000 { | |
164 | compatible = "mediatek,mt2712-infracfg", "syscon"; | |
165 | reg = <0 0x10001000 0 0x1000>; | |
166 | #clock-cells = <1>; | |
167 | }; | |
168 | ||
169 | pericfg: syscon@10003000 { | |
170 | compatible = "mediatek,mt2712-pericfg", "syscon"; | |
171 | reg = <0 0x10003000 0 0x1000>; | |
172 | #clock-cells = <1>; | |
173 | }; | |
174 | ||
bdf2cbb2 | 175 | uart5: serial@1000f000 { |
176 | compatible = "mediatek,mt2712-uart", | |
177 | "mediatek,mt6577-uart"; | |
178 | reg = <0 0x1000f000 0 0x400>; | |
179 | interrupts = <GIC_SPI 127 IRQ_TYPE_LEVEL_LOW>; | |
180 | clocks = <&baud_clk>, <&sys_clk>; | |
181 | clock-names = "baud", "bus"; | |
182 | status = "disabled"; | |
183 | }; | |
184 | ||
5d483970 | 185 | apmixedsys: syscon@10209000 { |
186 | compatible = "mediatek,mt2712-apmixedsys", "syscon"; | |
187 | reg = <0 0x10209000 0 0x1000>; | |
188 | #clock-cells = <1>; | |
189 | }; | |
190 | ||
191 | mcucfg: syscon@10220000 { | |
192 | compatible = "mediatek,mt2712-mcucfg", "syscon"; | |
193 | reg = <0 0x10220000 0 0x1000>; | |
194 | #clock-cells = <1>; | |
195 | }; | |
196 | ||
bdf2cbb2 | 197 | sysirq: interrupt-controller@10220a80 { |
198 | compatible = "mediatek,mt2712-sysirq", | |
199 | "mediatek,mt6577-sysirq"; | |
200 | interrupt-controller; | |
201 | #interrupt-cells = <3>; | |
202 | interrupt-parent = <&gic>; | |
203 | reg = <0 0x10220a80 0 0x40>; | |
204 | }; | |
205 | ||
206 | gic: interrupt-controller@10510000 { | |
207 | compatible = "arm,gic-400"; | |
208 | #interrupt-cells = <3>; | |
209 | interrupt-parent = <&gic>; | |
210 | interrupt-controller; | |
211 | reg = <0 0x10510000 0 0x10000>, | |
212 | <0 0x10520000 0 0x20000>, | |
213 | <0 0x10540000 0 0x20000>, | |
214 | <0 0x10560000 0 0x20000>; | |
215 | interrupts = <GIC_PPI 9 | |
216 | (GIC_CPU_MASK_RAW(0x13) | IRQ_TYPE_LEVEL_HIGH)>; | |
217 | }; | |
218 | ||
219 | uart0: serial@11002000 { | |
220 | compatible = "mediatek,mt2712-uart", | |
221 | "mediatek,mt6577-uart"; | |
222 | reg = <0 0x11002000 0 0x400>; | |
223 | interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_LOW>; | |
224 | clocks = <&baud_clk>, <&sys_clk>; | |
225 | clock-names = "baud", "bus"; | |
226 | status = "disabled"; | |
227 | }; | |
228 | ||
229 | uart1: serial@11003000 { | |
230 | compatible = "mediatek,mt2712-uart", | |
231 | "mediatek,mt6577-uart"; | |
232 | reg = <0 0x11003000 0 0x400>; | |
233 | interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_LOW>; | |
234 | clocks = <&baud_clk>, <&sys_clk>; | |
235 | clock-names = "baud", "bus"; | |
236 | status = "disabled"; | |
237 | }; | |
238 | ||
239 | uart2: serial@11004000 { | |
240 | compatible = "mediatek,mt2712-uart", | |
241 | "mediatek,mt6577-uart"; | |
242 | reg = <0 0x11004000 0 0x400>; | |
243 | interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_LOW>; | |
244 | clocks = <&baud_clk>, <&sys_clk>; | |
245 | clock-names = "baud", "bus"; | |
246 | status = "disabled"; | |
247 | }; | |
248 | ||
249 | uart3: serial@11005000 { | |
250 | compatible = "mediatek,mt2712-uart", | |
251 | "mediatek,mt6577-uart"; | |
252 | reg = <0 0x11005000 0 0x400>; | |
253 | interrupts = <GIC_SPI 94 IRQ_TYPE_LEVEL_LOW>; | |
254 | clocks = <&baud_clk>, <&sys_clk>; | |
255 | clock-names = "baud", "bus"; | |
256 | status = "disabled"; | |
257 | }; | |
258 | ||
259 | uart4: serial@11019000 { | |
260 | compatible = "mediatek,mt2712-uart", | |
261 | "mediatek,mt6577-uart"; | |
262 | reg = <0 0x11019000 0 0x400>; | |
263 | interrupts = <GIC_SPI 126 IRQ_TYPE_LEVEL_LOW>; | |
264 | clocks = <&baud_clk>, <&sys_clk>; | |
265 | clock-names = "baud", "bus"; | |
266 | status = "disabled"; | |
267 | }; | |
5d483970 | 268 | |
269 | mfgcfg: syscon@13000000 { | |
270 | compatible = "mediatek,mt2712-mfgcfg", "syscon"; | |
271 | reg = <0 0x13000000 0 0x1000>; | |
272 | #clock-cells = <1>; | |
273 | }; | |
274 | ||
275 | mmsys: syscon@14000000 { | |
276 | compatible = "mediatek,mt2712-mmsys", "syscon"; | |
277 | reg = <0 0x14000000 0 0x1000>; | |
278 | #clock-cells = <1>; | |
279 | }; | |
280 | ||
281 | imgsys: syscon@15000000 { | |
282 | compatible = "mediatek,mt2712-imgsys", "syscon"; | |
283 | reg = <0 0x15000000 0 0x1000>; | |
284 | #clock-cells = <1>; | |
285 | }; | |
286 | ||
287 | bdpsys: syscon@15010000 { | |
288 | compatible = "mediatek,mt2712-bdpsys", "syscon"; | |
289 | reg = <0 0x15010000 0 0x1000>; | |
290 | #clock-cells = <1>; | |
291 | }; | |
292 | ||
293 | vdecsys: syscon@16000000 { | |
294 | compatible = "mediatek,mt2712-vdecsys", "syscon"; | |
295 | reg = <0 0x16000000 0 0x1000>; | |
296 | #clock-cells = <1>; | |
297 | }; | |
298 | ||
299 | vencsys: syscon@18000000 { | |
300 | compatible = "mediatek,mt2712-vencsys", "syscon"; | |
301 | reg = <0 0x18000000 0 0x1000>; | |
302 | #clock-cells = <1>; | |
303 | }; | |
304 | ||
305 | jpgdecsys: syscon@19000000 { | |
306 | compatible = "mediatek,mt2712-jpgdecsys", "syscon"; | |
307 | reg = <0 0x19000000 0 0x1000>; | |
308 | #clock-cells = <1>; | |
309 | }; | |
bdf2cbb2 | 310 | }; |
311 |