blob: 55509c690328fe824529050bd43aa5c379e1db7a [file] [log] [blame]
Krzysztof Kozlowskicc4637f2017-12-25 11:40:09 +01001// SPDX-License-Identifier: GPL-2.0
Tarek Dakhran107e6aa2014-05-27 06:54:13 +09002/*
3 * SAMSUNG EXYNOS5410 SoC device tree source
4 *
5 * Copyright (c) 2013 Samsung Electronics Co., Ltd.
6 * http://www.samsung.com
7 *
8 * SAMSUNG EXYNOS5410 SoC device nodes are listed in this file.
9 * EXYNOS5410 based board files can include this file and provide
10 * values for board specfic bindings.
Tarek Dakhran107e6aa2014-05-27 06:54:13 +090011 */
12
Krzysztof Kozlowskic9cf9962016-05-08 18:41:57 +020013#include "exynos54xx.dtsi"
Tarek Dakhran107e6aa2014-05-27 06:54:13 +090014#include <dt-bindings/clock/exynos5410.h>
Sylwester Nawrockiad3b5ef2016-09-16 13:22:00 +020015#include <dt-bindings/clock/exynos-audss-clk.h>
Krzysztof Kozlowskie5995e62016-05-31 20:39:02 +020016#include <dt-bindings/interrupt-controller/arm-gic.h>
Tarek Dakhran107e6aa2014-05-27 06:54:13 +090017
18/ {
19 compatible = "samsung,exynos5410", "samsung,exynos5";
20 interrupt-parent = <&gic>;
21
Tomasz Figa1e64f482014-06-26 13:24:35 +020022 aliases {
Hakjoo Kim1eca8252015-03-15 23:00:33 +010023 pinctrl0 = &pinctrl_0;
24 pinctrl1 = &pinctrl_1;
25 pinctrl2 = &pinctrl_2;
26 pinctrl3 = &pinctrl_3;
Tomasz Figa1e64f482014-06-26 13:24:35 +020027 };
28
Tarek Dakhran107e6aa2014-05-27 06:54:13 +090029 cpus {
30 #address-cells = <1>;
31 #size-cells = <0>;
32
Krzysztof Kozlowskic37ccce2016-05-03 13:56:51 +020033 cpu0: cpu@0 {
Tarek Dakhran107e6aa2014-05-27 06:54:13 +090034 device_type = "cpu";
35 compatible = "arm,cortex-a15";
36 reg = <0x0>;
Andreas Faerber22298d62014-07-08 08:17:14 +090037 clock-frequency = <1600000000>;
Tarek Dakhran107e6aa2014-05-27 06:54:13 +090038 };
39
Krzysztof Kozlowskic37ccce2016-05-03 13:56:51 +020040 cpu1: cpu@1 {
Tarek Dakhran107e6aa2014-05-27 06:54:13 +090041 device_type = "cpu";
42 compatible = "arm,cortex-a15";
43 reg = <0x1>;
Andreas Faerber22298d62014-07-08 08:17:14 +090044 clock-frequency = <1600000000>;
Tarek Dakhran107e6aa2014-05-27 06:54:13 +090045 };
46
Krzysztof Kozlowskic37ccce2016-05-03 13:56:51 +020047 cpu2: cpu@2 {
Tarek Dakhran107e6aa2014-05-27 06:54:13 +090048 device_type = "cpu";
49 compatible = "arm,cortex-a15";
50 reg = <0x2>;
Andreas Faerber22298d62014-07-08 08:17:14 +090051 clock-frequency = <1600000000>;
Tarek Dakhran107e6aa2014-05-27 06:54:13 +090052 };
53
Krzysztof Kozlowskic37ccce2016-05-03 13:56:51 +020054 cpu3: cpu@3 {
Tarek Dakhran107e6aa2014-05-27 06:54:13 +090055 device_type = "cpu";
56 compatible = "arm,cortex-a15";
57 reg = <0x3>;
Andreas Faerber22298d62014-07-08 08:17:14 +090058 clock-frequency = <1600000000>;
Tarek Dakhran107e6aa2014-05-27 06:54:13 +090059 };
60 };
61
62 soc: soc {
63 compatible = "simple-bus";
64 #address-cells = <1>;
65 #size-cells = <1>;
66 ranges;
67
Andreas Faerber0a8f5942014-07-29 06:09:56 +090068 pmu_system_controller: system-controller@10040000 {
69 compatible = "samsung,exynos5410-pmu", "syscon";
70 reg = <0x10040000 0x5000>;
Krzysztof Kozlowski2cbc0de2016-05-16 10:26:48 +020071 clock-names = "clkout16";
72 clocks = <&fin_pll>;
73 #clock-cells = <1>;
Andreas Faerber0a8f5942014-07-29 06:09:56 +090074 };
75
Tarek Dakhran107e6aa2014-05-27 06:54:13 +090076 clock: clock-controller@10010000 {
77 compatible = "samsung,exynos5410-clock";
78 reg = <0x10010000 0x30000>;
79 #clock-cells = <1>;
80 };
81
Sylwester Nawrockiad3b5ef2016-09-16 13:22:00 +020082 clock_audss: audss-clock-controller@3810000 {
83 compatible = "samsung,exynos5410-audss-clock";
84 reg = <0x03810000 0x0C>;
85 #clock-cells = <1>;
86 clocks = <&fin_pll>, <&clock CLK_FOUT_EPLL>;
87 clock-names = "pll_ref", "pll_in";
88 };
89
Krzysztof Kozlowskic1a3b062016-05-31 20:39:03 +020090 tmu_cpu0: tmu@10060000 {
91 compatible = "samsung,exynos5420-tmu";
92 reg = <0x10060000 0x100>;
Krzysztof Kozlowski6abdf8d2016-09-16 21:42:49 +020093 interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>;
Krzysztof Kozlowskic1a3b062016-05-31 20:39:03 +020094 clocks = <&clock CLK_TMU>;
95 clock-names = "tmu_apbif";
96 #include "exynos4412-tmu-sensor-conf.dtsi"
97 };
98
99 tmu_cpu1: tmu@10064000 {
100 compatible = "samsung,exynos5420-tmu";
101 reg = <0x10064000 0x100>;
Krzysztof Kozlowski6abdf8d2016-09-16 21:42:49 +0200102 interrupts = <GIC_SPI 183 IRQ_TYPE_LEVEL_HIGH>;
Krzysztof Kozlowskic1a3b062016-05-31 20:39:03 +0200103 clocks = <&clock CLK_TMU>;
104 clock-names = "tmu_apbif";
105 #include "exynos4412-tmu-sensor-conf.dtsi"
106 };
107
108 tmu_cpu2: tmu@10068000 {
109 compatible = "samsung,exynos5420-tmu";
110 reg = <0x10068000 0x100>;
Krzysztof Kozlowski6abdf8d2016-09-16 21:42:49 +0200111 interrupts = <GIC_SPI 184 IRQ_TYPE_LEVEL_HIGH>;
Krzysztof Kozlowskic1a3b062016-05-31 20:39:03 +0200112 clocks = <&clock CLK_TMU>;
113 clock-names = "tmu_apbif";
114 #include "exynos4412-tmu-sensor-conf.dtsi"
115 };
116
117 tmu_cpu3: tmu@1006c000 {
118 compatible = "samsung,exynos5420-tmu";
119 reg = <0x1006c000 0x100>;
Krzysztof Kozlowski6abdf8d2016-09-16 21:42:49 +0200120 interrupts = <GIC_SPI 185 IRQ_TYPE_LEVEL_HIGH>;
Krzysztof Kozlowskic1a3b062016-05-31 20:39:03 +0200121 clocks = <&clock CLK_TMU>;
122 clock-names = "tmu_apbif";
123 #include "exynos4412-tmu-sensor-conf.dtsi"
124 };
125
Tarek Dakhran107e6aa2014-05-27 06:54:13 +0900126 mmc_0: mmc@12200000 {
127 compatible = "samsung,exynos5250-dw-mshc";
128 reg = <0x12200000 0x1000>;
Krzysztof Kozlowski888950b2016-09-16 23:41:59 +0200129 interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>;
Tarek Dakhran107e6aa2014-05-27 06:54:13 +0900130 #address-cells = <1>;
131 #size-cells = <0>;
132 clocks = <&clock CLK_MMC0>, <&clock CLK_SCLK_MMC0>;
133 clock-names = "biu", "ciu";
134 fifo-depth = <0x80>;
135 status = "disabled";
136 };
137
138 mmc_1: mmc@12210000 {
139 compatible = "samsung,exynos5250-dw-mshc";
140 reg = <0x12210000 0x1000>;
Krzysztof Kozlowski888950b2016-09-16 23:41:59 +0200141 interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>;
Tarek Dakhran107e6aa2014-05-27 06:54:13 +0900142 #address-cells = <1>;
143 #size-cells = <0>;
144 clocks = <&clock CLK_MMC1>, <&clock CLK_SCLK_MMC1>;
145 clock-names = "biu", "ciu";
146 fifo-depth = <0x80>;
147 status = "disabled";
148 };
149
150 mmc_2: mmc@12220000 {
151 compatible = "samsung,exynos5250-dw-mshc";
152 reg = <0x12220000 0x1000>;
Krzysztof Kozlowski888950b2016-09-16 23:41:59 +0200153 interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>;
Tarek Dakhran107e6aa2014-05-27 06:54:13 +0900154 #address-cells = <1>;
155 #size-cells = <0>;
156 clocks = <&clock CLK_MMC2>, <&clock CLK_SCLK_MMC2>;
157 clock-names = "biu", "ciu";
158 fifo-depth = <0x80>;
159 status = "disabled";
160 };
161
Hakjoo Kim1eca8252015-03-15 23:00:33 +0100162 pinctrl_0: pinctrl@13400000 {
163 compatible = "samsung,exynos5410-pinctrl";
164 reg = <0x13400000 0x1000>;
Krzysztof Kozlowski888950b2016-09-16 23:41:59 +0200165 interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>;
Hakjoo Kim1eca8252015-03-15 23:00:33 +0100166
167 wakeup-interrupt-controller {
168 compatible = "samsung,exynos4210-wakeup-eint";
169 interrupt-parent = <&gic>;
Krzysztof Kozlowski888950b2016-09-16 23:41:59 +0200170 interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
Hakjoo Kim1eca8252015-03-15 23:00:33 +0100171 };
172 };
173
174 pinctrl_1: pinctrl@14000000 {
175 compatible = "samsung,exynos5410-pinctrl";
176 reg = <0x14000000 0x1000>;
Krzysztof Kozlowski888950b2016-09-16 23:41:59 +0200177 interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>;
Hakjoo Kim1eca8252015-03-15 23:00:33 +0100178 };
179
180 pinctrl_2: pinctrl@10d10000 {
181 compatible = "samsung,exynos5410-pinctrl";
182 reg = <0x10d10000 0x1000>;
Krzysztof Kozlowski888950b2016-09-16 23:41:59 +0200183 interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>;
Hakjoo Kim1eca8252015-03-15 23:00:33 +0100184 };
185
Rob Herring8dccafa2017-10-13 12:54:51 -0500186 pinctrl_3: pinctrl@3860000 {
Hakjoo Kim1eca8252015-03-15 23:00:33 +0100187 compatible = "samsung,exynos5410-pinctrl";
188 reg = <0x03860000 0x1000>;
Krzysztof Kozlowski888950b2016-09-16 23:41:59 +0200189 interrupts = <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>;
Hakjoo Kim1eca8252015-03-15 23:00:33 +0100190 };
Sylwester Nawrockiad3b5ef2016-09-16 13:22:00 +0200191
192 amba {
193 #address-cells = <1>;
194 #size-cells = <1>;
195 compatible = "simple-bus";
196 interrupt-parent = <&gic>;
197 ranges;
198
Krzysztof Kozlowski11d9d512018-02-22 20:11:11 +0100199 pdma0: pdma@121a0000 {
Sylwester Nawrockiad3b5ef2016-09-16 13:22:00 +0200200 compatible = "arm,pl330", "arm,primecell";
Krzysztof Kozlowski11d9d512018-02-22 20:11:11 +0100201 reg = <0x121a0000 0x1000>;
Krzysztof Kozlowski8e35c482016-11-18 14:59:24 +0200202 interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
Sylwester Nawrockiad3b5ef2016-09-16 13:22:00 +0200203 clocks = <&clock CLK_PDMA0>;
204 clock-names = "apb_pclk";
205 #dma-cells = <1>;
206 #dma-channels = <8>;
207 #dma-requests = <32>;
208 };
209
Krzysztof Kozlowski11d9d512018-02-22 20:11:11 +0100210 pdma1: pdma@121b0000 {
Sylwester Nawrockiad3b5ef2016-09-16 13:22:00 +0200211 compatible = "arm,pl330", "arm,primecell";
Krzysztof Kozlowski11d9d512018-02-22 20:11:11 +0100212 reg = <0x121b0000 0x1000>;
Krzysztof Kozlowski8e35c482016-11-18 14:59:24 +0200213 interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
Sylwester Nawrockiad3b5ef2016-09-16 13:22:00 +0200214 clocks = <&clock CLK_PDMA1>;
215 clock-names = "apb_pclk";
216 #dma-cells = <1>;
217 #dma-channels = <8>;
218 #dma-requests = <32>;
219 };
220 };
221
Rob Herring8dccafa2017-10-13 12:54:51 -0500222 audi2s0: i2s@3830000 {
Sylwester Nawrockiad3b5ef2016-09-16 13:22:00 +0200223 compatible = "samsung,exynos5420-i2s";
224 reg = <0x03830000 0x100>;
225 dmas = <&pdma0 10
226 &pdma0 9
227 &pdma0 8>;
228 dma-names = "tx", "rx", "tx-sec";
229 clocks = <&clock_audss EXYNOS_I2S_BUS>,
230 <&clock_audss EXYNOS_I2S_BUS>,
231 <&clock_audss EXYNOS_SCLK_I2S>;
232 clock-names = "iis", "i2s_opclk0", "i2s_opclk1";
233 #clock-cells = <1>;
234 clock-output-names = "i2s_cdclk0";
235 #sound-dai-cells = <1>;
236 samsung,idma-addr = <0x03000000>;
237 pinctrl-names = "default";
238 pinctrl-0 = <&audi2s0_bus>;
239 status = "disabled";
240 };
Tarek Dakhran107e6aa2014-05-27 06:54:13 +0900241 };
Krzysztof Kozlowskic1a3b062016-05-31 20:39:03 +0200242
243 thermal-zones {
244 cpu0_thermal: cpu0-thermal {
245 thermal-sensors = <&tmu_cpu0>;
246 #include "exynos5420-trip-points.dtsi"
247 };
248 cpu1_thermal: cpu1-thermal {
249 thermal-sensors = <&tmu_cpu1>;
250 #include "exynos5420-trip-points.dtsi"
251 };
252 cpu2_thermal: cpu2-thermal {
253 thermal-sensors = <&tmu_cpu2>;
254 #include "exynos5420-trip-points.dtsi"
255 };
256 cpu3_thermal: cpu3-thermal {
257 thermal-sensors = <&tmu_cpu3>;
258 #include "exynos5420-trip-points.dtsi"
259 };
260 };
Tarek Dakhran107e6aa2014-05-27 06:54:13 +0900261};
Hakjoo Kim1eca8252015-03-15 23:00:33 +0100262
Marian Mihailescuc4f2fc02017-11-23 15:34:30 +0100263&arm_a15_pmu {
264 interrupt-affinity = <&cpu0>, <&cpu1>, <&cpu2>, <&cpu3>;
265 status = "okay";
266};
267
Krzysztof Kozlowskie1e146b12016-05-10 19:30:26 +0200268&i2c_0 {
269 clocks = <&clock CLK_I2C0>;
270 clock-names = "i2c";
271 pinctrl-names = "default";
272 pinctrl-0 = <&i2c0_bus>;
273};
274
275&i2c_1 {
276 clocks = <&clock CLK_I2C1>;
277 clock-names = "i2c";
278 pinctrl-names = "default";
279 pinctrl-0 = <&i2c1_bus>;
280};
281
282&i2c_2 {
283 clocks = <&clock CLK_I2C2>;
284 clock-names = "i2c";
285 pinctrl-names = "default";
286 pinctrl-0 = <&i2c2_bus>;
287};
288
289&i2c_3 {
290 clocks = <&clock CLK_I2C3>;
291 clock-names = "i2c";
292 pinctrl-names = "default";
293 pinctrl-0 = <&i2c3_bus>;
294};
295
296&hsi2c_4 {
297 clocks = <&clock CLK_USI0>;
298 clock-names = "hsi2c";
299 pinctrl-names = "default";
300 pinctrl-0 = <&i2c4_hs_bus>;
301};
302
303&hsi2c_5 {
304 clocks = <&clock CLK_USI1>;
305 clock-names = "hsi2c";
306 pinctrl-names = "default";
307 pinctrl-0 = <&i2c5_hs_bus>;
308};
309
310&hsi2c_6 {
311 clocks = <&clock CLK_USI2>;
312 clock-names = "hsi2c";
313 pinctrl-names = "default";
314 pinctrl-0 = <&i2c6_hs_bus>;
315};
316
317&hsi2c_7 {
318 clocks = <&clock CLK_USI3>;
319 clock-names = "hsi2c";
320 pinctrl-names = "default";
321 pinctrl-0 = <&i2c7_hs_bus>;
322};
323
Krzysztof Kozlowskic9cf9962016-05-08 18:41:57 +0200324&mct {
325 clocks = <&fin_pll>, <&clock CLK_MCT>;
326 clock-names = "fin_pll", "mct";
327};
328
Łukasz Stelmach465def22017-12-11 09:54:15 +0100329&prng {
330 clocks = <&clock CLK_SSS>;
331 clock-names = "secss";
332};
333
Krzysztof Kozlowski88ad58b2016-05-03 14:53:22 +0200334&pwm {
335 clocks = <&clock CLK_PWM>;
336 clock-names = "timers";
337};
338
Krzysztof Kozlowskie1e146b12016-05-10 19:30:26 +0200339&rtc {
340 clocks = <&clock CLK_RTC>;
341 clock-names = "rtc";
Krzysztof Kozlowskie1e146b12016-05-10 19:30:26 +0200342 status = "disabled";
343};
344
Krzysztof Kozlowski88ad58b2016-05-03 14:53:22 +0200345&serial_0 {
346 clocks = <&clock CLK_UART0>, <&clock CLK_SCLK_UART0>;
347 clock-names = "uart", "clk_uart_baud0";
Marek Szyprowski35903122016-12-19 11:00:48 +0100348 dmas = <&pdma0 13>, <&pdma0 14>;
349 dma-names = "rx", "tx";
Krzysztof Kozlowski88ad58b2016-05-03 14:53:22 +0200350};
351
352&serial_1 {
353 clocks = <&clock CLK_UART1>, <&clock CLK_SCLK_UART1>;
354 clock-names = "uart", "clk_uart_baud0";
Marek Szyprowski35903122016-12-19 11:00:48 +0100355 dmas = <&pdma1 15>, <&pdma1 16>;
356 dma-names = "rx", "tx";
Krzysztof Kozlowski88ad58b2016-05-03 14:53:22 +0200357};
358
359&serial_2 {
360 clocks = <&clock CLK_UART2>, <&clock CLK_SCLK_UART2>;
361 clock-names = "uart", "clk_uart_baud0";
Marek Szyprowski35903122016-12-19 11:00:48 +0100362 dmas = <&pdma0 15>, <&pdma0 16>;
363 dma-names = "rx", "tx";
Krzysztof Kozlowski88ad58b2016-05-03 14:53:22 +0200364};
365
366&serial_3 {
Krzysztof Kozlowski594127a2016-05-03 19:37:19 +0200367 clocks = <&clock CLK_UART3>, <&clock CLK_SCLK_UART3>;
368 clock-names = "uart", "clk_uart_baud0";
Marek Szyprowski35903122016-12-19 11:00:48 +0100369 dmas = <&pdma1 17>, <&pdma1 18>;
370 dma-names = "rx", "tx";
Krzysztof Kozlowski88ad58b2016-05-03 14:53:22 +0200371};
372
Krzysztof Kozlowskib8bd7e22016-06-01 11:45:51 +0200373&sss {
374 clocks = <&clock CLK_SSS>;
375 clock-names = "secss";
376};
377
Krzysztof Kozlowski88ad58b2016-05-03 14:53:22 +0200378&sromc {
379 #address-cells = <2>;
380 #size-cells = <1>;
381 ranges = <0 0 0x04000000 0x20000
382 1 0 0x05000000 0x20000
383 2 0 0x06000000 0x20000
384 3 0 0x07000000 0x20000>;
385};
386
Łukasz Stelmach9dc314f2017-12-12 13:09:02 +0100387&trng {
388 clocks = <&clock CLK_SSS>;
389 clock-names = "secss";
390};
391
Krzysztof Kozlowskicb089652016-05-08 19:42:11 +0200392&usbdrd3_0 {
393 clocks = <&clock CLK_USBD300>;
394 clock-names = "usbdrd30";
395};
396
397&usbdrd_phy0 {
398 clocks = <&clock CLK_USBD300>, <&clock CLK_SCLK_USBPHY300>;
399 clock-names = "phy", "ref";
400 samsung,pmu-syscon = <&pmu_system_controller>;
401};
402
403&usbdrd3_1 {
404 clocks = <&clock CLK_USBD301>;
405 clock-names = "usbdrd30";
406};
407
Krzysztof Kozlowskie5995e62016-05-31 20:39:02 +0200408&usbdrd_dwc3_1 {
Krzysztof Kozlowski6abdf8d2016-09-16 21:42:49 +0200409 interrupts = <GIC_SPI 200 IRQ_TYPE_LEVEL_HIGH>;
Krzysztof Kozlowskie5995e62016-05-31 20:39:02 +0200410};
411
Krzysztof Kozlowskicb089652016-05-08 19:42:11 +0200412&usbdrd_phy1 {
413 clocks = <&clock CLK_USBD301>, <&clock CLK_SCLK_USBPHY301>;
414 clock-names = "phy", "ref";
415 samsung,pmu-syscon = <&pmu_system_controller>;
416};
417
418&usbhost1 {
419 clocks = <&clock CLK_USBH20>;
420 clock-names = "usbhost";
421};
422
423&usbhost2 {
424 clocks = <&clock CLK_USBH20>;
425 clock-names = "usbhost";
426};
427
428&usb2_phy {
429 clocks = <&clock CLK_USBH20>, <&clock CLK_SCLK_USBPHY300>;
430 clock-names = "phy", "ref";
431 samsung,sysreg-phandle = <&sysreg_system_controller>;
432 samsung,pmureg-phandle = <&pmu_system_controller>;
433};
434
Krzysztof Kozlowskib8bd7e22016-06-01 11:45:51 +0200435&watchdog {
436 clocks = <&clock CLK_WDT>;
437 clock-names = "watchdog";
438 samsung,syscon-phandle = <&pmu_system_controller>;
439};
440
Hakjoo Kim1eca8252015-03-15 23:00:33 +0100441#include "exynos5410-pinctrl.dtsi"