blob: 44257aff35b98af2e50e5b1d29c9812f5759858c [file] [log] [blame]
Masahiro Yamada7bdd1552016-03-18 16:41:48 +09001/*
Masahiro Yamada52159d22016-10-07 16:43:00 +09002 * Device Tree Source for UniPhier LD20 SoC
Masahiro Yamada7bdd1552016-03-18 16:41:48 +09003 *
Masahiro Yamada52159d22016-10-07 16:43:00 +09004 * Copyright (C) 2015-2016 Socionext Inc.
5 * Author: Masahiro Yamada <yamada.masahiro@socionext.com>
Masahiro Yamada7bdd1552016-03-18 16:41:48 +09006 *
Masahiro Yamadad9403002017-06-22 16:46:40 +09007 * SPDX-License-Identifier: (GPL-2.0+ OR MIT)
Masahiro Yamada7bdd1552016-03-18 16:41:48 +09008 */
9
Masahiro Yamadad9403002017-06-22 16:46:40 +090010/memreserve/ 0x80000000 0x02000000;
Masahiro Yamadac4adc502016-06-29 19:38:56 +090011
Masahiro Yamada7bdd1552016-03-18 16:41:48 +090012/ {
Masahiro Yamada52159d22016-10-07 16:43:00 +090013 compatible = "socionext,uniphier-ld20";
Masahiro Yamada7bdd1552016-03-18 16:41:48 +090014 #address-cells = <2>;
15 #size-cells = <2>;
16 interrupt-parent = <&gic>;
17
18 cpus {
19 #address-cells = <2>;
20 #size-cells = <0>;
21
22 cpu-map {
23 cluster0 {
24 core0 {
25 cpu = <&cpu0>;
26 };
27 core1 {
28 cpu = <&cpu1>;
29 };
30 };
31
32 cluster1 {
33 core0 {
34 cpu = <&cpu2>;
35 };
36 core1 {
37 cpu = <&cpu3>;
38 };
39 };
40 };
41
42 cpu0: cpu@0 {
43 device_type = "cpu";
44 compatible = "arm,cortex-a72", "arm,armv8";
45 reg = <0 0x000>;
Masahiro Yamadacd622142016-12-05 18:31:39 +090046 clocks = <&sys_clk 32>;
47 enable-method = "psci";
48 operating-points-v2 = <&cluster0_opp>;
Masahiro Yamada7bdd1552016-03-18 16:41:48 +090049 };
50
51 cpu1: cpu@1 {
52 device_type = "cpu";
53 compatible = "arm,cortex-a72", "arm,armv8";
54 reg = <0 0x001>;
Masahiro Yamadacd622142016-12-05 18:31:39 +090055 clocks = <&sys_clk 32>;
56 enable-method = "psci";
57 operating-points-v2 = <&cluster0_opp>;
Masahiro Yamada7bdd1552016-03-18 16:41:48 +090058 };
59
60 cpu2: cpu@100 {
61 device_type = "cpu";
62 compatible = "arm,cortex-a53", "arm,armv8";
63 reg = <0 0x100>;
Masahiro Yamadacd622142016-12-05 18:31:39 +090064 clocks = <&sys_clk 33>;
65 enable-method = "psci";
66 operating-points-v2 = <&cluster1_opp>;
Masahiro Yamada7bdd1552016-03-18 16:41:48 +090067 };
68
69 cpu3: cpu@101 {
70 device_type = "cpu";
71 compatible = "arm,cortex-a53", "arm,armv8";
72 reg = <0 0x101>;
Masahiro Yamadacd622142016-12-05 18:31:39 +090073 clocks = <&sys_clk 33>;
74 enable-method = "psci";
75 operating-points-v2 = <&cluster1_opp>;
Masahiro Yamada7bdd1552016-03-18 16:41:48 +090076 };
77 };
78
Masahiro Yamadacd622142016-12-05 18:31:39 +090079 cluster0_opp: opp_table0 {
80 compatible = "operating-points-v2";
81 opp-shared;
82
Masahiro Yamada4e7f8de2017-04-20 16:54:44 +090083 opp-250000000 {
Masahiro Yamadacd622142016-12-05 18:31:39 +090084 opp-hz = /bits/ 64 <250000000>;
85 clock-latency-ns = <300>;
86 };
Masahiro Yamada4e7f8de2017-04-20 16:54:44 +090087 opp-275000000 {
Masahiro Yamadacd622142016-12-05 18:31:39 +090088 opp-hz = /bits/ 64 <275000000>;
89 clock-latency-ns = <300>;
90 };
Masahiro Yamada4e7f8de2017-04-20 16:54:44 +090091 opp-500000000 {
Masahiro Yamadacd622142016-12-05 18:31:39 +090092 opp-hz = /bits/ 64 <500000000>;
93 clock-latency-ns = <300>;
94 };
Masahiro Yamada4e7f8de2017-04-20 16:54:44 +090095 opp-550000000 {
Masahiro Yamadacd622142016-12-05 18:31:39 +090096 opp-hz = /bits/ 64 <550000000>;
97 clock-latency-ns = <300>;
98 };
Masahiro Yamada4e7f8de2017-04-20 16:54:44 +090099 opp-666667000 {
Masahiro Yamadacd622142016-12-05 18:31:39 +0900100 opp-hz = /bits/ 64 <666667000>;
101 clock-latency-ns = <300>;
102 };
Masahiro Yamada4e7f8de2017-04-20 16:54:44 +0900103 opp-733334000 {
Masahiro Yamadacd622142016-12-05 18:31:39 +0900104 opp-hz = /bits/ 64 <733334000>;
105 clock-latency-ns = <300>;
106 };
Masahiro Yamada4e7f8de2017-04-20 16:54:44 +0900107 opp-1000000000 {
Masahiro Yamadacd622142016-12-05 18:31:39 +0900108 opp-hz = /bits/ 64 <1000000000>;
109 clock-latency-ns = <300>;
110 };
Masahiro Yamada4e7f8de2017-04-20 16:54:44 +0900111 opp-1100000000 {
Masahiro Yamadacd622142016-12-05 18:31:39 +0900112 opp-hz = /bits/ 64 <1100000000>;
113 clock-latency-ns = <300>;
114 };
115 };
116
117 cluster1_opp: opp_table1 {
118 compatible = "operating-points-v2";
119 opp-shared;
120
Masahiro Yamada4e7f8de2017-04-20 16:54:44 +0900121 opp-250000000 {
Masahiro Yamadacd622142016-12-05 18:31:39 +0900122 opp-hz = /bits/ 64 <250000000>;
123 clock-latency-ns = <300>;
124 };
Masahiro Yamada4e7f8de2017-04-20 16:54:44 +0900125 opp-275000000 {
Masahiro Yamadacd622142016-12-05 18:31:39 +0900126 opp-hz = /bits/ 64 <275000000>;
127 clock-latency-ns = <300>;
128 };
Masahiro Yamada4e7f8de2017-04-20 16:54:44 +0900129 opp-500000000 {
Masahiro Yamadacd622142016-12-05 18:31:39 +0900130 opp-hz = /bits/ 64 <500000000>;
131 clock-latency-ns = <300>;
132 };
Masahiro Yamada4e7f8de2017-04-20 16:54:44 +0900133 opp-550000000 {
Masahiro Yamadacd622142016-12-05 18:31:39 +0900134 opp-hz = /bits/ 64 <550000000>;
135 clock-latency-ns = <300>;
136 };
Masahiro Yamada4e7f8de2017-04-20 16:54:44 +0900137 opp-666667000 {
Masahiro Yamadacd622142016-12-05 18:31:39 +0900138 opp-hz = /bits/ 64 <666667000>;
139 clock-latency-ns = <300>;
140 };
Masahiro Yamada4e7f8de2017-04-20 16:54:44 +0900141 opp-733334000 {
Masahiro Yamadacd622142016-12-05 18:31:39 +0900142 opp-hz = /bits/ 64 <733334000>;
143 clock-latency-ns = <300>;
144 };
Masahiro Yamada4e7f8de2017-04-20 16:54:44 +0900145 opp-1000000000 {
Masahiro Yamadacd622142016-12-05 18:31:39 +0900146 opp-hz = /bits/ 64 <1000000000>;
147 clock-latency-ns = <300>;
148 };
Masahiro Yamada4e7f8de2017-04-20 16:54:44 +0900149 opp-1100000000 {
Masahiro Yamadacd622142016-12-05 18:31:39 +0900150 opp-hz = /bits/ 64 <1100000000>;
151 clock-latency-ns = <300>;
152 };
153 };
154
155 psci {
156 compatible = "arm,psci-1.0";
157 method = "smc";
158 };
159
Masahiro Yamada7bdd1552016-03-18 16:41:48 +0900160 clocks {
Masahiro Yamadac4adc502016-06-29 19:38:56 +0900161 refclk: ref {
162 compatible = "fixed-clock";
163 #clock-cells = <0>;
164 clock-frequency = <25000000>;
165 };
Masahiro Yamada7bdd1552016-03-18 16:41:48 +0900166 };
167
168 timer {
169 compatible = "arm,armv8-timer";
Masahiro Yamada35343a22016-09-22 07:42:23 +0900170 interrupts = <1 13 4>,
171 <1 14 4>,
172 <1 11 4>,
173 <1 10 4>;
Masahiro Yamada7bdd1552016-03-18 16:41:48 +0900174 };
175
Masahiro Yamada7ad79c12017-03-13 00:16:40 +0900176 soc@0 {
Masahiro Yamada7bdd1552016-03-18 16:41:48 +0900177 compatible = "simple-bus";
178 #address-cells = <1>;
179 #size-cells = <1>;
180 ranges = <0 0 0 0xffffffff>;
181
182 serial0: serial@54006800 {
183 compatible = "socionext,uniphier-uart";
184 status = "disabled";
185 reg = <0x54006800 0x40>;
186 interrupts = <0 33 4>;
187 pinctrl-names = "default";
188 pinctrl-0 = <&pinctrl_uart0>;
Masahiro Yamada35343a22016-09-22 07:42:23 +0900189 clocks = <&peri_clk 0>;
Masahiro Yamadaf1494982016-03-28 21:39:17 +0900190 clock-frequency = <58820000>;
Masahiro Yamada7bdd1552016-03-18 16:41:48 +0900191 };
192
193 serial1: serial@54006900 {
194 compatible = "socionext,uniphier-uart";
195 status = "disabled";
196 reg = <0x54006900 0x40>;
197 interrupts = <0 35 4>;
198 pinctrl-names = "default";
199 pinctrl-0 = <&pinctrl_uart1>;
Masahiro Yamada35343a22016-09-22 07:42:23 +0900200 clocks = <&peri_clk 1>;
Masahiro Yamadaf1494982016-03-28 21:39:17 +0900201 clock-frequency = <58820000>;
Masahiro Yamada7bdd1552016-03-18 16:41:48 +0900202 };
203
204 serial2: serial@54006a00 {
205 compatible = "socionext,uniphier-uart";
206 status = "disabled";
207 reg = <0x54006a00 0x40>;
208 interrupts = <0 37 4>;
209 pinctrl-names = "default";
210 pinctrl-0 = <&pinctrl_uart2>;
Masahiro Yamada35343a22016-09-22 07:42:23 +0900211 clocks = <&peri_clk 2>;
Masahiro Yamadaf1494982016-03-28 21:39:17 +0900212 clock-frequency = <58820000>;
Masahiro Yamada7bdd1552016-03-18 16:41:48 +0900213 };
214
215 serial3: serial@54006b00 {
216 compatible = "socionext,uniphier-uart";
217 status = "disabled";
218 reg = <0x54006b00 0x40>;
219 interrupts = <0 177 4>;
220 pinctrl-names = "default";
221 pinctrl-0 = <&pinctrl_uart3>;
Masahiro Yamada35343a22016-09-22 07:42:23 +0900222 clocks = <&peri_clk 3>;
Masahiro Yamadaf1494982016-03-28 21:39:17 +0900223 clock-frequency = <58820000>;
Masahiro Yamada7bdd1552016-03-18 16:41:48 +0900224 };
225
226 i2c0: i2c@58780000 {
227 compatible = "socionext,uniphier-fi2c";
228 status = "disabled";
229 reg = <0x58780000 0x80>;
230 #address-cells = <1>;
231 #size-cells = <0>;
232 interrupts = <0 41 4>;
233 pinctrl-names = "default";
234 pinctrl-0 = <&pinctrl_i2c0>;
Masahiro Yamadacd622142016-12-05 18:31:39 +0900235 clocks = <&peri_clk 4>;
Masahiro Yamada7bdd1552016-03-18 16:41:48 +0900236 clock-frequency = <100000>;
237 };
238
239 i2c1: i2c@58781000 {
240 compatible = "socionext,uniphier-fi2c";
241 status = "disabled";
242 reg = <0x58781000 0x80>;
243 #address-cells = <1>;
244 #size-cells = <0>;
245 interrupts = <0 42 4>;
246 pinctrl-names = "default";
247 pinctrl-0 = <&pinctrl_i2c1>;
Masahiro Yamadacd622142016-12-05 18:31:39 +0900248 clocks = <&peri_clk 5>;
Masahiro Yamada7bdd1552016-03-18 16:41:48 +0900249 clock-frequency = <100000>;
250 };
251
252 i2c2: i2c@58782000 {
253 compatible = "socionext,uniphier-fi2c";
254 reg = <0x58782000 0x80>;
255 #address-cells = <1>;
256 #size-cells = <0>;
257 interrupts = <0 43 4>;
Masahiro Yamadacd622142016-12-05 18:31:39 +0900258 clocks = <&peri_clk 6>;
Masahiro Yamada7bdd1552016-03-18 16:41:48 +0900259 clock-frequency = <400000>;
260 };
261
262 i2c3: i2c@58783000 {
263 compatible = "socionext,uniphier-fi2c";
264 status = "disabled";
265 reg = <0x58783000 0x80>;
266 #address-cells = <1>;
267 #size-cells = <0>;
268 interrupts = <0 44 4>;
269 pinctrl-names = "default";
270 pinctrl-0 = <&pinctrl_i2c3>;
Masahiro Yamadacd622142016-12-05 18:31:39 +0900271 clocks = <&peri_clk 7>;
Masahiro Yamada7bdd1552016-03-18 16:41:48 +0900272 clock-frequency = <100000>;
273 };
274
275 i2c4: i2c@58784000 {
276 compatible = "socionext,uniphier-fi2c";
277 status = "disabled";
278 reg = <0x58784000 0x80>;
279 #address-cells = <1>;
280 #size-cells = <0>;
281 interrupts = <0 45 4>;
282 pinctrl-names = "default";
283 pinctrl-0 = <&pinctrl_i2c4>;
Masahiro Yamadacd622142016-12-05 18:31:39 +0900284 clocks = <&peri_clk 8>;
Masahiro Yamada7bdd1552016-03-18 16:41:48 +0900285 clock-frequency = <100000>;
286 };
287
288 i2c5: i2c@58785000 {
289 compatible = "socionext,uniphier-fi2c";
290 reg = <0x58785000 0x80>;
291 #address-cells = <1>;
292 #size-cells = <0>;
293 interrupts = <0 25 4>;
Masahiro Yamadacd622142016-12-05 18:31:39 +0900294 clocks = <&peri_clk 9>;
Masahiro Yamada7bdd1552016-03-18 16:41:48 +0900295 clock-frequency = <400000>;
296 };
297
298 system_bus: system-bus@58c00000 {
299 compatible = "socionext,uniphier-system-bus";
300 status = "disabled";
301 reg = <0x58c00000 0x400>;
302 #address-cells = <2>;
303 #size-cells = <1>;
Masahiro Yamadac4adc502016-06-29 19:38:56 +0900304 pinctrl-names = "default";
305 pinctrl-0 = <&pinctrl_system_bus>;
Masahiro Yamada7bdd1552016-03-18 16:41:48 +0900306 };
307
Masahiro Yamadaabb6ac22017-05-15 14:23:46 +0900308 smpctrl@59801000 {
Masahiro Yamada7bdd1552016-03-18 16:41:48 +0900309 compatible = "socionext,uniphier-smpctrl";
310 reg = <0x59801000 0x400>;
311 };
312
Masahiro Yamadacd622142016-12-05 18:31:39 +0900313 sdctrl@59810000 {
314 compatible = "socionext,uniphier-ld20-sdctrl",
Masahiro Yamada35343a22016-09-22 07:42:23 +0900315 "simple-mfd", "syscon";
Masahiro Yamada3d970872016-04-21 14:43:20 +0900316 reg = <0x59810000 0x800>;
Masahiro Yamada35343a22016-09-22 07:42:23 +0900317
Masahiro Yamadacd622142016-12-05 18:31:39 +0900318 sd_clk: clock {
319 compatible = "socionext,uniphier-ld20-sd-clock";
Masahiro Yamada35343a22016-09-22 07:42:23 +0900320 #clock-cells = <1>;
321 };
322
Masahiro Yamadacd622142016-12-05 18:31:39 +0900323 sd_rst: reset {
324 compatible = "socionext,uniphier-ld20-sd-reset";
Masahiro Yamada35343a22016-09-22 07:42:23 +0900325 #reset-cells = <1>;
326 };
327 };
328
329 perictrl@59820000 {
Masahiro Yamadacd622142016-12-05 18:31:39 +0900330 compatible = "socionext,uniphier-ld20-perictrl",
Masahiro Yamada35343a22016-09-22 07:42:23 +0900331 "simple-mfd", "syscon";
332 reg = <0x59820000 0x200>;
333
334 peri_clk: clock {
335 compatible = "socionext,uniphier-ld20-peri-clock";
336 #clock-cells = <1>;
337 };
338
339 peri_rst: reset {
340 compatible = "socionext,uniphier-ld20-peri-reset";
341 #reset-cells = <1>;
342 };
Masahiro Yamada3d970872016-04-21 14:43:20 +0900343 };
344
Masahiro Yamadacd622142016-12-05 18:31:39 +0900345 emmc: sdhc@5a000000 {
Masahiro Yamada7a6139c2017-01-04 20:08:37 +0900346 compatible = "socionext,uniphier-sd4hc", "cdns,sd4hc";
Masahiro Yamadacd622142016-12-05 18:31:39 +0900347 reg = <0x5a000000 0x400>;
348 interrupts = <0 78 4>;
349 pinctrl-names = "default";
350 pinctrl-0 = <&pinctrl_emmc_1v8>;
351 clocks = <&sys_clk 4>;
352 bus-width = <8>;
353 mmc-ddr-1_8v;
354 mmc-hs200-1_8v;
Masahiro Yamada4e7f8de2017-04-20 16:54:44 +0900355 cdns,phy-input-delay-legacy = <4>;
356 cdns,phy-input-delay-mmc-highspeed = <2>;
357 cdns,phy-input-delay-mmc-ddr = <3>;
358 cdns,phy-dll-delay-sdclk = <21>;
359 cdns,phy-dll-delay-sdclk-hsmmc = <21>;
Masahiro Yamadacd622142016-12-05 18:31:39 +0900360 };
361
Masahiro Yamada3d970872016-04-21 14:43:20 +0900362 sd: sdhc@5a400000 {
363 compatible = "socionext,uniphier-sdhc";
364 status = "disabled";
365 reg = <0x5a400000 0x800>;
366 interrupts = <0 76 4>;
367 pinctrl-names = "default";
368 pinctrl-0 = <&pinctrl_sd>;
Masahiro Yamadacd622142016-12-05 18:31:39 +0900369 clocks = <&sd_clk 0>;
Masahiro Yamada52159d22016-10-07 16:43:00 +0900370 reset-names = "host";
Masahiro Yamadacd622142016-12-05 18:31:39 +0900371 resets = <&sd_rst 0>;
Masahiro Yamada3d970872016-04-21 14:43:20 +0900372 bus-width = <4>;
Masahiro Yamadacd622142016-12-05 18:31:39 +0900373 cap-sd-highspeed;
Masahiro Yamada3d970872016-04-21 14:43:20 +0900374 };
375
Masahiro Yamadac4adc502016-06-29 19:38:56 +0900376 soc-glue@5f800000 {
Masahiro Yamadacd622142016-12-05 18:31:39 +0900377 compatible = "socionext,uniphier-ld20-soc-glue",
Masahiro Yamada35343a22016-09-22 07:42:23 +0900378 "simple-mfd", "syscon";
Masahiro Yamadac4adc502016-06-29 19:38:56 +0900379 reg = <0x5f800000 0x2000>;
Masahiro Yamadac4adc502016-06-29 19:38:56 +0900380
381 pinctrl: pinctrl {
382 compatible = "socionext,uniphier-ld20-pinctrl";
Masahiro Yamadac4adc502016-06-29 19:38:56 +0900383 };
Masahiro Yamada7bdd1552016-03-18 16:41:48 +0900384 };
385
Masahiro Yamada1013aef2016-06-29 19:39:02 +0900386 aidet@5fc20000 {
387 compatible = "simple-mfd", "syscon";
388 reg = <0x5fc20000 0x200>;
389 };
390
Masahiro Yamada7bdd1552016-03-18 16:41:48 +0900391 gic: interrupt-controller@5fe00000 {
392 compatible = "arm,gic-v3";
393 reg = <0x5fe00000 0x10000>, /* GICD */
394 <0x5fe80000 0x80000>; /* GICR */
395 interrupt-controller;
396 #interrupt-cells = <3>;
397 interrupts = <1 9 4>;
398 };
Masahiro Yamada35343a22016-09-22 07:42:23 +0900399
400 sysctrl@61840000 {
Masahiro Yamadacd622142016-12-05 18:31:39 +0900401 compatible = "socionext,uniphier-ld20-sysctrl",
Masahiro Yamada35343a22016-09-22 07:42:23 +0900402 "simple-mfd", "syscon";
Masahiro Yamadacd622142016-12-05 18:31:39 +0900403 reg = <0x61840000 0x10000>;
Masahiro Yamada35343a22016-09-22 07:42:23 +0900404
405 sys_clk: clock {
406 compatible = "socionext,uniphier-ld20-clock";
407 #clock-cells = <1>;
408 };
409
410 sys_rst: reset {
411 compatible = "socionext,uniphier-ld20-reset";
412 #reset-cells = <1>;
413 };
414 };
Masahiro Yamadacd622142016-12-05 18:31:39 +0900415
416 usb: usb@65b00000 {
417 compatible = "socionext,uniphier-ld20-dwc3";
418 reg = <0x65b00000 0x1000>;
419 #address-cells = <1>;
420 #size-cells = <1>;
421 ranges;
422 pinctrl-names = "default";
423 pinctrl-0 = <&pinctrl_usb0>, <&pinctrl_usb1>,
424 <&pinctrl_usb2>, <&pinctrl_usb3>;
425 dwc3@65a00000 {
426 compatible = "snps,dwc3";
427 reg = <0x65a00000 0x10000>;
428 interrupts = <0 134 4>;
Masahiro Yamada3444d1d2017-08-13 09:01:17 +0900429 dr_mode = "host";
Masahiro Yamadacd622142016-12-05 18:31:39 +0900430 tx-fifo-resize;
431 };
432 };
433
434 nand: nand@68000000 {
Masahiro Yamada4e7f8de2017-04-20 16:54:44 +0900435 compatible = "socionext,uniphier-denali-nand-v5b";
Masahiro Yamadacd622142016-12-05 18:31:39 +0900436 status = "disabled";
437 reg-names = "nand_data", "denali_reg";
438 reg = <0x68000000 0x20>, <0x68100000 0x1000>;
439 interrupts = <0 65 4>;
440 pinctrl-names = "default";
441 pinctrl-0 = <&pinctrl_nand>;
442 clocks = <&sys_clk 2>;
443 nand-ecc-strength = <8>;
444 };
Masahiro Yamada7bdd1552016-03-18 16:41:48 +0900445 };
446};
447
448/include/ "uniphier-pinctrl.dtsi"