blob: b0c550e56fdb153a9bf36731ebaff15c93447a6b [file] [log] [blame]
Thomas Abraham0561cea2011-11-02 19:31:15 +09001/*
2 * Samsung's Exynos4210 SoC device tree source
3 *
4 * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd.
5 * http://www.samsung.com
6 * Copyright (c) 2010-2011 Linaro Ltd.
7 * www.linaro.org
8 *
9 * Samsung's Exynos4210 SoC device nodes are listed in this file. Exynos4210
10 * based board files can include this file and provide values for board specfic
11 * bindings.
12 *
13 * Note: This file does not include device nodes for all the controllers in
14 * Exynos4210 SoC. As device tree coverage for Exynos4210 increases, additional
15 * nodes can be added to this file.
16 *
17 * This program is free software; you can redistribute it and/or modify
18 * it under the terms of the GNU General Public License version 2 as
19 * published by the Free Software Foundation.
20*/
21
Padmavathi Venna37992792013-06-18 00:02:08 +090022#include "exynos4.dtsi"
23#include "exynos4210-pinctrl.dtsi"
Lukasz Majewski9843a222015-01-30 08:26:03 +090024#include "exynos4-cpu-thermal.dtsi"
Thomas Abraham0561cea2011-11-02 19:31:15 +090025
26/ {
Sachin Kamat8bdb31b2014-03-21 02:17:22 +090027 compatible = "samsung,exynos4210", "samsung,exynos4";
Thomas Abraham0561cea2011-11-02 19:31:15 +090028
Thomas Abraham4980c392012-07-14 10:45:32 +090029 aliases {
Thomas Abraham87711d82012-09-07 06:14:26 +090030 pinctrl0 = &pinctrl_0;
31 pinctrl1 = &pinctrl_1;
32 pinctrl2 = &pinctrl_2;
Thomas Abraham4980c392012-07-14 10:45:32 +090033 };
34
Bartlomiej Zolnierkiewicze5409202014-09-25 17:40:14 +090035 cpus {
36 #address-cells = <1>;
37 #size-cells = <0>;
38
Lukasz Majewskibf4a0be2015-01-30 08:26:02 +090039 cpu0: cpu@900 {
Bartlomiej Zolnierkiewicze5409202014-09-25 17:40:14 +090040 device_type = "cpu";
41 compatible = "arm,cortex-a9";
42 reg = <0x900>;
Thomas Abraham300bde72015-04-03 18:43:47 +020043 clocks = <&clock CLK_ARM_CLK>;
44 clock-names = "cpu";
45 clock-latency = <160000>;
46
47 operating-points = <
48 1200000 1250000
49 1000000 1150000
50 800000 1075000
51 500000 975000
52 400000 975000
53 200000 950000
54 >;
Lukasz Majewskibf4a0be2015-01-30 08:26:02 +090055 #cooling-cells = <2>; /* min followed by max */
Bartlomiej Zolnierkiewicze5409202014-09-25 17:40:14 +090056 };
57
58 cpu@901 {
59 device_type = "cpu";
60 compatible = "arm,cortex-a9";
61 reg = <0x901>;
Viresh Kumar744ed1c2018-05-25 16:01:53 +053062 clocks = <&clock CLK_ARM_CLK>;
63 clock-names = "cpu";
64 clock-latency = <160000>;
65
66 operating-points = <
67 1200000 1250000
68 1000000 1150000
69 800000 1075000
70 500000 975000
71 400000 975000
72 200000 950000
73 >;
74 #cooling-cells = <2>; /* min followed by max */
Bartlomiej Zolnierkiewicze5409202014-09-25 17:40:14 +090075 };
76 };
77
Krzysztof Kozlowski9c412212015-05-13 19:24:35 +090078 sysram: sysram@02020000 {
Sachin Kamatb3205de2014-05-13 07:13:44 +090079 compatible = "mmio-sram";
80 reg = <0x02020000 0x20000>;
81 #address-cells = <1>;
82 #size-cells = <1>;
83 ranges = <0 0x02020000 0x20000>;
84
85 smp-sysram@0 {
86 compatible = "samsung,exynos4210-sysram";
87 reg = <0x0 0x1000>;
88 };
89
90 smp-sysram@1f000 {
91 compatible = "samsung,exynos4210-sysram-ns";
92 reg = <0x1f000 0x1000>;
93 };
94 };
95
Tomasz Figa91d88f02012-11-22 00:22:09 +090096 pd_lcd1: lcd1-power-domain@10023CA0 {
97 compatible = "samsung,exynos4210-pd";
98 reg = <0x10023CA0 0x20>;
Marek Szyprowski0da65872015-01-24 13:16:15 +090099 #power-domain-cells = <0>;
Tomasz Figa91d88f02012-11-22 00:22:09 +0900100 };
101
Tomasz Figa56b60b82015-01-08 07:54:34 +0100102 l2c: l2-cache-controller@10502000 {
103 compatible = "arm,pl310-cache";
104 reg = <0x10502000 0x1000>;
105 cache-unified;
106 cache-level = <2>;
107 arm,tag-latency = <2 2 1>;
108 arm,data-latency = <2 2 1>;
109 };
110
Krzysztof Kozlowski9c412212015-05-13 19:24:35 +0900111 mct: mct@10050000 {
Thomas Abrahambbd97002013-03-09 16:12:35 +0900112 compatible = "samsung,exynos4210-mct";
113 reg = <0x10050000 0x800>;
Thomas Abrahambbd97002013-03-09 16:12:35 +0900114 interrupt-parent = <&mct_map>;
Tomasz Figa84ee1c152013-12-19 03:17:49 +0900115 interrupts = <0>, <1>, <2>, <3>, <4>, <5>;
Andrzej Hajda1c75a782014-02-26 09:53:30 +0900116 clocks = <&clock CLK_FIN_PLL>, <&clock CLK_MCT>;
Thomas Abraham7ad34332013-03-09 17:11:38 +0900117 clock-names = "fin_pll", "mct";
Thomas Abrahambbd97002013-03-09 16:12:35 +0900118
119 mct_map: mct-map {
Tomasz Figa84ee1c152013-12-19 03:17:49 +0900120 #interrupt-cells = <1>;
Thomas Abrahambbd97002013-03-09 16:12:35 +0900121 #address-cells = <0>;
122 #size-cells = <0>;
Tomasz Figa84ee1c152013-12-19 03:17:49 +0900123 interrupt-map = <0 &gic 0 57 0>,
124 <1 &gic 0 69 0>,
125 <2 &combiner 12 6>,
126 <3 &combiner 12 7>,
127 <4 &gic 0 42 0>,
128 <5 &gic 0 48 0>;
Thomas Abrahambbd97002013-03-09 16:12:35 +0900129 };
130 };
131
Lee Jonese7787aed2013-08-06 03:04:43 +0900132 clock: clock-controller@10030000 {
Thomas Abrahamd8bafc82013-03-09 17:11:33 +0900133 compatible = "samsung,exynos4210-clock";
134 reg = <0x10030000 0x20000>;
135 #clock-cells = <1>;
136 };
137
Thomas Abraham87711d82012-09-07 06:14:26 +0900138 pinctrl_0: pinctrl@11400000 {
Kukjin Kimb533c862013-01-02 16:05:42 -0800139 compatible = "samsung,exynos4210-pinctrl";
Thomas Abraham87711d82012-09-07 06:14:26 +0900140 reg = <0x11400000 0x1000>;
141 interrupts = <0 47 0>;
Thomas Abraham87711d82012-09-07 06:14:26 +0900142 };
143
144 pinctrl_1: pinctrl@11000000 {
Kukjin Kimb533c862013-01-02 16:05:42 -0800145 compatible = "samsung,exynos4210-pinctrl";
Thomas Abraham87711d82012-09-07 06:14:26 +0900146 reg = <0x11000000 0x1000>;
147 interrupts = <0 46 0>;
Thomas Abraham87711d82012-09-07 06:14:26 +0900148
149 wakup_eint: wakeup-interrupt-controller {
150 compatible = "samsung,exynos4210-wakeup-eint";
151 interrupt-parent = <&gic>;
Tomasz Figaa04b07c2012-10-11 10:11:18 +0200152 interrupts = <0 32 0>;
Thomas Abraham87711d82012-09-07 06:14:26 +0900153 };
154 };
155
156 pinctrl_2: pinctrl@03860000 {
Kukjin Kimb533c862013-01-02 16:05:42 -0800157 compatible = "samsung,exynos4210-pinctrl";
Thomas Abraham87711d82012-09-07 06:14:26 +0900158 reg = <0x03860000 0x1000>;
159 };
160
Lukasz Majewski9843a222015-01-30 08:26:03 +0900161 tmu: tmu@100C0000 {
Amit Daniel Kachhap8d4155d2012-10-29 21:18:01 +0900162 compatible = "samsung,exynos4210-tmu";
163 interrupt-parent = <&combiner>;
164 reg = <0x100C0000 0x100>;
165 interrupts = <2 4>;
Andrzej Hajda1c75a782014-02-26 09:53:30 +0900166 clocks = <&clock CLK_TMU_APBIF>;
Sachin Kamate6199af2013-04-23 23:20:19 +0900167 clock-names = "tmu_apbif";
Lukasz Majewski9843a222015-01-30 08:26:03 +0900168 samsung,tmu_gain = <15>;
169 samsung,tmu_reference_voltage = <7>;
Sachin Kamate6199af2013-04-23 23:20:19 +0900170 status = "disabled";
Amit Daniel Kachhap8d4155d2012-10-29 21:18:01 +0900171 };
Sachin Kamat66d302a2013-04-04 13:48:45 +0900172
Lukasz Majewski9843a222015-01-30 08:26:03 +0900173 thermal-zones {
174 cpu_thermal: cpu-thermal {
175 polling-delay-passive = <0>;
176 polling-delay = <0>;
177 thermal-sensors = <&tmu 0>;
178
179 trips {
180 cpu_alert0: cpu-alert-0 {
181 temperature = <85000>; /* millicelsius */
182 };
183 cpu_alert1: cpu-alert-1 {
184 temperature = <100000>; /* millicelsius */
185 };
186 cpu_alert2: cpu-alert-2 {
187 temperature = <110000>; /* millicelsius */
188 };
189 };
190 };
191 };
192
Krzysztof Kozlowski9c412212015-05-13 19:24:35 +0900193 g2d: g2d@12800000 {
Sachin Kamat66d302a2013-04-04 13:48:45 +0900194 compatible = "samsung,s5pv210-g2d";
195 reg = <0x12800000 0x1000>;
196 interrupts = <0 89 0>;
Andrzej Hajda1c75a782014-02-26 09:53:30 +0900197 clocks = <&clock CLK_SCLK_FIMG2D>, <&clock CLK_G2D>;
Sachin Kamat37bf5792013-06-10 17:52:24 +0900198 clock-names = "sclk_fimg2d", "fimg2d";
Marek Szyprowski25cd01b2015-11-25 13:55:26 +0100199 power-domains = <&pd_lcd0>;
Marek Szyprowski71d3a9f2015-06-04 08:09:41 +0900200 iommus = <&sysmmu_g2d>;
Sachin Kamat66d302a2013-04-04 13:48:45 +0900201 };
Sylwester Nawrocki54a88962013-08-06 02:49:45 +0900202
203 camera {
Andrzej Hajda1c75a782014-02-26 09:53:30 +0900204 clocks = <&clock CLK_SCLK_CAM0>, <&clock CLK_SCLK_CAM1>,
205 <&clock CLK_PIXELASYNCM0>, <&clock CLK_PIXELASYNCM1>;
Sylwester Nawrocki54a88962013-08-06 02:49:45 +0900206 clock-names = "sclk_cam0", "sclk_cam1", "pxl_async0", "pxl_async1";
207
208 fimc_0: fimc@11800000 {
209 samsung,pix-limits = <4224 8192 1920 4224>;
210 samsung,mainscaler-ext;
211 samsung,cam-if;
212 };
213
214 fimc_1: fimc@11810000 {
215 samsung,pix-limits = <4224 8192 1920 4224>;
216 samsung,mainscaler-ext;
217 samsung,cam-if;
218 };
219
220 fimc_2: fimc@11820000 {
221 samsung,pix-limits = <4224 8192 1920 4224>;
222 samsung,mainscaler-ext;
223 samsung,lcd-wb;
224 };
225
226 fimc_3: fimc@11830000 {
227 samsung,pix-limits = <1920 8192 1366 1920>;
228 samsung,rotators = <0>;
229 samsung,mainscaler-ext;
230 samsung,lcd-wb;
231 };
232 };
Chanwoo Choi30e0e472015-02-04 08:10:58 +0900233
Marek Szyprowskied80d4c2015-02-04 23:44:16 +0900234 mixer: mixer@12C10000 {
235 clock-names = "mixer", "hdmi", "sclk_hdmi", "vp", "mout_mixer",
236 "sclk_mixer";
237 clocks = <&clock CLK_MIXER>, <&clock CLK_HDMI>,
238 <&clock CLK_SCLK_HDMI>, <&clock CLK_VP>,
239 <&clock CLK_MOUT_MIXER>, <&clock CLK_SCLK_MIXER>;
240 };
241
Chanwoo Choi30e0e472015-02-04 08:10:58 +0900242 ppmu_lcd1: ppmu_lcd1@12240000 {
243 compatible = "samsung,exynos-ppmu";
244 reg = <0x12240000 0x2000>;
245 clocks = <&clock CLK_PPMULCD1>;
246 clock-names = "ppmu";
247 status = "disabled";
248 };
Marek Szyprowski71d3a9f2015-06-04 08:09:41 +0900249
250 sysmmu_g2d: sysmmu@12A20000 {
251 compatible = "samsung,exynos-sysmmu";
252 reg = <0x12A20000 0x1000>;
253 interrupt-parent = <&combiner>;
254 interrupts = <4 7>;
255 clock-names = "sysmmu", "master";
256 clocks = <&clock CLK_SMMU_G2D>, <&clock CLK_G2D>;
257 power-domains = <&pd_lcd0>;
258 #iommu-cells = <0>;
259 };
260
261 sysmmu_fimd1: sysmmu@12220000 {
262 compatible = "samsung,exynos-sysmmu";
263 interrupt-parent = <&combiner>;
264 reg = <0x12220000 0x1000>;
265 interrupts = <5 3>;
266 clock-names = "sysmmu", "master";
267 clocks = <&clock CLK_SMMU_FIMD1>, <&clock CLK_FIMD1>;
268 power-domains = <&pd_lcd1>;
269 #iommu-cells = <0>;
270 };
Chanwoo Choif0ba9ea2016-04-11 12:57:54 +0900271
272 bus_dmc: bus_dmc {
273 compatible = "samsung,exynos-bus";
274 clocks = <&clock CLK_DIV_DMC>;
275 clock-names = "bus";
276 operating-points-v2 = <&bus_dmc_opp_table>;
277 status = "disabled";
278 };
279
280 bus_acp: bus_acp {
281 compatible = "samsung,exynos-bus";
282 clocks = <&clock CLK_DIV_ACP>;
283 clock-names = "bus";
284 operating-points-v2 = <&bus_acp_opp_table>;
285 status = "disabled";
286 };
287
288 bus_peri: bus_peri {
289 compatible = "samsung,exynos-bus";
290 clocks = <&clock CLK_ACLK100>;
291 clock-names = "bus";
292 operating-points-v2 = <&bus_peri_opp_table>;
293 status = "disabled";
294 };
295
296 bus_fsys: bus_fsys {
297 compatible = "samsung,exynos-bus";
298 clocks = <&clock CLK_ACLK133>;
299 clock-names = "bus";
300 operating-points-v2 = <&bus_fsys_opp_table>;
301 status = "disabled";
302 };
303
304 bus_display: bus_display {
305 compatible = "samsung,exynos-bus";
306 clocks = <&clock CLK_ACLK160>;
307 clock-names = "bus";
308 operating-points-v2 = <&bus_display_opp_table>;
309 status = "disabled";
310 };
311
312 bus_lcd0: bus_lcd0 {
313 compatible = "samsung,exynos-bus";
314 clocks = <&clock CLK_ACLK200>;
315 clock-names = "bus";
316 operating-points-v2 = <&bus_leftbus_opp_table>;
317 status = "disabled";
318 };
319
320 bus_leftbus: bus_leftbus {
321 compatible = "samsung,exynos-bus";
322 clocks = <&clock CLK_DIV_GDL>;
323 clock-names = "bus";
324 operating-points-v2 = <&bus_leftbus_opp_table>;
325 status = "disabled";
326 };
327
328 bus_rightbus: bus_rightbus {
329 compatible = "samsung,exynos-bus";
330 clocks = <&clock CLK_DIV_GDR>;
331 clock-names = "bus";
332 operating-points-v2 = <&bus_leftbus_opp_table>;
333 status = "disabled";
334 };
335
336 bus_mfc: bus_mfc {
337 compatible = "samsung,exynos-bus";
338 clocks = <&clock CLK_SCLK_MFC>;
339 clock-names = "bus";
340 operating-points-v2 = <&bus_leftbus_opp_table>;
341 status = "disabled";
342 };
343
344 bus_dmc_opp_table: opp_table1 {
345 compatible = "operating-points-v2";
346 opp-shared;
347
348 opp@134000000 {
349 opp-hz = /bits/ 64 <134000000>;
350 opp-microvolt = <1025000>;
351 };
352 opp@267000000 {
353 opp-hz = /bits/ 64 <267000000>;
354 opp-microvolt = <1050000>;
355 };
356 opp@400000000 {
357 opp-hz = /bits/ 64 <400000000>;
358 opp-microvolt = <1150000>;
359 };
360 };
361
362 bus_acp_opp_table: opp_table2 {
363 compatible = "operating-points-v2";
364 opp-shared;
365
366 opp@134000000 {
367 opp-hz = /bits/ 64 <134000000>;
368 };
369 opp@160000000 {
370 opp-hz = /bits/ 64 <160000000>;
371 };
372 opp@200000000 {
373 opp-hz = /bits/ 64 <200000000>;
374 };
375 };
376
377 bus_peri_opp_table: opp_table3 {
378 compatible = "operating-points-v2";
379 opp-shared;
380
381 opp@5000000 {
382 opp-hz = /bits/ 64 <5000000>;
383 };
384 opp@100000000 {
385 opp-hz = /bits/ 64 <100000000>;
386 };
387 };
388
389 bus_fsys_opp_table: opp_table4 {
390 compatible = "operating-points-v2";
391 opp-shared;
392
393 opp@10000000 {
394 opp-hz = /bits/ 64 <10000000>;
395 };
396 opp@134000000 {
397 opp-hz = /bits/ 64 <134000000>;
398 };
399 };
400
401 bus_display_opp_table: opp_table5 {
402 compatible = "operating-points-v2";
403 opp-shared;
404
405 opp@100000000 {
406 opp-hz = /bits/ 64 <100000000>;
407 };
408 opp@134000000 {
409 opp-hz = /bits/ 64 <134000000>;
410 };
411 opp@160000000 {
412 opp-hz = /bits/ 64 <160000000>;
413 };
414 };
415
416 bus_leftbus_opp_table: opp_table6 {
417 compatible = "operating-points-v2";
418 opp-shared;
419
420 opp@100000000 {
421 opp-hz = /bits/ 64 <100000000>;
422 };
423 opp@160000000 {
424 opp-hz = /bits/ 64 <160000000>;
425 };
426 opp@200000000 {
427 opp-hz = /bits/ 64 <200000000>;
428 };
429 };
Thomas Abraham0561cea2011-11-02 19:31:15 +0900430};
Krzysztof Kozlowski070bb0f2015-04-06 17:06:44 +0200431
432&gic {
433 cpu-offset = <0x8000>;
434};
435
436&combiner {
437 samsung,combiner-nr = <16>;
438 interrupts = <0 0 0>, <0 1 0>, <0 2 0>, <0 3 0>,
439 <0 4 0>, <0 5 0>, <0 6 0>, <0 7 0>,
440 <0 8 0>, <0 9 0>, <0 10 0>, <0 11 0>,
441 <0 12 0>, <0 13 0>, <0 14 0>, <0 15 0>;
442};
443
Marek Szyprowskif99e9a72015-11-26 13:49:47 +0100444&mdma1 {
445 power-domains = <&pd_lcd0>;
446};
447
Krzysztof Kozlowski070bb0f2015-04-06 17:06:44 +0200448&pmu_system_controller {
449 clock-names = "clkout0", "clkout1", "clkout2", "clkout3",
450 "clkout4", "clkout8", "clkout9";
451 clocks = <&clock CLK_OUT_DMC>, <&clock CLK_OUT_TOP>,
452 <&clock CLK_OUT_LEFTBUS>, <&clock CLK_OUT_RIGHTBUS>,
453 <&clock CLK_OUT_CPU>, <&clock CLK_XXTI>, <&clock CLK_XUSBXTI>;
454 #clock-cells = <1>;
455};
Marek Szyprowski0c7e90b52015-11-13 14:29:43 +0100456
457&rotator {
458 power-domains = <&pd_lcd0>;
459};
Marek Szyprowski3398a182015-11-13 14:29:44 +0100460
461&sysmmu_rotator {
462 power-domains = <&pd_lcd0>;
463};