blob: baf23268366f0f73fdaec6bfff5c6a095e1b3704 [file] [log] [blame]
Masahiro Yamada0bc56842018-04-16 12:35:33 +09001// SPDX-License-Identifier: GPL-2.0+ OR MIT
2//
3// Device Tree Source for UniPhier LD20 SoC
4//
5// Copyright (C) 2015-2016 Socionext Inc.
6// Author: Masahiro Yamada <yamada.masahiro@socionext.com>
Masahiro Yamadad89bcf22016-03-18 16:41:48 +09007
Masahiro Yamada6c086d02017-11-25 00:25:35 +09008#include <dt-bindings/gpio/gpio.h>
9#include <dt-bindings/gpio/uniphier-gpio.h>
10#include <dt-bindings/thermal/thermal.h>
11
Masahiro Yamada31a17882017-06-22 16:46:40 +090012/memreserve/ 0x80000000 0x02000000;
Masahiro Yamada1174603f2016-06-29 19:38:56 +090013
Masahiro Yamadad89bcf22016-03-18 16:41:48 +090014/ {
Masahiro Yamada39a67ff2016-10-07 16:43:00 +090015 compatible = "socionext,uniphier-ld20";
Masahiro Yamadad89bcf22016-03-18 16:41:48 +090016 #address-cells = <2>;
17 #size-cells = <2>;
18 interrupt-parent = <&gic>;
19
20 cpus {
21 #address-cells = <2>;
22 #size-cells = <0>;
23
24 cpu-map {
25 cluster0 {
26 core0 {
27 cpu = <&cpu0>;
28 };
29 core1 {
30 cpu = <&cpu1>;
31 };
32 };
33
34 cluster1 {
35 core0 {
36 cpu = <&cpu2>;
37 };
38 core1 {
39 cpu = <&cpu3>;
40 };
41 };
42 };
43
44 cpu0: cpu@0 {
45 device_type = "cpu";
Masahiro Yamadac9026882019-04-12 18:55:50 +090046 compatible = "arm,cortex-a72";
Masahiro Yamadad89bcf22016-03-18 16:41:48 +090047 reg = <0 0x000>;
Masahiro Yamada6e485b22016-12-05 18:31:39 +090048 clocks = <&sys_clk 32>;
49 enable-method = "psci";
50 operating-points-v2 = <&cluster0_opp>;
Masahiro Yamada6c086d02017-11-25 00:25:35 +090051 #cooling-cells = <2>;
Masahiro Yamadad89bcf22016-03-18 16:41:48 +090052 };
53
54 cpu1: cpu@1 {
55 device_type = "cpu";
Masahiro Yamadac9026882019-04-12 18:55:50 +090056 compatible = "arm,cortex-a72";
Masahiro Yamadad89bcf22016-03-18 16:41:48 +090057 reg = <0 0x001>;
Masahiro Yamada6e485b22016-12-05 18:31:39 +090058 clocks = <&sys_clk 32>;
59 enable-method = "psci";
60 operating-points-v2 = <&cluster0_opp>;
Masahiro Yamada5ac92d82018-09-10 12:58:32 +090061 #cooling-cells = <2>;
Masahiro Yamadad89bcf22016-03-18 16:41:48 +090062 };
63
64 cpu2: cpu@100 {
65 device_type = "cpu";
Masahiro Yamadac9026882019-04-12 18:55:50 +090066 compatible = "arm,cortex-a53";
Masahiro Yamadad89bcf22016-03-18 16:41:48 +090067 reg = <0 0x100>;
Masahiro Yamada6e485b22016-12-05 18:31:39 +090068 clocks = <&sys_clk 33>;
69 enable-method = "psci";
70 operating-points-v2 = <&cluster1_opp>;
Masahiro Yamada6c086d02017-11-25 00:25:35 +090071 #cooling-cells = <2>;
Masahiro Yamadad89bcf22016-03-18 16:41:48 +090072 };
73
74 cpu3: cpu@101 {
75 device_type = "cpu";
Masahiro Yamadac9026882019-04-12 18:55:50 +090076 compatible = "arm,cortex-a53";
Masahiro Yamadad89bcf22016-03-18 16:41:48 +090077 reg = <0 0x101>;
Masahiro Yamada6e485b22016-12-05 18:31:39 +090078 clocks = <&sys_clk 33>;
79 enable-method = "psci";
80 operating-points-v2 = <&cluster1_opp>;
Masahiro Yamada5ac92d82018-09-10 12:58:32 +090081 #cooling-cells = <2>;
Masahiro Yamadad89bcf22016-03-18 16:41:48 +090082 };
83 };
84
Masahiro Yamada6c086d02017-11-25 00:25:35 +090085 cluster0_opp: opp-table0 {
Masahiro Yamada6e485b22016-12-05 18:31:39 +090086 compatible = "operating-points-v2";
87 opp-shared;
88
Masahiro Yamada552acbf2017-04-20 16:54:44 +090089 opp-250000000 {
Masahiro Yamada6e485b22016-12-05 18:31:39 +090090 opp-hz = /bits/ 64 <250000000>;
91 clock-latency-ns = <300>;
92 };
Masahiro Yamada552acbf2017-04-20 16:54:44 +090093 opp-275000000 {
Masahiro Yamada6e485b22016-12-05 18:31:39 +090094 opp-hz = /bits/ 64 <275000000>;
95 clock-latency-ns = <300>;
96 };
Masahiro Yamada552acbf2017-04-20 16:54:44 +090097 opp-500000000 {
Masahiro Yamada6e485b22016-12-05 18:31:39 +090098 opp-hz = /bits/ 64 <500000000>;
99 clock-latency-ns = <300>;
100 };
Masahiro Yamada552acbf2017-04-20 16:54:44 +0900101 opp-550000000 {
Masahiro Yamada6e485b22016-12-05 18:31:39 +0900102 opp-hz = /bits/ 64 <550000000>;
103 clock-latency-ns = <300>;
104 };
Masahiro Yamada552acbf2017-04-20 16:54:44 +0900105 opp-666667000 {
Masahiro Yamada6e485b22016-12-05 18:31:39 +0900106 opp-hz = /bits/ 64 <666667000>;
107 clock-latency-ns = <300>;
108 };
Masahiro Yamada552acbf2017-04-20 16:54:44 +0900109 opp-733334000 {
Masahiro Yamada6e485b22016-12-05 18:31:39 +0900110 opp-hz = /bits/ 64 <733334000>;
111 clock-latency-ns = <300>;
112 };
Masahiro Yamada552acbf2017-04-20 16:54:44 +0900113 opp-1000000000 {
Masahiro Yamada6e485b22016-12-05 18:31:39 +0900114 opp-hz = /bits/ 64 <1000000000>;
115 clock-latency-ns = <300>;
116 };
Masahiro Yamada552acbf2017-04-20 16:54:44 +0900117 opp-1100000000 {
Masahiro Yamada6e485b22016-12-05 18:31:39 +0900118 opp-hz = /bits/ 64 <1100000000>;
119 clock-latency-ns = <300>;
120 };
121 };
122
Masahiro Yamada6c086d02017-11-25 00:25:35 +0900123 cluster1_opp: opp-table1 {
Masahiro Yamada6e485b22016-12-05 18:31:39 +0900124 compatible = "operating-points-v2";
125 opp-shared;
126
Masahiro Yamada552acbf2017-04-20 16:54:44 +0900127 opp-250000000 {
Masahiro Yamada6e485b22016-12-05 18:31:39 +0900128 opp-hz = /bits/ 64 <250000000>;
129 clock-latency-ns = <300>;
130 };
Masahiro Yamada552acbf2017-04-20 16:54:44 +0900131 opp-275000000 {
Masahiro Yamada6e485b22016-12-05 18:31:39 +0900132 opp-hz = /bits/ 64 <275000000>;
133 clock-latency-ns = <300>;
134 };
Masahiro Yamada552acbf2017-04-20 16:54:44 +0900135 opp-500000000 {
Masahiro Yamada6e485b22016-12-05 18:31:39 +0900136 opp-hz = /bits/ 64 <500000000>;
137 clock-latency-ns = <300>;
138 };
Masahiro Yamada552acbf2017-04-20 16:54:44 +0900139 opp-550000000 {
Masahiro Yamada6e485b22016-12-05 18:31:39 +0900140 opp-hz = /bits/ 64 <550000000>;
141 clock-latency-ns = <300>;
142 };
Masahiro Yamada552acbf2017-04-20 16:54:44 +0900143 opp-666667000 {
Masahiro Yamada6e485b22016-12-05 18:31:39 +0900144 opp-hz = /bits/ 64 <666667000>;
145 clock-latency-ns = <300>;
146 };
Masahiro Yamada552acbf2017-04-20 16:54:44 +0900147 opp-733334000 {
Masahiro Yamada6e485b22016-12-05 18:31:39 +0900148 opp-hz = /bits/ 64 <733334000>;
149 clock-latency-ns = <300>;
150 };
Masahiro Yamada552acbf2017-04-20 16:54:44 +0900151 opp-1000000000 {
Masahiro Yamada6e485b22016-12-05 18:31:39 +0900152 opp-hz = /bits/ 64 <1000000000>;
153 clock-latency-ns = <300>;
154 };
Masahiro Yamada552acbf2017-04-20 16:54:44 +0900155 opp-1100000000 {
Masahiro Yamada6e485b22016-12-05 18:31:39 +0900156 opp-hz = /bits/ 64 <1100000000>;
157 clock-latency-ns = <300>;
158 };
159 };
160
161 psci {
162 compatible = "arm,psci-1.0";
163 method = "smc";
164 };
165
Masahiro Yamadad89bcf22016-03-18 16:41:48 +0900166 clocks {
Masahiro Yamada1174603f2016-06-29 19:38:56 +0900167 refclk: ref {
168 compatible = "fixed-clock";
169 #clock-cells = <0>;
170 clock-frequency = <25000000>;
171 };
Masahiro Yamadad89bcf22016-03-18 16:41:48 +0900172 };
173
Masahiro Yamada6c086d02017-11-25 00:25:35 +0900174 emmc_pwrseq: emmc-pwrseq {
175 compatible = "mmc-pwrseq-emmc";
176 reset-gpios = <&gpio UNIPHIER_GPIO_PORT(3, 2) GPIO_ACTIVE_LOW>;
177 };
178
Masahiro Yamadad89bcf22016-03-18 16:41:48 +0900179 timer {
180 compatible = "arm,armv8-timer";
Masahiro Yamada02bf5b82016-09-22 07:42:23 +0900181 interrupts = <1 13 4>,
182 <1 14 4>,
183 <1 11 4>,
184 <1 10 4>;
Masahiro Yamadad89bcf22016-03-18 16:41:48 +0900185 };
186
Masahiro Yamada6c086d02017-11-25 00:25:35 +0900187 thermal-zones {
188 cpu-thermal {
189 polling-delay-passive = <250>; /* 250ms */
190 polling-delay = <1000>; /* 1000ms */
191 thermal-sensors = <&pvtctl>;
192
193 trips {
194 cpu_crit: cpu-crit {
195 temperature = <110000>; /* 110C */
196 hysteresis = <2000>;
197 type = "critical";
198 };
199 cpu_alert: cpu-alert {
200 temperature = <100000>; /* 100C */
201 hysteresis = <2000>;
202 type = "passive";
203 };
204 };
205
206 cooling-maps {
207 map0 {
208 trip = <&cpu_alert>;
Masahiro Yamadac9026882019-04-12 18:55:50 +0900209 cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
210 <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
211 <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
212 <&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
Masahiro Yamada6c086d02017-11-25 00:25:35 +0900213 };
214 };
215 };
216 };
217
Masahiro Yamadace6ca3c2017-03-13 00:16:40 +0900218 soc@0 {
Masahiro Yamadad89bcf22016-03-18 16:41:48 +0900219 compatible = "simple-bus";
220 #address-cells = <1>;
221 #size-cells = <1>;
222 ranges = <0 0 0 0xffffffff>;
223
Masahiro Yamada6bd84d72018-12-19 20:03:21 +0900224 spi0: spi@54006000 {
225 compatible = "socionext,uniphier-scssi";
226 status = "disabled";
227 reg = <0x54006000 0x100>;
228 interrupts = <0 39 4>;
229 pinctrl-names = "default";
230 pinctrl-0 = <&pinctrl_spi0>;
231 clocks = <&peri_clk 11>;
232 resets = <&peri_rst 11>;
233 };
234
235 spi1: spi@54006100 {
236 compatible = "socionext,uniphier-scssi";
237 status = "disabled";
238 reg = <0x54006100 0x100>;
239 interrupts = <0 216 4>;
240 pinctrl-names = "default";
241 pinctrl-0 = <&pinctrl_spi1>;
242 clocks = <&peri_clk 11>;
243 resets = <&peri_rst 11>;
244 };
245
246 spi2: spi@54006200 {
247 compatible = "socionext,uniphier-scssi";
248 status = "disabled";
249 reg = <0x54006200 0x100>;
250 interrupts = <0 229 4>;
251 pinctrl-names = "default";
252 pinctrl-0 = <&pinctrl_spi2>;
253 clocks = <&peri_clk 11>;
254 resets = <&peri_rst 11>;
255 };
256
257 spi3: spi@54006300 {
258 compatible = "socionext,uniphier-scssi";
259 status = "disabled";
260 reg = <0x54006300 0x100>;
261 interrupts = <0 230 4>;
262 pinctrl-names = "default";
263 pinctrl-0 = <&pinctrl_spi3>;
264 clocks = <&peri_clk 11>;
265 resets = <&peri_rst 11>;
266 };
267
Masahiro Yamadad89bcf22016-03-18 16:41:48 +0900268 serial0: serial@54006800 {
269 compatible = "socionext,uniphier-uart";
270 status = "disabled";
271 reg = <0x54006800 0x40>;
272 interrupts = <0 33 4>;
273 pinctrl-names = "default";
274 pinctrl-0 = <&pinctrl_uart0>;
Masahiro Yamada02bf5b82016-09-22 07:42:23 +0900275 clocks = <&peri_clk 0>;
Masahiro Yamada6c086d02017-11-25 00:25:35 +0900276 resets = <&peri_rst 0>;
Masahiro Yamadad89bcf22016-03-18 16:41:48 +0900277 };
278
279 serial1: serial@54006900 {
280 compatible = "socionext,uniphier-uart";
281 status = "disabled";
282 reg = <0x54006900 0x40>;
283 interrupts = <0 35 4>;
284 pinctrl-names = "default";
285 pinctrl-0 = <&pinctrl_uart1>;
Masahiro Yamada02bf5b82016-09-22 07:42:23 +0900286 clocks = <&peri_clk 1>;
Masahiro Yamada6c086d02017-11-25 00:25:35 +0900287 resets = <&peri_rst 1>;
Masahiro Yamadad89bcf22016-03-18 16:41:48 +0900288 };
289
290 serial2: serial@54006a00 {
291 compatible = "socionext,uniphier-uart";
292 status = "disabled";
293 reg = <0x54006a00 0x40>;
294 interrupts = <0 37 4>;
295 pinctrl-names = "default";
296 pinctrl-0 = <&pinctrl_uart2>;
Masahiro Yamada02bf5b82016-09-22 07:42:23 +0900297 clocks = <&peri_clk 2>;
Masahiro Yamada6c086d02017-11-25 00:25:35 +0900298 resets = <&peri_rst 2>;
Masahiro Yamadad89bcf22016-03-18 16:41:48 +0900299 };
300
301 serial3: serial@54006b00 {
302 compatible = "socionext,uniphier-uart";
303 status = "disabled";
304 reg = <0x54006b00 0x40>;
305 interrupts = <0 177 4>;
306 pinctrl-names = "default";
307 pinctrl-0 = <&pinctrl_uart3>;
Masahiro Yamada02bf5b82016-09-22 07:42:23 +0900308 clocks = <&peri_clk 3>;
Masahiro Yamada6c086d02017-11-25 00:25:35 +0900309 resets = <&peri_rst 3>;
Masahiro Yamadad89bcf22016-03-18 16:41:48 +0900310 };
311
Masahiro Yamadaa0a95bb2017-10-17 21:19:43 +0900312 gpio: gpio@55000000 {
313 compatible = "socionext,uniphier-gpio";
314 reg = <0x55000000 0x200>;
315 interrupt-parent = <&aidet>;
316 interrupt-controller;
317 #interrupt-cells = <2>;
318 gpio-controller;
319 #gpio-cells = <2>;
320 gpio-ranges = <&pinctrl 0 0 0>,
321 <&pinctrl 96 0 0>,
322 <&pinctrl 160 0 0>;
323 gpio-ranges-group-names = "gpio_range0",
324 "gpio_range1",
325 "gpio_range2";
326 ngpios = <205>;
327 socionext,interrupt-ranges = <0 48 16>, <16 154 5>,
328 <21 217 3>;
329 };
330
Masahiro Yamada0bc56842018-04-16 12:35:33 +0900331 audio@56000000 {
332 compatible = "socionext,uniphier-ld20-aio";
333 reg = <0x56000000 0x80000>;
334 interrupts = <0 144 4>;
335 pinctrl-names = "default";
336 pinctrl-0 = <&pinctrl_aout1>,
337 <&pinctrl_aoutiec1>;
338 clock-names = "aio";
339 clocks = <&sys_clk 40>;
340 reset-names = "aio";
341 resets = <&sys_rst 40>;
342 #sound-dai-cells = <1>;
343 socionext,syscon = <&soc_glue>;
344
345 i2s_port0: port@0 {
346 i2s_hdmi: endpoint {
347 };
348 };
349
350 i2s_port1: port@1 {
351 i2s_pcmin2: endpoint {
352 };
353 };
354
355 i2s_port2: port@2 {
356 i2s_line: endpoint {
357 dai-format = "i2s";
358 remote-endpoint = <&evea_line>;
359 };
360 };
361
362 i2s_port3: port@3 {
363 i2s_hpcmout1: endpoint {
364 };
365 };
366
367 i2s_port4: port@4 {
368 i2s_hp: endpoint {
369 dai-format = "i2s";
370 remote-endpoint = <&evea_hp>;
371 };
372 };
373
374 spdif_port0: port@5 {
375 spdif_hiecout1: endpoint {
376 };
377 };
378
379 src_port0: port@6 {
380 i2s_epcmout2: endpoint {
381 };
382 };
383
384 src_port1: port@7 {
385 i2s_epcmout3: endpoint {
386 };
387 };
388
389 comp_spdif_port0: port@8 {
390 comp_spdif_hiecout1: endpoint {
391 };
392 };
393 };
394
395 codec@57900000 {
396 compatible = "socionext,uniphier-evea";
397 reg = <0x57900000 0x1000>;
398 clock-names = "evea", "exiv";
399 clocks = <&sys_clk 41>, <&sys_clk 42>;
400 reset-names = "evea", "exiv", "adamv";
401 resets = <&sys_rst 41>, <&sys_rst 42>, <&adamv_rst 0>;
402 #sound-dai-cells = <1>;
403
404 port@0 {
405 evea_line: endpoint {
406 remote-endpoint = <&i2s_line>;
407 };
408 };
409
410 port@1 {
411 evea_hp: endpoint {
412 remote-endpoint = <&i2s_hp>;
413 };
414 };
415 };
416
Masahiro Yamadaa0a95bb2017-10-17 21:19:43 +0900417 adamv@57920000 {
418 compatible = "socionext,uniphier-ld20-adamv",
419 "simple-mfd", "syscon";
420 reg = <0x57920000 0x1000>;
421
422 adamv_rst: reset {
423 compatible = "socionext,uniphier-ld20-adamv-reset";
424 #reset-cells = <1>;
425 };
426 };
427
Masahiro Yamadad89bcf22016-03-18 16:41:48 +0900428 i2c0: i2c@58780000 {
429 compatible = "socionext,uniphier-fi2c";
430 status = "disabled";
431 reg = <0x58780000 0x80>;
432 #address-cells = <1>;
433 #size-cells = <0>;
434 interrupts = <0 41 4>;
435 pinctrl-names = "default";
436 pinctrl-0 = <&pinctrl_i2c0>;
Masahiro Yamada6e485b22016-12-05 18:31:39 +0900437 clocks = <&peri_clk 4>;
Masahiro Yamada6c086d02017-11-25 00:25:35 +0900438 resets = <&peri_rst 4>;
Masahiro Yamadad89bcf22016-03-18 16:41:48 +0900439 clock-frequency = <100000>;
440 };
441
442 i2c1: i2c@58781000 {
443 compatible = "socionext,uniphier-fi2c";
444 status = "disabled";
445 reg = <0x58781000 0x80>;
446 #address-cells = <1>;
447 #size-cells = <0>;
448 interrupts = <0 42 4>;
449 pinctrl-names = "default";
450 pinctrl-0 = <&pinctrl_i2c1>;
Masahiro Yamada6e485b22016-12-05 18:31:39 +0900451 clocks = <&peri_clk 5>;
Masahiro Yamada6c086d02017-11-25 00:25:35 +0900452 resets = <&peri_rst 5>;
Masahiro Yamadad89bcf22016-03-18 16:41:48 +0900453 clock-frequency = <100000>;
454 };
455
456 i2c2: i2c@58782000 {
457 compatible = "socionext,uniphier-fi2c";
458 reg = <0x58782000 0x80>;
459 #address-cells = <1>;
460 #size-cells = <0>;
461 interrupts = <0 43 4>;
Masahiro Yamada6e485b22016-12-05 18:31:39 +0900462 clocks = <&peri_clk 6>;
Masahiro Yamada6c086d02017-11-25 00:25:35 +0900463 resets = <&peri_rst 6>;
Masahiro Yamadad89bcf22016-03-18 16:41:48 +0900464 clock-frequency = <400000>;
465 };
466
467 i2c3: i2c@58783000 {
468 compatible = "socionext,uniphier-fi2c";
469 status = "disabled";
470 reg = <0x58783000 0x80>;
471 #address-cells = <1>;
472 #size-cells = <0>;
473 interrupts = <0 44 4>;
474 pinctrl-names = "default";
475 pinctrl-0 = <&pinctrl_i2c3>;
Masahiro Yamada6e485b22016-12-05 18:31:39 +0900476 clocks = <&peri_clk 7>;
Masahiro Yamada6c086d02017-11-25 00:25:35 +0900477 resets = <&peri_rst 7>;
Masahiro Yamadad89bcf22016-03-18 16:41:48 +0900478 clock-frequency = <100000>;
479 };
480
481 i2c4: i2c@58784000 {
482 compatible = "socionext,uniphier-fi2c";
483 status = "disabled";
484 reg = <0x58784000 0x80>;
485 #address-cells = <1>;
486 #size-cells = <0>;
487 interrupts = <0 45 4>;
488 pinctrl-names = "default";
489 pinctrl-0 = <&pinctrl_i2c4>;
Masahiro Yamada6e485b22016-12-05 18:31:39 +0900490 clocks = <&peri_clk 8>;
Masahiro Yamada6c086d02017-11-25 00:25:35 +0900491 resets = <&peri_rst 8>;
Masahiro Yamadad89bcf22016-03-18 16:41:48 +0900492 clock-frequency = <100000>;
493 };
494
495 i2c5: i2c@58785000 {
496 compatible = "socionext,uniphier-fi2c";
497 reg = <0x58785000 0x80>;
498 #address-cells = <1>;
499 #size-cells = <0>;
500 interrupts = <0 25 4>;
Masahiro Yamada6e485b22016-12-05 18:31:39 +0900501 clocks = <&peri_clk 9>;
Masahiro Yamada6c086d02017-11-25 00:25:35 +0900502 resets = <&peri_rst 9>;
Masahiro Yamadad89bcf22016-03-18 16:41:48 +0900503 clock-frequency = <400000>;
504 };
505
506 system_bus: system-bus@58c00000 {
507 compatible = "socionext,uniphier-system-bus";
508 status = "disabled";
509 reg = <0x58c00000 0x400>;
510 #address-cells = <2>;
511 #size-cells = <1>;
Masahiro Yamada1174603f2016-06-29 19:38:56 +0900512 pinctrl-names = "default";
513 pinctrl-0 = <&pinctrl_system_bus>;
Masahiro Yamadad89bcf22016-03-18 16:41:48 +0900514 };
515
Masahiro Yamada938ab162017-05-15 14:23:46 +0900516 smpctrl@59801000 {
Masahiro Yamadad89bcf22016-03-18 16:41:48 +0900517 compatible = "socionext,uniphier-smpctrl";
518 reg = <0x59801000 0x400>;
519 };
520
Masahiro Yamada6e485b22016-12-05 18:31:39 +0900521 sdctrl@59810000 {
522 compatible = "socionext,uniphier-ld20-sdctrl",
Masahiro Yamada02bf5b82016-09-22 07:42:23 +0900523 "simple-mfd", "syscon";
Masahiro Yamada1a420bd2017-08-29 12:20:52 +0900524 reg = <0x59810000 0x400>;
Masahiro Yamada02bf5b82016-09-22 07:42:23 +0900525
Masahiro Yamada6e485b22016-12-05 18:31:39 +0900526 sd_clk: clock {
527 compatible = "socionext,uniphier-ld20-sd-clock";
Masahiro Yamada02bf5b82016-09-22 07:42:23 +0900528 #clock-cells = <1>;
529 };
530
Masahiro Yamada6e485b22016-12-05 18:31:39 +0900531 sd_rst: reset {
532 compatible = "socionext,uniphier-ld20-sd-reset";
Masahiro Yamada02bf5b82016-09-22 07:42:23 +0900533 #reset-cells = <1>;
534 };
535 };
536
537 perictrl@59820000 {
Masahiro Yamada6e485b22016-12-05 18:31:39 +0900538 compatible = "socionext,uniphier-ld20-perictrl",
Masahiro Yamada02bf5b82016-09-22 07:42:23 +0900539 "simple-mfd", "syscon";
540 reg = <0x59820000 0x200>;
541
542 peri_clk: clock {
543 compatible = "socionext,uniphier-ld20-peri-clock";
544 #clock-cells = <1>;
545 };
546
547 peri_rst: reset {
548 compatible = "socionext,uniphier-ld20-peri-reset";
549 #reset-cells = <1>;
550 };
Masahiro Yamadab9f5c5a2016-04-21 14:43:20 +0900551 };
552
Masahiro Yamada6e485b22016-12-05 18:31:39 +0900553 emmc: sdhc@5a000000 {
Masahiro Yamada697dd9c2017-01-04 20:08:37 +0900554 compatible = "socionext,uniphier-sd4hc", "cdns,sd4hc";
Masahiro Yamada6e485b22016-12-05 18:31:39 +0900555 reg = <0x5a000000 0x400>;
556 interrupts = <0 78 4>;
557 pinctrl-names = "default";
Masahiro Yamada5ac92d82018-09-10 12:58:32 +0900558 pinctrl-0 = <&pinctrl_emmc>;
Masahiro Yamada6e485b22016-12-05 18:31:39 +0900559 clocks = <&sys_clk 4>;
Masahiro Yamada6c086d02017-11-25 00:25:35 +0900560 resets = <&sys_rst 4>;
Masahiro Yamada6e485b22016-12-05 18:31:39 +0900561 bus-width = <8>;
562 mmc-ddr-1_8v;
563 mmc-hs200-1_8v;
Masahiro Yamada6c086d02017-11-25 00:25:35 +0900564 mmc-pwrseq = <&emmc_pwrseq>;
Masahiro Yamada76b37e72018-05-23 00:30:54 +0900565 cdns,phy-input-delay-legacy = <9>;
Masahiro Yamada552acbf2017-04-20 16:54:44 +0900566 cdns,phy-input-delay-mmc-highspeed = <2>;
567 cdns,phy-input-delay-mmc-ddr = <3>;
568 cdns,phy-dll-delay-sdclk = <21>;
569 cdns,phy-dll-delay-sdclk-hsmmc = <21>;
Masahiro Yamada6e485b22016-12-05 18:31:39 +0900570 };
571
Masahiro Yamadab9f5c5a2016-04-21 14:43:20 +0900572 sd: sdhc@5a400000 {
Masahiro Yamada6c7ad4d2018-09-10 12:58:35 +0900573 compatible = "socionext,uniphier-sd-v3.1.1";
Masahiro Yamadab9f5c5a2016-04-21 14:43:20 +0900574 status = "disabled";
575 reg = <0x5a400000 0x800>;
576 interrupts = <0 76 4>;
577 pinctrl-names = "default";
578 pinctrl-0 = <&pinctrl_sd>;
Masahiro Yamada6e485b22016-12-05 18:31:39 +0900579 clocks = <&sd_clk 0>;
Masahiro Yamada39a67ff2016-10-07 16:43:00 +0900580 reset-names = "host";
Masahiro Yamada6e485b22016-12-05 18:31:39 +0900581 resets = <&sd_rst 0>;
Masahiro Yamadab9f5c5a2016-04-21 14:43:20 +0900582 bus-width = <4>;
Masahiro Yamada6e485b22016-12-05 18:31:39 +0900583 cap-sd-highspeed;
Masahiro Yamadab9f5c5a2016-04-21 14:43:20 +0900584 };
585
Masahiro Yamada0bc56842018-04-16 12:35:33 +0900586 soc_glue: soc-glue@5f800000 {
Masahiro Yamada6e485b22016-12-05 18:31:39 +0900587 compatible = "socionext,uniphier-ld20-soc-glue",
Masahiro Yamada02bf5b82016-09-22 07:42:23 +0900588 "simple-mfd", "syscon";
Masahiro Yamada1174603f2016-06-29 19:38:56 +0900589 reg = <0x5f800000 0x2000>;
Masahiro Yamada1174603f2016-06-29 19:38:56 +0900590
591 pinctrl: pinctrl {
592 compatible = "socionext,uniphier-ld20-pinctrl";
Masahiro Yamada1174603f2016-06-29 19:38:56 +0900593 };
Masahiro Yamadad89bcf22016-03-18 16:41:48 +0900594 };
595
Masahiro Yamada6c086d02017-11-25 00:25:35 +0900596 soc-glue@5f900000 {
597 compatible = "socionext,uniphier-ld20-soc-glue-debug",
598 "simple-mfd";
599 #address-cells = <1>;
600 #size-cells = <1>;
601 ranges = <0 0x5f900000 0x2000>;
602
603 efuse@100 {
604 compatible = "socionext,uniphier-efuse";
605 reg = <0x100 0x28>;
606 };
607
608 efuse@200 {
609 compatible = "socionext,uniphier-efuse";
610 reg = <0x200 0x68>;
Masahiro Yamada6bd84d72018-12-19 20:03:21 +0900611 #address-cells = <1>;
612 #size-cells = <1>;
613
614 /* USB cells */
615 usb_rterm0: trim@54,4 {
616 reg = <0x54 1>;
617 bits = <4 2>;
618 };
619 usb_rterm1: trim@55,4 {
620 reg = <0x55 1>;
621 bits = <4 2>;
622 };
623 usb_rterm2: trim@58,4 {
624 reg = <0x58 1>;
625 bits = <4 2>;
626 };
627 usb_rterm3: trim@59,4 {
628 reg = <0x59 1>;
629 bits = <4 2>;
630 };
631 usb_sel_t0: trim@54,0 {
632 reg = <0x54 1>;
633 bits = <0 4>;
634 };
635 usb_sel_t1: trim@55,0 {
636 reg = <0x55 1>;
637 bits = <0 4>;
638 };
639 usb_sel_t2: trim@58,0 {
640 reg = <0x58 1>;
641 bits = <0 4>;
642 };
643 usb_sel_t3: trim@59,0 {
644 reg = <0x59 1>;
645 bits = <0 4>;
646 };
647 usb_hs_i0: trim@56,0 {
648 reg = <0x56 1>;
649 bits = <0 4>;
650 };
651 usb_hs_i2: trim@5a,0 {
652 reg = <0x5a 1>;
653 bits = <0 4>;
654 };
Masahiro Yamada6c086d02017-11-25 00:25:35 +0900655 };
656 };
657
Masahiro Yamada1a420bd2017-08-29 12:20:52 +0900658 aidet: aidet@5fc20000 {
659 compatible = "socionext,uniphier-ld20-aidet";
Masahiro Yamada2707e832016-06-29 19:39:02 +0900660 reg = <0x5fc20000 0x200>;
Masahiro Yamada1a420bd2017-08-29 12:20:52 +0900661 interrupt-controller;
662 #interrupt-cells = <2>;
Masahiro Yamada2707e832016-06-29 19:39:02 +0900663 };
664
Masahiro Yamadad89bcf22016-03-18 16:41:48 +0900665 gic: interrupt-controller@5fe00000 {
666 compatible = "arm,gic-v3";
667 reg = <0x5fe00000 0x10000>, /* GICD */
668 <0x5fe80000 0x80000>; /* GICR */
669 interrupt-controller;
670 #interrupt-cells = <3>;
671 interrupts = <1 9 4>;
672 };
Masahiro Yamada02bf5b82016-09-22 07:42:23 +0900673
674 sysctrl@61840000 {
Masahiro Yamada6e485b22016-12-05 18:31:39 +0900675 compatible = "socionext,uniphier-ld20-sysctrl",
Masahiro Yamada02bf5b82016-09-22 07:42:23 +0900676 "simple-mfd", "syscon";
Masahiro Yamada6e485b22016-12-05 18:31:39 +0900677 reg = <0x61840000 0x10000>;
Masahiro Yamada02bf5b82016-09-22 07:42:23 +0900678
679 sys_clk: clock {
680 compatible = "socionext,uniphier-ld20-clock";
681 #clock-cells = <1>;
682 };
683
684 sys_rst: reset {
685 compatible = "socionext,uniphier-ld20-reset";
686 #reset-cells = <1>;
687 };
Masahiro Yamada1a420bd2017-08-29 12:20:52 +0900688
689 watchdog {
690 compatible = "socionext,uniphier-wdt";
691 };
Masahiro Yamada6c086d02017-11-25 00:25:35 +0900692
693 pvtctl: pvtctl {
694 compatible = "socionext,uniphier-ld20-thermal";
695 interrupts = <0 3 4>;
696 #thermal-sensor-cells = <0>;
697 socionext,tmod-calibration = <0x0f22 0x68ee>;
698 };
Masahiro Yamada02bf5b82016-09-22 07:42:23 +0900699 };
Masahiro Yamada6e485b22016-12-05 18:31:39 +0900700
Masahiro Yamada0bc56842018-04-16 12:35:33 +0900701 eth: ethernet@65000000 {
702 compatible = "socionext,uniphier-ld20-ave4";
703 status = "disabled";
704 reg = <0x65000000 0x8500>;
705 interrupts = <0 66 4>;
706 pinctrl-names = "default";
707 pinctrl-0 = <&pinctrl_ether_rgmii>;
Kunihiko Hayashi0ed9d142018-05-11 18:49:16 +0900708 clock-names = "ether";
Masahiro Yamada0bc56842018-04-16 12:35:33 +0900709 clocks = <&sys_clk 6>;
Kunihiko Hayashi0ed9d142018-05-11 18:49:16 +0900710 reset-names = "ether";
Masahiro Yamada0bc56842018-04-16 12:35:33 +0900711 resets = <&sys_rst 6>;
712 phy-mode = "rgmii";
713 local-mac-address = [00 00 00 00 00 00];
Kunihiko Hayashib57334d2018-05-11 18:49:14 +0900714 socionext,syscon-phy-mode = <&soc_glue 0>;
Masahiro Yamada0bc56842018-04-16 12:35:33 +0900715
716 mdio: mdio {
717 #address-cells = <1>;
718 #size-cells = <0>;
719 };
720 };
721
Masahiro Yamada6bd84d72018-12-19 20:03:21 +0900722 _usb: usb@65a00000 {
723 compatible = "socionext,uniphier-dwc3", "snps,dwc3";
724 status = "disabled";
725 reg = <0x65a00000 0xcd00>;
726 interrupt-names = "host";
727 interrupts = <0 134 4>;
728 pinctrl-names = "default";
729 pinctrl-0 = <&pinctrl_usb0>, <&pinctrl_usb1>,
730 <&pinctrl_usb2>, <&pinctrl_usb3>;
731 clock-names = "ref", "bus_early", "suspend";
732 clocks = <&sys_clk 14>, <&sys_clk 14>, <&sys_clk 14>;
733 resets = <&usb_rst 15>;
734 phys = <&usb_hsphy0>, <&usb_hsphy1>,
735 <&usb_hsphy2>, <&usb_hsphy3>,
736 <&usb_ssphy0>, <&usb_ssphy1>;
737 dr_mode = "host";
738 };
739
740 usb-glue@65b00000 {
741 compatible = "socionext,uniphier-ld20-dwc3-glue",
742 "simple-mfd";
743 #address-cells = <1>;
744 #size-cells = <1>;
745 ranges = <0 0x65b00000 0x400>;
746
747 usb_rst: reset@0 {
748 compatible = "socionext,uniphier-ld20-usb3-reset";
749 reg = <0x0 0x4>;
750 #reset-cells = <1>;
751 clock-names = "link";
752 clocks = <&sys_clk 14>;
753 reset-names = "link";
754 resets = <&sys_rst 14>;
755 };
756
757 usb_vbus0: regulator@100 {
758 compatible = "socionext,uniphier-ld20-usb3-regulator";
759 reg = <0x100 0x10>;
760 clock-names = "link";
761 clocks = <&sys_clk 14>;
762 reset-names = "link";
763 resets = <&sys_rst 14>;
764 };
765
766 usb_vbus1: regulator@110 {
767 compatible = "socionext,uniphier-ld20-usb3-regulator";
768 reg = <0x110 0x10>;
769 clock-names = "link";
770 clocks = <&sys_clk 14>;
771 reset-names = "link";
772 resets = <&sys_rst 14>;
773 };
774
775 usb_vbus2: regulator@120 {
776 compatible = "socionext,uniphier-ld20-usb3-regulator";
777 reg = <0x120 0x10>;
778 clock-names = "link";
779 clocks = <&sys_clk 14>;
780 reset-names = "link";
781 resets = <&sys_rst 14>;
782 };
783
784 usb_vbus3: regulator@130 {
785 compatible = "socionext,uniphier-ld20-usb3-regulator";
786 reg = <0x130 0x10>;
787 clock-names = "link";
788 clocks = <&sys_clk 14>;
789 reset-names = "link";
790 resets = <&sys_rst 14>;
791 };
792
793 usb_hsphy0: hs-phy@200 {
794 compatible = "socionext,uniphier-ld20-usb3-hsphy";
795 reg = <0x200 0x10>;
796 #phy-cells = <0>;
797 clock-names = "link", "phy";
798 clocks = <&sys_clk 14>, <&sys_clk 16>;
799 reset-names = "link", "phy";
800 resets = <&sys_rst 14>, <&sys_rst 16>;
801 vbus-supply = <&usb_vbus0>;
802 nvmem-cell-names = "rterm", "sel_t", "hs_i";
803 nvmem-cells = <&usb_rterm0>, <&usb_sel_t0>,
804 <&usb_hs_i0>;
805 };
806
807 usb_hsphy1: hs-phy@210 {
808 compatible = "socionext,uniphier-ld20-usb3-hsphy";
809 reg = <0x210 0x10>;
810 #phy-cells = <0>;
811 clock-names = "link", "phy";
812 clocks = <&sys_clk 14>, <&sys_clk 16>;
813 reset-names = "link", "phy";
814 resets = <&sys_rst 14>, <&sys_rst 16>;
815 vbus-supply = <&usb_vbus1>;
816 nvmem-cell-names = "rterm", "sel_t", "hs_i";
817 nvmem-cells = <&usb_rterm1>, <&usb_sel_t1>,
818 <&usb_hs_i0>;
819 };
820
821 usb_hsphy2: hs-phy@220 {
822 compatible = "socionext,uniphier-ld20-usb3-hsphy";
823 reg = <0x220 0x10>;
824 #phy-cells = <0>;
825 clock-names = "link", "phy";
826 clocks = <&sys_clk 14>, <&sys_clk 17>;
827 reset-names = "link", "phy";
828 resets = <&sys_rst 14>, <&sys_rst 17>;
829 vbus-supply = <&usb_vbus2>;
830 nvmem-cell-names = "rterm", "sel_t", "hs_i";
831 nvmem-cells = <&usb_rterm2>, <&usb_sel_t2>,
832 <&usb_hs_i2>;
833 };
834
835 usb_hsphy3: hs-phy@230 {
836 compatible = "socionext,uniphier-ld20-usb3-hsphy";
837 reg = <0x230 0x10>;
838 #phy-cells = <0>;
839 clock-names = "link", "phy";
840 clocks = <&sys_clk 14>, <&sys_clk 17>;
841 reset-names = "link", "phy";
842 resets = <&sys_rst 14>, <&sys_rst 17>;
843 vbus-supply = <&usb_vbus3>;
844 nvmem-cell-names = "rterm", "sel_t", "hs_i";
845 nvmem-cells = <&usb_rterm3>, <&usb_sel_t3>,
846 <&usb_hs_i2>;
847 };
848
849 usb_ssphy0: ss-phy@300 {
850 compatible = "socionext,uniphier-ld20-usb3-ssphy";
851 reg = <0x300 0x10>;
852 #phy-cells = <0>;
853 clock-names = "link", "phy";
854 clocks = <&sys_clk 14>, <&sys_clk 18>;
855 reset-names = "link", "phy";
856 resets = <&sys_rst 14>, <&sys_rst 18>;
857 vbus-supply = <&usb_vbus0>;
858 };
859
860 usb_ssphy1: ss-phy@310 {
861 compatible = "socionext,uniphier-ld20-usb3-ssphy";
862 reg = <0x310 0x10>;
863 #phy-cells = <0>;
864 clock-names = "link", "phy";
865 clocks = <&sys_clk 14>, <&sys_clk 19>;
866 reset-names = "link", "phy";
867 resets = <&sys_rst 14>, <&sys_rst 19>;
868 vbus-supply = <&usb_vbus1>;
869 };
870 };
871
872 /* FIXME: U-Boot own node */
Masahiro Yamada6e485b22016-12-05 18:31:39 +0900873 usb: usb@65b00000 {
874 compatible = "socionext,uniphier-ld20-dwc3";
875 reg = <0x65b00000 0x1000>;
876 #address-cells = <1>;
877 #size-cells = <1>;
878 ranges;
879 pinctrl-names = "default";
880 pinctrl-0 = <&pinctrl_usb0>, <&pinctrl_usb1>,
881 <&pinctrl_usb2>, <&pinctrl_usb3>;
882 dwc3@65a00000 {
883 compatible = "snps,dwc3";
884 reg = <0x65a00000 0x10000>;
885 interrupts = <0 134 4>;
Masahiro Yamadad2c8abd2017-08-13 09:01:17 +0900886 dr_mode = "host";
Masahiro Yamada6e485b22016-12-05 18:31:39 +0900887 tx-fifo-resize;
888 };
889 };
890
Masahiro Yamadac9026882019-04-12 18:55:50 +0900891 pcie: pcie@66000000 {
892 compatible = "socionext,uniphier-pcie", "snps,dw-pcie";
893 status = "disabled";
894 reg-names = "dbi", "link", "config";
895 reg = <0x66000000 0x1000>, <0x66010000 0x10000>,
896 <0x2fff0000 0x10000>;
897 #address-cells = <3>;
898 #size-cells = <2>;
899 clocks = <&sys_clk 24>;
900 resets = <&sys_rst 24>;
901 num-lanes = <1>;
902 num-viewport = <1>;
903 bus-range = <0x0 0xff>;
904 device_type = "pci";
905 ranges =
906 /* downstream I/O */
907 <0x81000000 0 0x00000000 0x2ffe0000 0 0x00010000>,
908 /* non-prefetchable memory */
909 <0x82000000 0 0x20000000 0x20000000 0 0x0ffe0000>;
910 #interrupt-cells = <1>;
911 interrupt-names = "dma", "msi";
912 interrupts = <0 224 4>, <0 225 4>;
913 interrupt-map-mask = <0 0 0 7>;
914 interrupt-map = <0 0 0 1 &pcie_intc 0>, /* INTA */
915 <0 0 0 2 &pcie_intc 1>, /* INTB */
916 <0 0 0 3 &pcie_intc 2>, /* INTC */
917 <0 0 0 4 &pcie_intc 3>; /* INTD */
918 phy-names = "pcie-phy";
919 phys = <&pcie_phy>;
920
921 pcie_intc: legacy-interrupt-controller {
922 interrupt-controller;
923 #interrupt-cells = <1>;
924 interrupt-parent = <&gic>;
925 interrupts = <0 226 4>;
926 };
927 };
928
929 pcie_phy: phy@66038000 {
930 compatible = "socionext,uniphier-ld20-pcie-phy";
931 reg = <0x66038000 0x4000>;
932 #phy-cells = <0>;
933 clocks = <&sys_clk 24>;
934 resets = <&sys_rst 24>;
935 socionext,syscon = <&soc_glue>;
936 };
937
Masahiro Yamada6e485b22016-12-05 18:31:39 +0900938 nand: nand@68000000 {
Masahiro Yamada552acbf2017-04-20 16:54:44 +0900939 compatible = "socionext,uniphier-denali-nand-v5b";
Masahiro Yamada6e485b22016-12-05 18:31:39 +0900940 status = "disabled";
941 reg-names = "nand_data", "denali_reg";
942 reg = <0x68000000 0x20>, <0x68100000 0x1000>;
943 interrupts = <0 65 4>;
944 pinctrl-names = "default";
945 pinctrl-0 = <&pinctrl_nand>;
Masahiro Yamada6bd84d72018-12-19 20:03:21 +0900946 clock-names = "nand", "nand_x", "ecc";
947 clocks = <&sys_clk 2>, <&sys_clk 3>, <&sys_clk 3>;
Masahiro Yamada6c086d02017-11-25 00:25:35 +0900948 resets = <&sys_rst 2>;
Masahiro Yamada6e485b22016-12-05 18:31:39 +0900949 };
Masahiro Yamadad89bcf22016-03-18 16:41:48 +0900950 };
951};
952
Masahiro Yamada1a420bd2017-08-29 12:20:52 +0900953#include "uniphier-pinctrl.dtsi"
Masahiro Yamada0bc56842018-04-16 12:35:33 +0900954
955&pinctrl_aout1 {
956 drive-strength = <4>; /* default: 3.5mA */
957
958 ao1dacck {
959 pins = "AO1DACCK";
960 drive-strength = <5>; /* 5mA */
961 };
962};
963
964&pinctrl_aoutiec1 {
965 drive-strength = <4>; /* default: 3.5mA */
966
967 ao1arc {
968 pins = "AO1ARC";
969 drive-strength = <11>; /* 11mA */
970 };
971};