1279377Simp/*
2279377Simp * SAMSUNG EXYNOS5440 SoC device tree source
3279377Simp *
4279377Simp * Copyright (c) 2012 Samsung Electronics Co., Ltd.
5279377Simp *		http://www.samsung.com
6279377Simp *
7279377Simp * This program is free software; you can redistribute it and/or modify
8279377Simp * it under the terms of the GNU General Public License version 2 as
9279377Simp * published by the Free Software Foundation.
10279377Simp*/
11279377Simp
12279377Simp#include <dt-bindings/clock/exynos5440.h>
13279377Simp#include "skeleton.dtsi"
14279377Simp
15279377Simp/ {
16279377Simp	compatible = "samsung,exynos5440", "samsung,exynos5";
17279377Simp
18279377Simp	interrupt-parent = <&gic>;
19279377Simp
20279377Simp	aliases {
21279377Simp		serial0 = &serial_0;
22279377Simp		serial1 = &serial_1;
23279377Simp		spi0 = &spi_0;
24279377Simp		tmuctrl0 = &tmuctrl_0;
25279377Simp		tmuctrl1 = &tmuctrl_1;
26279377Simp		tmuctrl2 = &tmuctrl_2;
27279377Simp	};
28279377Simp
29279377Simp	clock: clock-controller@160000 {
30279377Simp		compatible = "samsung,exynos5440-clock";
31279377Simp		reg = <0x160000 0x1000>;
32279377Simp		#clock-cells = <1>;
33279377Simp	};
34279377Simp
35279377Simp	gic: interrupt-controller@2E0000 {
36279377Simp		compatible = "arm,cortex-a15-gic";
37279377Simp		#interrupt-cells = <3>;
38279377Simp		interrupt-controller;
39279377Simp		reg =	<0x2E1000 0x1000>,
40279377Simp			<0x2E2000 0x1000>,
41279377Simp			<0x2E4000 0x2000>,
42279377Simp			<0x2E6000 0x2000>;
43279377Simp		interrupts = <1 9 0xf04>;
44279377Simp	};
45279377Simp
46279377Simp	cpus {
47279377Simp		#address-cells = <1>;
48279377Simp		#size-cells = <0>;
49279377Simp
50279377Simp		cpu@0 {
51279377Simp			device_type = "cpu";
52279377Simp			compatible = "arm,cortex-a15";
53279377Simp			reg = <0>;
54279377Simp		};
55279377Simp		cpu@1 {
56279377Simp			device_type = "cpu";
57279377Simp			compatible = "arm,cortex-a15";
58279377Simp			reg = <1>;
59279377Simp		};
60279377Simp		cpu@2 {
61279377Simp			device_type = "cpu";
62279377Simp			compatible = "arm,cortex-a15";
63279377Simp			reg = <2>;
64279377Simp		};
65279377Simp		cpu@3 {
66279377Simp			device_type = "cpu";
67279377Simp			compatible = "arm,cortex-a15";
68279377Simp			reg = <3>;
69279377Simp		};
70279377Simp	};
71279377Simp
72279377Simp	arm-pmu {
73279377Simp		compatible = "arm,cortex-a15-pmu", "arm,cortex-a9-pmu";
74279377Simp		interrupts = <0 52 4>,
75279377Simp			     <0 53 4>,
76279377Simp			     <0 54 4>,
77279377Simp			     <0 55 4>;
78279377Simp	};
79279377Simp
80279377Simp	timer {
81279377Simp		compatible = "arm,cortex-a15-timer",
82279377Simp			     "arm,armv7-timer";
83279377Simp		interrupts = <1 13 0xf08>,
84279377Simp			     <1 14 0xf08>,
85279377Simp			     <1 11 0xf08>,
86279377Simp			     <1 10 0xf08>;
87279377Simp		clock-frequency = <50000000>;
88279377Simp	};
89279377Simp
90279377Simp	cpufreq@160000 {
91279377Simp		compatible = "samsung,exynos5440-cpufreq";
92279377Simp		reg = <0x160000 0x1000>;
93279377Simp		interrupts = <0 57 0>;
94279377Simp		operating-points = <
95279377Simp				/* KHz	  uV */
96279377Simp				1500000 1100000
97279377Simp				1400000 1075000
98279377Simp				1300000 1050000
99279377Simp				1200000 1025000
100279377Simp				1100000 1000000
101279377Simp				1000000 975000
102279377Simp				900000  950000
103279377Simp				800000  925000
104279377Simp		>;
105279377Simp	};
106279377Simp
107279377Simp	serial_0: serial@B0000 {
108279377Simp		compatible = "samsung,exynos4210-uart";
109279377Simp		reg = <0xB0000 0x1000>;
110279377Simp		interrupts = <0 2 0>;
111279377Simp		clocks = <&clock CLK_B_125>, <&clock CLK_B_125>;
112279377Simp		clock-names = "uart", "clk_uart_baud0";
113279377Simp	};
114279377Simp
115279377Simp	serial_1: serial@C0000 {
116279377Simp		compatible = "samsung,exynos4210-uart";
117279377Simp		reg = <0xC0000 0x1000>;
118279377Simp		interrupts = <0 3 0>;
119279377Simp		clocks = <&clock CLK_B_125>, <&clock CLK_B_125>;
120279377Simp		clock-names = "uart", "clk_uart_baud0";
121279377Simp	};
122279377Simp
123279377Simp	spi_0: spi@D0000 {
124279377Simp		compatible = "samsung,exynos5440-spi";
125279377Simp		reg = <0xD0000 0x100>;
126279377Simp		interrupts = <0 4 0>;
127279377Simp		#address-cells = <1>;
128279377Simp		#size-cells = <0>;
129279377Simp		samsung,spi-src-clk = <0>;
130279377Simp		num-cs = <1>;
131279377Simp		clocks = <&clock CLK_B_125>, <&clock CLK_SPI_BAUD>;
132279377Simp		clock-names = "spi", "spi_busclk0";
133279377Simp	};
134279377Simp
135279377Simp	pin_ctrl: pinctrl {
136279377Simp		compatible = "samsung,exynos5440-pinctrl";
137279377Simp		reg = <0xE0000 0x1000>;
138279377Simp		interrupts = <0 37 0>, <0 38 0>, <0 39 0>, <0 40 0>,
139279377Simp			     <0 41 0>, <0 42 0>, <0 43 0>, <0 44 0>;
140279377Simp		interrupt-controller;
141279377Simp		#interrupt-cells = <2>;
142279377Simp		#gpio-cells = <2>;
143279377Simp
144279377Simp		fan: fan {
145279377Simp			samsung,exynos5440-pin-function = <1>;
146279377Simp		};
147279377Simp
148279377Simp		hdd_led0: hdd_led0 {
149279377Simp			samsung,exynos5440-pin-function = <2>;
150279377Simp		};
151279377Simp
152279377Simp		hdd_led1: hdd_led1 {
153279377Simp			samsung,exynos5440-pin-function = <3>;
154279377Simp		};
155279377Simp
156279377Simp		uart1: uart1 {
157279377Simp			samsung,exynos5440-pin-function = <4>;
158279377Simp		};
159279377Simp	};
160279377Simp
161279377Simp	i2c@F0000 {
162279377Simp		compatible = "samsung,exynos5440-i2c";
163279377Simp		reg = <0xF0000 0x1000>;
164279377Simp		interrupts = <0 5 0>;
165279377Simp		#address-cells = <1>;
166279377Simp		#size-cells = <0>;
167279377Simp		clocks = <&clock CLK_B_125>;
168279377Simp		clock-names = "i2c";
169279377Simp	};
170279377Simp
171279377Simp	i2c@100000 {
172279377Simp		compatible = "samsung,exynos5440-i2c";
173279377Simp		reg = <0x100000 0x1000>;
174279377Simp		interrupts = <0 6 0>;
175279377Simp		#address-cells = <1>;
176279377Simp		#size-cells = <0>;
177279377Simp		clocks = <&clock CLK_B_125>;
178279377Simp		clock-names = "i2c";
179279377Simp	};
180279377Simp
181279377Simp	watchdog@110000 {
182279377Simp		compatible = "samsung,s3c2410-wdt";
183279377Simp		reg = <0x110000 0x1000>;
184279377Simp		interrupts = <0 1 0>;
185279377Simp		clocks = <&clock CLK_B_125>;
186279377Simp		clock-names = "watchdog";
187279377Simp	};
188279377Simp
189279377Simp	gmac: ethernet@00230000 {
190279377Simp		compatible = "snps,dwmac-3.70a";
191279377Simp		reg = <0x00230000 0x8000>;
192279377Simp		interrupt-parent = <&gic>;
193279377Simp		interrupts = <0 31 4>;
194279377Simp		interrupt-names = "macirq";
195279377Simp		phy-mode = "sgmii";
196279377Simp		clocks = <&clock CLK_GMAC0>;
197279377Simp		clock-names = "stmmaceth";
198279377Simp	};
199279377Simp
200279377Simp	amba {
201279377Simp		#address-cells = <1>;
202279377Simp		#size-cells = <1>;
203279377Simp		compatible = "arm,amba-bus";
204279377Simp		interrupt-parent = <&gic>;
205279377Simp		ranges;
206279377Simp	};
207279377Simp
208279377Simp	rtc {
209279377Simp		compatible = "samsung,s3c6410-rtc";
210279377Simp		reg = <0x130000 0x1000>;
211279377Simp		interrupts = <0 17 0>, <0 16 0>;
212279377Simp		clocks = <&clock CLK_B_125>;
213279377Simp		clock-names = "rtc";
214279377Simp	};
215279377Simp
216279377Simp	tmuctrl_0: tmuctrl@160118 {
217279377Simp		compatible = "samsung,exynos5440-tmu";
218279377Simp		reg = <0x160118 0x230>, <0x160368 0x10>;
219279377Simp		interrupts = <0 58 0>;
220279377Simp		clocks = <&clock CLK_B_125>;
221279377Simp		clock-names = "tmu_apbif";
222295436Sandrew		#include "exynos5440-tmu-sensor-conf.dtsi"
223279377Simp	};
224279377Simp
225279377Simp	tmuctrl_1: tmuctrl@16011C {
226279377Simp		compatible = "samsung,exynos5440-tmu";
227279377Simp		reg = <0x16011C 0x230>, <0x160368 0x10>;
228279377Simp		interrupts = <0 58 0>;
229279377Simp		clocks = <&clock CLK_B_125>;
230279377Simp		clock-names = "tmu_apbif";
231295436Sandrew		#include "exynos5440-tmu-sensor-conf.dtsi"
232279377Simp	};
233279377Simp
234279377Simp	tmuctrl_2: tmuctrl@160120 {
235279377Simp		compatible = "samsung,exynos5440-tmu";
236279377Simp		reg = <0x160120 0x230>, <0x160368 0x10>;
237279377Simp		interrupts = <0 58 0>;
238279377Simp		clocks = <&clock CLK_B_125>;
239279377Simp		clock-names = "tmu_apbif";
240295436Sandrew		#include "exynos5440-tmu-sensor-conf.dtsi"
241279377Simp	};
242279377Simp
243295436Sandrew	thermal-zones {
244295436Sandrew		cpu0_thermal: cpu0-thermal {
245295436Sandrew			thermal-sensors = <&tmuctrl_0>;
246295436Sandrew			#include "exynos5440-trip-points.dtsi"
247295436Sandrew		};
248295436Sandrew		cpu1_thermal: cpu1-thermal {
249295436Sandrew		       thermal-sensors = <&tmuctrl_1>;
250295436Sandrew		       #include "exynos5440-trip-points.dtsi"
251295436Sandrew		};
252295436Sandrew		cpu2_thermal: cpu2-thermal {
253295436Sandrew		       thermal-sensors = <&tmuctrl_2>;
254295436Sandrew		       #include "exynos5440-trip-points.dtsi"
255295436Sandrew		};
256295436Sandrew	};
257295436Sandrew
258279377Simp	sata@210000 {
259279377Simp		compatible = "snps,exynos5440-ahci";
260279377Simp		reg = <0x210000 0x10000>;
261279377Simp		interrupts = <0 30 0>;
262279377Simp		clocks = <&clock CLK_SATA>;
263279377Simp		clock-names = "sata";
264279377Simp	};
265279377Simp
266279377Simp	ohci@220000 {
267279377Simp		compatible = "samsung,exynos5440-ohci";
268279377Simp		reg = <0x220000 0x1000>;
269279377Simp		interrupts = <0 29 0>;
270279377Simp		clocks = <&clock CLK_USB>;
271279377Simp		clock-names = "usbhost";
272279377Simp	};
273279377Simp
274279377Simp	ehci@221000 {
275279377Simp		compatible = "samsung,exynos5440-ehci";
276279377Simp		reg = <0x221000 0x1000>;
277279377Simp		interrupts = <0 29 0>;
278279377Simp		clocks = <&clock CLK_USB>;
279279377Simp		clock-names = "usbhost";
280279377Simp	};
281279377Simp
282295436Sandrew	pcie_0: pcie@290000 {
283279377Simp		compatible = "samsung,exynos5440-pcie", "snps,dw-pcie";
284279377Simp		reg = <0x290000 0x1000
285279377Simp			0x270000 0x1000
286279377Simp			0x271000 0x40>;
287279377Simp		interrupts = <0 20 0>, <0 21 0>, <0 22 0>;
288279377Simp		clocks = <&clock CLK_PR0_250_O>, <&clock CLK_PB0_250_O>;
289279377Simp		clock-names = "pcie", "pcie_bus";
290279377Simp		#address-cells = <3>;
291279377Simp		#size-cells = <2>;
292279377Simp		device_type = "pci";
293279377Simp		ranges = <0x00000800 0 0x40000000 0x40000000 0 0x00001000   /* configuration space */
294279377Simp			  0x81000000 0 0	  0x40001000 0 0x00010000   /* downstream I/O */
295279377Simp			  0x82000000 0 0x40011000 0x40011000 0 0x1ffef000>; /* non-prefetchable memory */
296279377Simp		#interrupt-cells = <1>;
297279377Simp		interrupt-map-mask = <0 0 0 0>;
298279377Simp		interrupt-map = <0x0 0 &gic 53>;
299279377Simp		num-lanes = <4>;
300279377Simp		status = "disabled";
301279377Simp	};
302279377Simp
303295436Sandrew	pcie_1: pcie@2a0000 {
304279377Simp		compatible = "samsung,exynos5440-pcie", "snps,dw-pcie";
305279377Simp		reg = <0x2a0000 0x1000
306279377Simp			0x272000 0x1000
307279377Simp			0x271040 0x40>;
308279377Simp		interrupts = <0 23 0>, <0 24 0>, <0 25 0>;
309279377Simp		clocks = <&clock CLK_PR1_250_O>, <&clock CLK_PB0_250_O>;
310279377Simp		clock-names = "pcie", "pcie_bus";
311279377Simp		#address-cells = <3>;
312279377Simp		#size-cells = <2>;
313279377Simp		device_type = "pci";
314279377Simp		ranges = <0x00000800 0 0x60000000 0x60000000 0 0x00001000   /* configuration space */
315279377Simp			  0x81000000 0 0	  0x60001000 0 0x00010000   /* downstream I/O */
316279377Simp			  0x82000000 0 0x60011000 0x60011000 0 0x1ffef000>; /* non-prefetchable memory */
317279377Simp		#interrupt-cells = <1>;
318279377Simp		interrupt-map-mask = <0 0 0 0>;
319279377Simp		interrupt-map = <0x0 0 &gic 56>;
320279377Simp		num-lanes = <4>;
321279377Simp		status = "disabled";
322279377Simp	};
323279377Simp};
324