exynos5440.dtsi 8.8 KB
Newer Older
1
// SPDX-License-Identifier: GPL-2.0
2 3 4 5 6
/*
 * SAMSUNG EXYNOS5440 SoC device tree source
 *
 * Copyright (c) 2012 Samsung Electronics Co., Ltd.
 *		http://www.samsung.com
7
 */
8

9
#include <dt-bindings/clock/exynos5440.h>
10
#include <dt-bindings/interrupt-controller/arm-gic.h>
11
#include <dt-bindings/interrupt-controller/irq.h>
12 13

/ {
14
	compatible = "samsung,exynos5440", "samsung,exynos5";
15 16

	interrupt-parent = <&gic>;
17 18
	#address-cells = <1>;
	#size-cells = <1>;
19

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
		reg =	<0x2E1000 0x1000>,
40
			<0x2E2000 0x2000>,
41 42
			<0x2E4000 0x2000>,
			<0x2E6000 0x2000>;
43 44
		interrupts = <GIC_PPI 9
				(GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
45 46 47
	};

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

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

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

81 82 83
	timer {
		compatible = "arm,cortex-a15-timer",
			     "arm,armv7-timer";
84 85 86 87
		interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
			     <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
			     <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
			     <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
88 89 90
		clock-frequency = <50000000>;
	};

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

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

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

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

136
	pin_ctrl: pinctrl@e0000 {
137
		compatible = "samsung,exynos5440-pinctrl";
138
		reg = <0xE0000 0x1000>;
139 140 141 142 143 144 145 146
		interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>,
			     <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>,
			     <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>,
			     <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>,
			     <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>,
			     <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>,
			     <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>,
			     <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>;
147 148
		interrupt-controller;
		#interrupt-cells = <2>;
149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165
		#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>;
		};
166 167
	};

168
	i2c@f0000 {
169
		compatible = "samsung,exynos5440-i2c";
170
		reg = <0xF0000 0x1000>;
171
		interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>;
172 173
		#address-cells = <1>;
		#size-cells = <0>;
174
		clocks = <&clock CLK_B_125>;
175
		clock-names = "i2c";
176 177 178
	};

	i2c@100000 {
179
		compatible = "samsung,exynos5440-i2c";
180
		reg = <0x100000 0x1000>;
181
		interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>;
182 183
		#address-cells = <1>;
		#size-cells = <0>;
184
		clocks = <&clock CLK_B_125>;
185
		clock-names = "i2c";
186 187
	};

188
	watchdog@110000 {
189
		compatible = "samsung,s3c6410-wdt";
190
		reg = <0x110000 0x1000>;
191
		interrupts = <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
192
		clocks = <&clock CLK_B_125>;
193
		clock-names = "watchdog";
194 195
	};

196
	gmac: ethernet@230000 {
197
		compatible = "snps,dwmac-3.70a", "snps,dwmac";
198 199
		reg = <0x00230000 0x8000>;
		interrupt-parent = <&gic>;
200
		interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>;
201 202
		interrupt-names = "macirq";
		phy-mode = "sgmii";
203
		clocks = <&clock CLK_GMAC0>;
204 205 206
		clock-names = "stmmaceth";
	};

207 208 209
	amba {
		#address-cells = <1>;
		#size-cells = <1>;
210
		compatible = "simple-bus";
211 212 213 214
		interrupt-parent = <&gic>;
		ranges;
	};

215
	rtc@130000 {
216 217
		compatible = "samsung,s3c6410-rtc";
		reg = <0x130000 0x1000>;
218 219
		interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>,
			     <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
220
		clocks = <&clock CLK_B_125>;
221
		clock-names = "rtc";
222
	};
223

224 225 226
	tmuctrl_0: tmuctrl@160118 {
		compatible = "samsung,exynos5440-tmu";
		reg = <0x160118 0x230>, <0x160368 0x10>;
227
		interrupts = <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>;
228
		clocks = <&clock CLK_B_125>;
229
		clock-names = "tmu_apbif";
230
		#include "exynos5440-tmu-sensor-conf.dtsi"
231 232
	};

233
	tmuctrl_1: tmuctrl@16011c {
234 235
		compatible = "samsung,exynos5440-tmu";
		reg = <0x16011C 0x230>, <0x160368 0x10>;
236
		interrupts = <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>;
237
		clocks = <&clock CLK_B_125>;
238
		clock-names = "tmu_apbif";
239
		#include "exynos5440-tmu-sensor-conf.dtsi"
240 241 242 243 244
	};

	tmuctrl_2: tmuctrl@160120 {
		compatible = "samsung,exynos5440-tmu";
		reg = <0x160120 0x230>, <0x160368 0x10>;
245
		interrupts = <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>;
246
		clocks = <&clock CLK_B_125>;
247
		clock-names = "tmu_apbif";
248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263
		#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"
		};
264 265
	};

266 267 268
	sata@210000 {
		compatible = "snps,exynos5440-ahci";
		reg = <0x210000 0x10000>;
269
		interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>;
270
		clocks = <&clock CLK_SATA>;
271 272 273
		clock-names = "sata";
	};

274 275 276
	ohci@220000 {
		compatible = "samsung,exynos5440-ohci";
		reg = <0x220000 0x1000>;
277
		interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
278
		clocks = <&clock CLK_USB>;
279 280 281 282 283 284
		clock-names = "usbhost";
	};

	ehci@221000 {
		compatible = "samsung,exynos5440-ehci";
		reg = <0x221000 0x1000>;
285
		interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
286
		clocks = <&clock CLK_USB>;
287
		clock-names = "usbhost";
288
	};
289

290 291 292 293 294 295 296 297 298 299 300 301
	pcie_phy0: pcie-phy@270000 {
		#phy-cells = <0>;
		compatible = "samsung,exynos5440-pcie-phy";
		reg = <0x270000 0x1000>, <0x271000 0x40>;
	};

	pcie_phy1: pcie-phy@272000 {
		#phy-cells = <0>;
		compatible = "samsung,exynos5440-pcie-phy";
		reg = <0x272000 0x1000>, <0x271040 0x40>;
	};

302
	pcie_0: pcie@290000 {
303
		compatible = "samsung,exynos5440-pcie", "snps,dw-pcie";
304 305
		reg = <0x290000 0x1000>, <0x40000000 0x1000>;
		reg-names = "elbi", "config";
306 307 308
		interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>,
			     <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>,
			     <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>;
309
		clocks = <&clock CLK_PR0_250_O>, <&clock CLK_PB0_250_O>;
310 311 312 313
		clock-names = "pcie", "pcie_bus";
		#address-cells = <3>;
		#size-cells = <2>;
		device_type = "pci";
314 315
		phys = <&pcie_phy0>;
		ranges = <0x81000000 0 0	  0x40001000 0 0x00010000   /* downstream I/O */
316
			  0x82000000 0 0x40011000 0x40011000 0 0x1ffef000>; /* non-prefetchable memory */
317
		bus-range = <0x00 0xff>;
318 319 320
		#interrupt-cells = <1>;
		interrupt-map-mask = <0 0 0 0>;
		interrupt-map = <0x0 0 &gic 53>;
321
		num-lanes = <4>;
322
		status = "disabled";
323 324
	};

325
	pcie_1: pcie@2a0000 {
326
		compatible = "samsung,exynos5440-pcie", "snps,dw-pcie";
327 328
		reg = <0x2a0000 0x1000>, <0x60000000 0x1000>;
		reg-names = "elbi", "config";
329 330 331
		interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>,
			     <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>,
			     <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>;
332
		clocks = <&clock CLK_PR1_250_O>, <&clock CLK_PB0_250_O>;
333 334 335 336
		clock-names = "pcie", "pcie_bus";
		#address-cells = <3>;
		#size-cells = <2>;
		device_type = "pci";
337 338
		phys = <&pcie_phy1>;
		ranges = <0x81000000 0 0	  0x60001000 0 0x00010000   /* downstream I/O */
339
			  0x82000000 0 0x60011000 0x60011000 0 0x1ffef000>; /* non-prefetchable memory */
340
		bus-range = <0x00 0xff>;
341 342 343
		#interrupt-cells = <1>;
		interrupt-map-mask = <0 0 0 0>;
		interrupt-map = <0x0 0 &gic 56>;
344
		num-lanes = <4>;
345
		status = "disabled";
346
	};
347
};