1/*
2 * SAMSUNG EXYNOS7 SoC device tree source
3 *
4 * Copyright (c) 2014 Samsung Electronics Co., Ltd.
5 *		http://www.samsung.com
6 *
7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License version 2 as
9 * published by the Free Software Foundation.
10 */
11
12#include <dt-bindings/clock/exynos7-clk.h>
13#include <dt-bindings/interrupt-controller/arm-gic.h>
14
15/ {
16	compatible = "samsung,exynos7";
17	interrupt-parent = <&gic>;
18	#address-cells = <2>;
19	#size-cells = <2>;
20
21	aliases {
22		pinctrl0 = &pinctrl_alive;
23		pinctrl1 = &pinctrl_bus0;
24		pinctrl2 = &pinctrl_nfc;
25		pinctrl3 = &pinctrl_touch;
26		pinctrl4 = &pinctrl_ff;
27		pinctrl5 = &pinctrl_ese;
28		pinctrl6 = &pinctrl_fsys0;
29		pinctrl7 = &pinctrl_fsys1;
30		pinctrl8 = &pinctrl_bus1;
31		tmuctrl0 = &tmuctrl_0;
32	};
33
34	cpus {
35		#address-cells = <1>;
36		#size-cells = <0>;
37
38		cpu@0 {
39			device_type = "cpu";
40			compatible = "arm,cortex-a57", "arm,armv8";
41			reg = <0x0>;
42			enable-method = "psci";
43		};
44
45		cpu@1 {
46			device_type = "cpu";
47			compatible = "arm,cortex-a57", "arm,armv8";
48			reg = <0x1>;
49			enable-method = "psci";
50		};
51
52		cpu@2 {
53			device_type = "cpu";
54			compatible = "arm,cortex-a57", "arm,armv8";
55			reg = <0x2>;
56			enable-method = "psci";
57		};
58
59		cpu@3 {
60			device_type = "cpu";
61			compatible = "arm,cortex-a57", "arm,armv8";
62			reg = <0x3>;
63			enable-method = "psci";
64		};
65	};
66
67	psci {
68		compatible = "arm,psci-0.2";
69		method = "smc";
70	};
71
72	soc: soc {
73		compatible = "simple-bus";
74		#address-cells = <1>;
75		#size-cells = <1>;
76		ranges = <0 0 0 0x18000000>;
77
78		chipid@10000000 {
79			compatible = "samsung,exynos4210-chipid";
80			reg = <0x10000000 0x100>;
81		};
82
83		fin_pll: xxti {
84			compatible = "fixed-clock";
85			clock-output-names = "fin_pll";
86			#clock-cells = <0>;
87		};
88
89		gic: interrupt-controller@11001000 {
90			compatible = "arm,gic-400";
91			#interrupt-cells = <3>;
92			#address-cells = <0>;
93			interrupt-controller;
94			reg =	<0x11001000 0x1000>,
95				<0x11002000 0x1000>,
96				<0x11004000 0x2000>,
97				<0x11006000 0x2000>;
98		};
99
100		amba {
101			compatible = "simple-bus";
102			#address-cells = <1>;
103			#size-cells = <1>;
104			ranges;
105
106			pdma0: pdma@10E10000 {
107				compatible = "arm,pl330", "arm,primecell";
108				reg = <0x10E10000 0x1000>;
109				interrupts = <0 225 0>;
110				clocks = <&clock_fsys0 ACLK_PDMA0>;
111				clock-names = "apb_pclk";
112				#dma-cells = <1>;
113				#dma-channels = <8>;
114				#dma-requests = <32>;
115			};
116
117			pdma1: pdma@10EB0000 {
118				compatible = "arm,pl330", "arm,primecell";
119				reg = <0x10EB0000 0x1000>;
120				interrupts = <0 226 0>;
121				clocks = <&clock_fsys0 ACLK_PDMA1>;
122				clock-names = "apb_pclk";
123				#dma-cells = <1>;
124				#dma-channels = <8>;
125				#dma-requests = <32>;
126			};
127		};
128
129		clock_topc: clock-controller@10570000 {
130			compatible = "samsung,exynos7-clock-topc";
131			reg = <0x10570000 0x10000>;
132			#clock-cells = <1>;
133		};
134
135		clock_top0: clock-controller@105d0000 {
136			compatible = "samsung,exynos7-clock-top0";
137			reg = <0x105d0000 0xb000>;
138			#clock-cells = <1>;
139			clocks = <&fin_pll>, <&clock_topc DOUT_SCLK_BUS0_PLL>,
140				 <&clock_topc DOUT_SCLK_BUS1_PLL>,
141				 <&clock_topc DOUT_SCLK_CC_PLL>,
142				 <&clock_topc DOUT_SCLK_MFC_PLL>;
143			clock-names = "fin_pll", "dout_sclk_bus0_pll",
144				      "dout_sclk_bus1_pll", "dout_sclk_cc_pll",
145				      "dout_sclk_mfc_pll";
146		};
147
148		clock_top1: clock-controller@105e0000 {
149			compatible = "samsung,exynos7-clock-top1";
150			reg = <0x105e0000 0xb000>;
151			#clock-cells = <1>;
152			clocks = <&fin_pll>, <&clock_topc DOUT_SCLK_BUS0_PLL>,
153				 <&clock_topc DOUT_SCLK_BUS1_PLL>,
154				 <&clock_topc DOUT_SCLK_CC_PLL>,
155				 <&clock_topc DOUT_SCLK_MFC_PLL>;
156			clock-names = "fin_pll", "dout_sclk_bus0_pll",
157				      "dout_sclk_bus1_pll", "dout_sclk_cc_pll",
158				      "dout_sclk_mfc_pll";
159		};
160
161		clock_ccore: clock-controller@105b0000 {
162			compatible = "samsung,exynos7-clock-ccore";
163			reg = <0x105b0000 0xd00>;
164			#clock-cells = <1>;
165			clocks = <&fin_pll>, <&clock_topc DOUT_ACLK_CCORE_133>;
166			clock-names = "fin_pll", "dout_aclk_ccore_133";
167		};
168
169		clock_peric0: clock-controller@13610000 {
170			compatible = "samsung,exynos7-clock-peric0";
171			reg = <0x13610000 0xd00>;
172			#clock-cells = <1>;
173			clocks = <&fin_pll>, <&clock_top0 DOUT_ACLK_PERIC0>,
174				 <&clock_top0 CLK_SCLK_UART0>;
175			clock-names = "fin_pll", "dout_aclk_peric0_66",
176				      "sclk_uart0";
177		};
178
179		clock_peric1: clock-controller@14c80000 {
180			compatible = "samsung,exynos7-clock-peric1";
181			reg = <0x14c80000 0xd00>;
182			#clock-cells = <1>;
183			clocks = <&fin_pll>, <&clock_top0 DOUT_ACLK_PERIC1>,
184				 <&clock_top0 CLK_SCLK_UART1>,
185				 <&clock_top0 CLK_SCLK_UART2>,
186				 <&clock_top0 CLK_SCLK_UART3>;
187			clock-names = "fin_pll", "dout_aclk_peric1_66",
188				      "sclk_uart1", "sclk_uart2", "sclk_uart3";
189		};
190
191		clock_peris: clock-controller@10040000 {
192			compatible = "samsung,exynos7-clock-peris";
193			reg = <0x10040000 0xd00>;
194			#clock-cells = <1>;
195			clocks = <&fin_pll>, <&clock_topc DOUT_ACLK_PERIS>;
196			clock-names = "fin_pll", "dout_aclk_peris_66";
197		};
198
199		clock_fsys0: clock-controller@10e90000 {
200			compatible = "samsung,exynos7-clock-fsys0";
201			reg = <0x10e90000 0xd00>;
202			#clock-cells = <1>;
203			clocks = <&fin_pll>, <&clock_top1 DOUT_ACLK_FSYS0_200>,
204				 <&clock_top1 DOUT_SCLK_MMC2>;
205			clock-names = "fin_pll", "dout_aclk_fsys0_200",
206				      "dout_sclk_mmc2";
207		};
208
209		clock_fsys1: clock-controller@156e0000 {
210			compatible = "samsung,exynos7-clock-fsys1";
211			reg = <0x156e0000 0xd00>;
212			#clock-cells = <1>;
213			clocks = <&fin_pll>, <&clock_top1 DOUT_ACLK_FSYS1_200>,
214				 <&clock_top1 DOUT_SCLK_MMC0>,
215				 <&clock_top1 DOUT_SCLK_MMC1>;
216			clock-names = "fin_pll", "dout_aclk_fsys1_200",
217				      "dout_sclk_mmc0", "dout_sclk_mmc1";
218		};
219
220		serial_0: serial@13630000 {
221			compatible = "samsung,exynos4210-uart";
222			reg = <0x13630000 0x100>;
223			interrupts = <0 440 0>;
224			clocks = <&clock_peric0 PCLK_UART0>,
225				 <&clock_peric0 SCLK_UART0>;
226			clock-names = "uart", "clk_uart_baud0";
227			status = "disabled";
228		};
229
230		serial_1: serial@14c20000 {
231			compatible = "samsung,exynos4210-uart";
232			reg = <0x14c20000 0x100>;
233			interrupts = <0 456 0>;
234			clocks = <&clock_peric1 PCLK_UART1>,
235				 <&clock_peric1 SCLK_UART1>;
236			clock-names = "uart", "clk_uart_baud0";
237			status = "disabled";
238		};
239
240		serial_2: serial@14c30000 {
241			compatible = "samsung,exynos4210-uart";
242			reg = <0x14c30000 0x100>;
243			interrupts = <0 457 0>;
244			clocks = <&clock_peric1 PCLK_UART2>,
245				 <&clock_peric1 SCLK_UART2>;
246			clock-names = "uart", "clk_uart_baud0";
247			status = "disabled";
248		};
249
250		serial_3: serial@14c40000 {
251			compatible = "samsung,exynos4210-uart";
252			reg = <0x14c40000 0x100>;
253			interrupts = <0 458 0>;
254			clocks = <&clock_peric1 PCLK_UART3>,
255				 <&clock_peric1 SCLK_UART3>;
256			clock-names = "uart", "clk_uart_baud0";
257			status = "disabled";
258		};
259
260		pinctrl_alive: pinctrl@10580000 {
261			compatible = "samsung,exynos7-pinctrl";
262			reg = <0x10580000 0x1000>;
263
264			wakeup-interrupt-controller {
265				compatible = "samsung,exynos7-wakeup-eint";
266				interrupt-parent = <&gic>;
267				interrupts = <0 16 0>;
268			};
269		};
270
271		pinctrl_bus0: pinctrl@13470000 {
272			compatible = "samsung,exynos7-pinctrl";
273			reg = <0x13470000 0x1000>;
274			interrupts = <0 383 0>;
275		};
276
277		pinctrl_nfc: pinctrl@14cd0000 {
278			compatible = "samsung,exynos7-pinctrl";
279			reg = <0x14cd0000 0x1000>;
280			interrupts = <0 473 0>;
281		};
282
283		pinctrl_touch: pinctrl@14ce0000 {
284			compatible = "samsung,exynos7-pinctrl";
285			reg = <0x14ce0000 0x1000>;
286			interrupts = <0 474 0>;
287		};
288
289		pinctrl_ff: pinctrl@14c90000 {
290			compatible = "samsung,exynos7-pinctrl";
291			reg = <0x14c90000 0x1000>;
292			interrupts = <0 475 0>;
293		};
294
295		pinctrl_ese: pinctrl@14ca0000 {
296			compatible = "samsung,exynos7-pinctrl";
297			reg = <0x14ca0000 0x1000>;
298			interrupts = <0 476 0>;
299		};
300
301		pinctrl_fsys0: pinctrl@10e60000 {
302			compatible = "samsung,exynos7-pinctrl";
303			reg = <0x10e60000 0x1000>;
304			interrupts = <0 221 0>;
305		};
306
307		pinctrl_fsys1: pinctrl@15690000 {
308			compatible = "samsung,exynos7-pinctrl";
309			reg = <0x15690000 0x1000>;
310			interrupts = <0 203 0>;
311		};
312
313		pinctrl_bus1: pinctrl@14870000 {
314			compatible = "samsung,exynos7-pinctrl";
315			reg = <0x14870000 0x1000>;
316			interrupts = <0 384 0>;
317		};
318
319		hsi2c_0: hsi2c@13640000 {
320			compatible = "samsung,exynos7-hsi2c";
321			reg = <0x13640000 0x1000>;
322			interrupts = <0 441 0>;
323			#address-cells = <1>;
324			#size-cells = <0>;
325			pinctrl-names = "default";
326			pinctrl-0 = <&hs_i2c0_bus>;
327			clocks = <&clock_peric0 PCLK_HSI2C0>;
328			clock-names = "hsi2c";
329			status = "disabled";
330		};
331
332		hsi2c_1: hsi2c@13650000 {
333			compatible = "samsung,exynos7-hsi2c";
334			reg = <0x13650000 0x1000>;
335			interrupts = <0 442 0>;
336			#address-cells = <1>;
337			#size-cells = <0>;
338			pinctrl-names = "default";
339			pinctrl-0 = <&hs_i2c1_bus>;
340			clocks = <&clock_peric0 PCLK_HSI2C1>;
341			clock-names = "hsi2c";
342			status = "disabled";
343		};
344
345		hsi2c_2: hsi2c@14e60000 {
346			compatible = "samsung,exynos7-hsi2c";
347			reg = <0x14e60000 0x1000>;
348			interrupts = <0 459 0>;
349			#address-cells = <1>;
350			#size-cells = <0>;
351			pinctrl-names = "default";
352			pinctrl-0 = <&hs_i2c2_bus>;
353			clocks = <&clock_peric1 PCLK_HSI2C2>;
354			clock-names = "hsi2c";
355			status = "disabled";
356		};
357
358		hsi2c_3: hsi2c@14e70000 {
359			compatible = "samsung,exynos7-hsi2c";
360			reg = <0x14e70000 0x1000>;
361			interrupts = <0 460 0>;
362			#address-cells = <1>;
363			#size-cells = <0>;
364			pinctrl-names = "default";
365			pinctrl-0 = <&hs_i2c3_bus>;
366			clocks = <&clock_peric1 PCLK_HSI2C3>;
367			clock-names = "hsi2c";
368			status = "disabled";
369		};
370
371		hsi2c_4: hsi2c@13660000 {
372			compatible = "samsung,exynos7-hsi2c";
373			reg = <0x13660000 0x1000>;
374			interrupts = <0 443 0>;
375			#address-cells = <1>;
376			#size-cells = <0>;
377			pinctrl-names = "default";
378			pinctrl-0 = <&hs_i2c4_bus>;
379			clocks = <&clock_peric0 PCLK_HSI2C4>;
380			clock-names = "hsi2c";
381			status = "disabled";
382		};
383
384		hsi2c_5: hsi2c@13670000 {
385			compatible = "samsung,exynos7-hsi2c";
386			reg = <0x13670000 0x1000>;
387			interrupts = <0 444 0>;
388			#address-cells = <1>;
389			#size-cells = <0>;
390			pinctrl-names = "default";
391			pinctrl-0 = <&hs_i2c5_bus>;
392			clocks = <&clock_peric0 PCLK_HSI2C5>;
393			clock-names = "hsi2c";
394			status = "disabled";
395		};
396
397		hsi2c_6: hsi2c@14e00000 {
398			compatible = "samsung,exynos7-hsi2c";
399			reg = <0x14e00000 0x1000>;
400			interrupts = <0 461 0>;
401			#address-cells = <1>;
402			#size-cells = <0>;
403			pinctrl-names = "default";
404			pinctrl-0 = <&hs_i2c6_bus>;
405			clocks = <&clock_peric1 PCLK_HSI2C6>;
406			clock-names = "hsi2c";
407			status = "disabled";
408		};
409
410		hsi2c_7: hsi2c@13e10000 {
411			compatible = "samsung,exynos7-hsi2c";
412			reg = <0x13e10000 0x1000>;
413			interrupts = <0 462 0>;
414			#address-cells = <1>;
415			#size-cells = <0>;
416			pinctrl-names = "default";
417			pinctrl-0 = <&hs_i2c7_bus>;
418			clocks = <&clock_peric1 PCLK_HSI2C7>;
419			clock-names = "hsi2c";
420			status = "disabled";
421		};
422
423		hsi2c_8: hsi2c@14e20000 {
424			compatible = "samsung,exynos7-hsi2c";
425			reg = <0x14e20000 0x1000>;
426			interrupts = <0 463 0>;
427			#address-cells = <1>;
428			#size-cells = <0>;
429			pinctrl-names = "default";
430			pinctrl-0 = <&hs_i2c8_bus>;
431			clocks = <&clock_peric1 PCLK_HSI2C8>;
432			clock-names = "hsi2c";
433			status = "disabled";
434		};
435
436		hsi2c_9: hsi2c@13680000 {
437			compatible = "samsung,exynos7-hsi2c";
438			reg = <0x13680000 0x1000>;
439			interrupts = <0 445 0>;
440			#address-cells = <1>;
441			#size-cells = <0>;
442			pinctrl-names = "default";
443			pinctrl-0 = <&hs_i2c9_bus>;
444			clocks = <&clock_peric0 PCLK_HSI2C9>;
445			clock-names = "hsi2c";
446			status = "disabled";
447		};
448
449		hsi2c_10: hsi2c@13690000 {
450			compatible = "samsung,exynos7-hsi2c";
451			reg = <0x13690000 0x1000>;
452			interrupts = <0 446 0>;
453			#address-cells = <1>;
454			#size-cells = <0>;
455			pinctrl-names = "default";
456			pinctrl-0 = <&hs_i2c10_bus>;
457			clocks = <&clock_peric0 PCLK_HSI2C10>;
458			clock-names = "hsi2c";
459			status = "disabled";
460		};
461
462		hsi2c_11: hsi2c@136a0000 {
463			compatible = "samsung,exynos7-hsi2c";
464			reg = <0x136a0000 0x1000>;
465			interrupts = <0 447 0>;
466			#address-cells = <1>;
467			#size-cells = <0>;
468			pinctrl-names = "default";
469			pinctrl-0 = <&hs_i2c11_bus>;
470			clocks = <&clock_peric0 PCLK_HSI2C11>;
471			clock-names = "hsi2c";
472			status = "disabled";
473		};
474
475		timer {
476			compatible = "arm,armv8-timer";
477			interrupts = <GIC_PPI 13
478					(GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>,
479				     <GIC_PPI 14
480					(GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>,
481				     <GIC_PPI 11
482					(GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>,
483				     <GIC_PPI 10
484					(GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>;
485		};
486
487		pmu_system_controller: system-controller@105c0000 {
488			compatible = "samsung,exynos7-pmu", "syscon";
489			reg = <0x105c0000 0x5000>;
490		};
491
492		reboot: syscon-reboot {
493			compatible = "syscon-reboot";
494			regmap = <&pmu_system_controller>;
495			offset = <0x0400>;
496			mask = <0x1>;
497		};
498
499		rtc: rtc@10590000 {
500			compatible = "samsung,s3c6410-rtc";
501			reg = <0x10590000 0x100>;
502			interrupts = <0 355 0>, <0 356 0>;
503			clocks = <&clock_ccore PCLK_RTC>;
504			clock-names = "rtc";
505			status = "disabled";
506		};
507
508		watchdog: watchdog@101d0000 {
509			compatible = "samsung,exynos7-wdt";
510			reg = <0x101d0000 0x100>;
511			interrupts = <0 110 0>;
512			clocks = <&clock_peris PCLK_WDT>;
513			clock-names = "watchdog";
514			samsung,syscon-phandle = <&pmu_system_controller>;
515			status = "disabled";
516		};
517
518		mmc_0: mmc@15740000 {
519			compatible = "samsung,exynos7-dw-mshc-smu";
520			interrupts = <0 201 0>;
521			#address-cells = <1>;
522			#size-cells = <0>;
523			reg = <0x15740000 0x2000>;
524			clocks = <&clock_fsys1 ACLK_MMC0>,
525				 <&clock_top1 CLK_SCLK_MMC0>;
526			clock-names = "biu", "ciu";
527			fifo-depth = <0x40>;
528			status = "disabled";
529		};
530
531		mmc_1: mmc@15750000 {
532			compatible = "samsung,exynos7-dw-mshc";
533			interrupts = <0 202 0>;
534			#address-cells = <1>;
535			#size-cells = <0>;
536			reg = <0x15750000 0x2000>;
537			clocks = <&clock_fsys1 ACLK_MMC1>,
538				 <&clock_top1 CLK_SCLK_MMC1>;
539			clock-names = "biu", "ciu";
540			fifo-depth = <0x40>;
541			status = "disabled";
542		};
543
544		mmc_2: mmc@15560000 {
545			compatible = "samsung,exynos7-dw-mshc-smu";
546			interrupts = <0 216 0>;
547			#address-cells = <1>;
548			#size-cells = <0>;
549			reg = <0x15560000 0x2000>;
550			clocks = <&clock_fsys0 ACLK_MMC2>,
551				 <&clock_top1 CLK_SCLK_MMC2>;
552			clock-names = "biu", "ciu";
553			fifo-depth = <0x40>;
554			status = "disabled";
555		};
556
557		adc: adc@13620000 {
558			compatible = "samsung,exynos7-adc";
559			reg = <0x13620000 0x100>;
560			interrupts = <0 448 0>;
561			clocks = <&clock_peric0 PCLK_ADCIF>;
562			clock-names = "adc";
563			#io-channel-cells = <1>;
564			io-channel-ranges;
565			status = "disabled";
566		};
567
568		pwm: pwm@136c0000 {
569			compatible = "samsung,exynos4210-pwm";
570			reg = <0x136c0000 0x100>;
571			samsung,pwm-outputs = <0>, <1>, <2>, <3>;
572			#pwm-cells = <3>;
573			clocks = <&clock_peric0 PCLK_PWM>;
574			clock-names = "timers";
575		};
576
577		tmuctrl_0: tmu@10060000 {
578			compatible = "samsung,exynos7-tmu";
579			reg = <0x10060000 0x200>;
580			interrupts = <0 108 0>;
581			clocks = <&clock_peris PCLK_TMU>,
582				 <&clock_peris SCLK_TMU>;
583			clock-names = "tmu_apbif", "tmu_sclk";
584			#include "exynos7-tmu-sensor-conf.dtsi"
585		};
586
587		thermal-zones {
588			atlas_thermal: cluster0-thermal {
589				polling-delay-passive = <0>; /* milliseconds */
590				polling-delay = <0>; /* milliseconds */
591				thermal-sensors = <&tmuctrl_0>;
592				#include "exynos7-trip-points.dtsi"
593			};
594		};
595	};
596};
597
598#include "exynos7-pinctrl.dtsi"
599