exynos5440.dtsi 7.4 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11
/*
 * SAMSUNG EXYNOS5440 SoC device tree source
 *
 * Copyright (c) 2012 Samsung Electronics Co., Ltd.
 *		http://www.samsung.com
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 as
 * published by the Free Software Foundation.
*/

12
#include <dt-bindings/clock/exynos5440.h>
13
#include "skeleton.dtsi"
14 15

/ {
16
	compatible = "samsung,exynos5440", "samsung,exynos5";
17 18 19

	interrupt-parent = <&gic>;

20
	aliases {
21 22
		serial0 = &serial_0;
		serial1 = &serial_1;
23
		spi0 = &spi_0;
24 25 26
		tmuctrl0 = &tmuctrl_0;
		tmuctrl1 = &tmuctrl_1;
		tmuctrl2 = &tmuctrl_2;
27 28
	};

29
	clock: clock-controller@160000 {
30 31 32 33 34
		compatible = "samsung,exynos5440-clock";
		reg = <0x160000 0x1000>;
		#clock-cells = <1>;
	};

35
	gic: interrupt-controller@2E0000 {
36 37 38
		compatible = "arm,cortex-a15-gic";
		#interrupt-cells = <3>;
		interrupt-controller;
39 40 41 42 43
		reg =	<0x2E1000 0x1000>,
			<0x2E2000 0x1000>,
			<0x2E4000 0x2000>,
			<0x2E6000 0x2000>;
		interrupts = <1 9 0xf04>;
44 45 46
	};

	cpus {
47 48 49
		#address-cells = <1>;
		#size-cells = <0>;

50
		cpu@0 {
51
			device_type = "cpu";
52
			compatible = "arm,cortex-a15";
53
			reg = <0>;
54 55
		};
		cpu@1 {
56
			device_type = "cpu";
57
			compatible = "arm,cortex-a15";
58
			reg = <1>;
59 60
		};
		cpu@2 {
61
			device_type = "cpu";
62
			compatible = "arm,cortex-a15";
63
			reg = <2>;
64 65
		};
		cpu@3 {
66
			device_type = "cpu";
67
			compatible = "arm,cortex-a15";
68
			reg = <3>;
69 70 71
		};
	};

72 73 74 75 76 77 78 79
	arm-pmu {
		compatible = "arm,cortex-a15-pmu", "arm,cortex-a9-pmu";
		interrupts = <0 52 4>,
			     <0 53 4>,
			     <0 54 4>,
			     <0 55 4>;
	};

80 81 82 83 84 85 86 87 88 89
	timer {
		compatible = "arm,cortex-a15-timer",
			     "arm,armv7-timer";
		interrupts = <1 13 0xf08>,
			     <1 14 0xf08>,
			     <1 11 0xf08>,
			     <1 10 0xf08>;
		clock-frequency = <50000000>;
	};

90 91 92 93 94 95
	cpufreq@160000 {
		compatible = "samsung,exynos5440-cpufreq";
		reg = <0x160000 0x1000>;
		interrupts = <0 57 0>;
		operating-points = <
				/* KHz	  uV */
96 97 98
				1500000 1100000
				1400000 1075000
				1300000 1050000
99
				1200000 1025000
100
				1100000 1000000
101
				1000000 975000
102
				900000  950000
103 104 105 106
				800000  925000
		>;
	};

107
	serial_0: serial@B0000 {
108 109 110
		compatible = "samsung,exynos4210-uart";
		reg = <0xB0000 0x1000>;
		interrupts = <0 2 0>;
111
		clocks = <&clock CLK_B_125>, <&clock CLK_B_125>;
112
		clock-names = "uart", "clk_uart_baud0";
113 114
	};

115
	serial_1: serial@C0000 {
116 117 118
		compatible = "samsung,exynos4210-uart";
		reg = <0xC0000 0x1000>;
		interrupts = <0 3 0>;
119
		clocks = <&clock CLK_B_125>, <&clock CLK_B_125>;
120
		clock-names = "uart", "clk_uart_baud0";
121 122
	};

123 124 125
	spi_0: spi@D0000 {
		compatible = "samsung,exynos5440-spi";
		reg = <0xD0000 0x100>;
126 127 128
		interrupts = <0 4 0>;
		#address-cells = <1>;
		#size-cells = <0>;
129 130
		samsung,spi-src-clk = <0>;
		num-cs = <1>;
131
		clocks = <&clock CLK_B_125>, <&clock CLK_SPI_BAUD>;
132
		clock-names = "spi", "spi_busclk0";
133 134
	};

135
	pin_ctrl: pinctrl {
136
		compatible = "samsung,exynos5440-pinctrl";
137
		reg = <0xE0000 0x1000>;
138 139
		interrupts = <0 37 0>, <0 38 0>, <0 39 0>, <0 40 0>,
			     <0 41 0>, <0 42 0>, <0 43 0>, <0 44 0>;
140 141
		interrupt-controller;
		#interrupt-cells = <2>;
142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158
		#gpio-cells = <2>;

		fan: fan {
			samsung,exynos5440-pin-function = <1>;
		};

		hdd_led0: hdd_led0 {
			samsung,exynos5440-pin-function = <2>;
		};

		hdd_led1: hdd_led1 {
			samsung,exynos5440-pin-function = <3>;
		};

		uart1: uart1 {
			samsung,exynos5440-pin-function = <4>;
		};
159 160 161
	};

	i2c@F0000 {
162
		compatible = "samsung,exynos5440-i2c";
163 164 165 166
		reg = <0xF0000 0x1000>;
		interrupts = <0 5 0>;
		#address-cells = <1>;
		#size-cells = <0>;
167
		clocks = <&clock CLK_B_125>;
168
		clock-names = "i2c";
169 170 171
	};

	i2c@100000 {
172
		compatible = "samsung,exynos5440-i2c";
173 174 175 176
		reg = <0x100000 0x1000>;
		interrupts = <0 6 0>;
		#address-cells = <1>;
		#size-cells = <0>;
177
		clocks = <&clock CLK_B_125>;
178
		clock-names = "i2c";
179 180
	};

181
	watchdog@110000 {
182 183 184
		compatible = "samsung,s3c2410-wdt";
		reg = <0x110000 0x1000>;
		interrupts = <0 1 0>;
185
		clocks = <&clock CLK_B_125>;
186
		clock-names = "watchdog";
187 188
	};

189 190 191 192 193 194 195
	gmac: ethernet@00230000 {
		compatible = "snps,dwmac-3.70a";
		reg = <0x00230000 0x8000>;
		interrupt-parent = <&gic>;
		interrupts = <0 31 4>;
		interrupt-names = "macirq";
		phy-mode = "sgmii";
196
		clocks = <&clock CLK_GMAC0>;
197 198 199
		clock-names = "stmmaceth";
	};

200 201 202
	amba {
		#address-cells = <1>;
		#size-cells = <1>;
203
		compatible = "simple-bus";
204 205 206 207 208 209 210
		interrupt-parent = <&gic>;
		ranges;
	};

	rtc {
		compatible = "samsung,s3c6410-rtc";
		reg = <0x130000 0x1000>;
211
		interrupts = <0 17 0>, <0 16 0>;
212
		clocks = <&clock CLK_B_125>;
213
		clock-names = "rtc";
214
	};
215

216 217 218 219
	tmuctrl_0: tmuctrl@160118 {
		compatible = "samsung,exynos5440-tmu";
		reg = <0x160118 0x230>, <0x160368 0x10>;
		interrupts = <0 58 0>;
220
		clocks = <&clock CLK_B_125>;
221
		clock-names = "tmu_apbif";
222
		#include "exynos5440-tmu-sensor-conf.dtsi"
223 224 225 226 227 228
	};

	tmuctrl_1: tmuctrl@16011C {
		compatible = "samsung,exynos5440-tmu";
		reg = <0x16011C 0x230>, <0x160368 0x10>;
		interrupts = <0 58 0>;
229
		clocks = <&clock CLK_B_125>;
230
		clock-names = "tmu_apbif";
231
		#include "exynos5440-tmu-sensor-conf.dtsi"
232 233 234 235 236 237
	};

	tmuctrl_2: tmuctrl@160120 {
		compatible = "samsung,exynos5440-tmu";
		reg = <0x160120 0x230>, <0x160368 0x10>;
		interrupts = <0 58 0>;
238
		clocks = <&clock CLK_B_125>;
239
		clock-names = "tmu_apbif";
240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255
		#include "exynos5440-tmu-sensor-conf.dtsi"
	};

	thermal-zones {
		cpu0_thermal: cpu0-thermal {
			thermal-sensors = <&tmuctrl_0>;
			#include "exynos5440-trip-points.dtsi"
		};
		cpu1_thermal: cpu1-thermal {
		       thermal-sensors = <&tmuctrl_1>;
		       #include "exynos5440-trip-points.dtsi"
		};
		cpu2_thermal: cpu2-thermal {
		       thermal-sensors = <&tmuctrl_2>;
		       #include "exynos5440-trip-points.dtsi"
		};
256 257
	};

258 259 260 261
	sata@210000 {
		compatible = "snps,exynos5440-ahci";
		reg = <0x210000 0x10000>;
		interrupts = <0 30 0>;
262
		clocks = <&clock CLK_SATA>;
263 264 265
		clock-names = "sata";
	};

266 267 268 269
	ohci@220000 {
		compatible = "samsung,exynos5440-ohci";
		reg = <0x220000 0x1000>;
		interrupts = <0 29 0>;
270
		clocks = <&clock CLK_USB>;
271 272 273 274 275 276 277
		clock-names = "usbhost";
	};

	ehci@221000 {
		compatible = "samsung,exynos5440-ehci";
		reg = <0x221000 0x1000>;
		interrupts = <0 29 0>;
278
		clocks = <&clock CLK_USB>;
279
		clock-names = "usbhost";
280
	};
281

282
	pcie_0: pcie@290000 {
283 284 285 286 287
		compatible = "samsung,exynos5440-pcie", "snps,dw-pcie";
		reg = <0x290000 0x1000
			0x270000 0x1000
			0x271000 0x40>;
		interrupts = <0 20 0>, <0 21 0>, <0 22 0>;
288
		clocks = <&clock CLK_PR0_250_O>, <&clock CLK_PB0_250_O>;
289 290 291 292 293 294 295 296 297 298
		clock-names = "pcie", "pcie_bus";
		#address-cells = <3>;
		#size-cells = <2>;
		device_type = "pci";
		ranges = <0x00000800 0 0x40000000 0x40000000 0 0x00001000   /* configuration space */
			  0x81000000 0 0	  0x40001000 0 0x00010000   /* downstream I/O */
			  0x82000000 0 0x40011000 0x40011000 0 0x1ffef000>; /* non-prefetchable memory */
		#interrupt-cells = <1>;
		interrupt-map-mask = <0 0 0 0>;
		interrupt-map = <0x0 0 &gic 53>;
299
		num-lanes = <4>;
300
		status = "disabled";
301 302
	};

303
	pcie_1: pcie@2a0000 {
304 305 306 307 308
		compatible = "samsung,exynos5440-pcie", "snps,dw-pcie";
		reg = <0x2a0000 0x1000
			0x272000 0x1000
			0x271040 0x40>;
		interrupts = <0 23 0>, <0 24 0>, <0 25 0>;
309
		clocks = <&clock CLK_PR1_250_O>, <&clock CLK_PB0_250_O>;
310 311 312 313 314 315 316 317 318 319
		clock-names = "pcie", "pcie_bus";
		#address-cells = <3>;
		#size-cells = <2>;
		device_type = "pci";
		ranges = <0x00000800 0 0x60000000 0x60000000 0 0x00001000   /* configuration space */
			  0x81000000 0 0	  0x60001000 0 0x00010000   /* downstream I/O */
			  0x82000000 0 0x60011000 0x60011000 0 0x1ffef000>; /* non-prefetchable memory */
		#interrupt-cells = <1>;
		interrupt-map-mask = <0 0 0 0>;
		interrupt-map = <0x0 0 &gic 56>;
320
		num-lanes = <4>;
321
		status = "disabled";
322
	};
323
};