blob: 5e7143ed012f1278d2d08f80d3ef298846f8dc6e [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 Yamadad89bcf22016-03-18 16:41:48 +090012/ {
Masahiro Yamada39a67ff2016-10-07 16:43:00 +090013 compatible = "socionext,uniphier-ld20";
Masahiro Yamadad89bcf22016-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";
Masahiro Yamadac9026882019-04-12 18:55:50 +090044 compatible = "arm,cortex-a72";
Masahiro Yamadad89bcf22016-03-18 16:41:48 +090045 reg = <0 0x000>;
Masahiro Yamada6e485b22016-12-05 18:31:39 +090046 clocks = <&sys_clk 32>;
47 enable-method = "psci";
48 operating-points-v2 = <&cluster0_opp>;
Masahiro Yamada6c086d02017-11-25 00:25:35 +090049 #cooling-cells = <2>;
Masahiro Yamadad89bcf22016-03-18 16:41:48 +090050 };
51
52 cpu1: cpu@1 {
53 device_type = "cpu";
Masahiro Yamadac9026882019-04-12 18:55:50 +090054 compatible = "arm,cortex-a72";
Masahiro Yamadad89bcf22016-03-18 16:41:48 +090055 reg = <0 0x001>;
Masahiro Yamada6e485b22016-12-05 18:31:39 +090056 clocks = <&sys_clk 32>;
57 enable-method = "psci";
58 operating-points-v2 = <&cluster0_opp>;
Masahiro Yamada5ac92d82018-09-10 12:58:32 +090059 #cooling-cells = <2>;
Masahiro Yamadad89bcf22016-03-18 16:41:48 +090060 };
61
62 cpu2: cpu@100 {
63 device_type = "cpu";
Masahiro Yamadac9026882019-04-12 18:55:50 +090064 compatible = "arm,cortex-a53";
Masahiro Yamadad89bcf22016-03-18 16:41:48 +090065 reg = <0 0x100>;
Masahiro Yamada6e485b22016-12-05 18:31:39 +090066 clocks = <&sys_clk 33>;
67 enable-method = "psci";
68 operating-points-v2 = <&cluster1_opp>;
Masahiro Yamada6c086d02017-11-25 00:25:35 +090069 #cooling-cells = <2>;
Masahiro Yamadad89bcf22016-03-18 16:41:48 +090070 };
71
72 cpu3: cpu@101 {
73 device_type = "cpu";
Masahiro Yamadac9026882019-04-12 18:55:50 +090074 compatible = "arm,cortex-a53";
Masahiro Yamadad89bcf22016-03-18 16:41:48 +090075 reg = <0 0x101>;
Masahiro Yamada6e485b22016-12-05 18:31:39 +090076 clocks = <&sys_clk 33>;
77 enable-method = "psci";
78 operating-points-v2 = <&cluster1_opp>;
Masahiro Yamada5ac92d82018-09-10 12:58:32 +090079 #cooling-cells = <2>;
Masahiro Yamadad89bcf22016-03-18 16:41:48 +090080 };
81 };
82
Masahiro Yamada6c086d02017-11-25 00:25:35 +090083 cluster0_opp: opp-table0 {
Masahiro Yamada6e485b22016-12-05 18:31:39 +090084 compatible = "operating-points-v2";
85 opp-shared;
86
Masahiro Yamada552acbf2017-04-20 16:54:44 +090087 opp-250000000 {
Masahiro Yamada6e485b22016-12-05 18:31:39 +090088 opp-hz = /bits/ 64 <250000000>;
89 clock-latency-ns = <300>;
90 };
Masahiro Yamada552acbf2017-04-20 16:54:44 +090091 opp-275000000 {
Masahiro Yamada6e485b22016-12-05 18:31:39 +090092 opp-hz = /bits/ 64 <275000000>;
93 clock-latency-ns = <300>;
94 };
Masahiro Yamada552acbf2017-04-20 16:54:44 +090095 opp-500000000 {
Masahiro Yamada6e485b22016-12-05 18:31:39 +090096 opp-hz = /bits/ 64 <500000000>;
97 clock-latency-ns = <300>;
98 };
Masahiro Yamada552acbf2017-04-20 16:54:44 +090099 opp-550000000 {
Masahiro Yamada6e485b22016-12-05 18:31:39 +0900100 opp-hz = /bits/ 64 <550000000>;
101 clock-latency-ns = <300>;
102 };
Masahiro Yamada552acbf2017-04-20 16:54:44 +0900103 opp-666667000 {
Masahiro Yamada6e485b22016-12-05 18:31:39 +0900104 opp-hz = /bits/ 64 <666667000>;
105 clock-latency-ns = <300>;
106 };
Masahiro Yamada552acbf2017-04-20 16:54:44 +0900107 opp-733334000 {
Masahiro Yamada6e485b22016-12-05 18:31:39 +0900108 opp-hz = /bits/ 64 <733334000>;
109 clock-latency-ns = <300>;
110 };
Masahiro Yamada552acbf2017-04-20 16:54:44 +0900111 opp-1000000000 {
Masahiro Yamada6e485b22016-12-05 18:31:39 +0900112 opp-hz = /bits/ 64 <1000000000>;
113 clock-latency-ns = <300>;
114 };
Masahiro Yamada552acbf2017-04-20 16:54:44 +0900115 opp-1100000000 {
Masahiro Yamada6e485b22016-12-05 18:31:39 +0900116 opp-hz = /bits/ 64 <1100000000>;
117 clock-latency-ns = <300>;
118 };
119 };
120
Masahiro Yamada6c086d02017-11-25 00:25:35 +0900121 cluster1_opp: opp-table1 {
Masahiro Yamada6e485b22016-12-05 18:31:39 +0900122 compatible = "operating-points-v2";
123 opp-shared;
124
Masahiro Yamada552acbf2017-04-20 16:54:44 +0900125 opp-250000000 {
Masahiro Yamada6e485b22016-12-05 18:31:39 +0900126 opp-hz = /bits/ 64 <250000000>;
127 clock-latency-ns = <300>;
128 };
Masahiro Yamada552acbf2017-04-20 16:54:44 +0900129 opp-275000000 {
Masahiro Yamada6e485b22016-12-05 18:31:39 +0900130 opp-hz = /bits/ 64 <275000000>;
131 clock-latency-ns = <300>;
132 };
Masahiro Yamada552acbf2017-04-20 16:54:44 +0900133 opp-500000000 {
Masahiro Yamada6e485b22016-12-05 18:31:39 +0900134 opp-hz = /bits/ 64 <500000000>;
135 clock-latency-ns = <300>;
136 };
Masahiro Yamada552acbf2017-04-20 16:54:44 +0900137 opp-550000000 {
Masahiro Yamada6e485b22016-12-05 18:31:39 +0900138 opp-hz = /bits/ 64 <550000000>;
139 clock-latency-ns = <300>;
140 };
Masahiro Yamada552acbf2017-04-20 16:54:44 +0900141 opp-666667000 {
Masahiro Yamada6e485b22016-12-05 18:31:39 +0900142 opp-hz = /bits/ 64 <666667000>;
143 clock-latency-ns = <300>;
144 };
Masahiro Yamada552acbf2017-04-20 16:54:44 +0900145 opp-733334000 {
Masahiro Yamada6e485b22016-12-05 18:31:39 +0900146 opp-hz = /bits/ 64 <733334000>;
147 clock-latency-ns = <300>;
148 };
Masahiro Yamada552acbf2017-04-20 16:54:44 +0900149 opp-1000000000 {
Masahiro Yamada6e485b22016-12-05 18:31:39 +0900150 opp-hz = /bits/ 64 <1000000000>;
151 clock-latency-ns = <300>;
152 };
Masahiro Yamada552acbf2017-04-20 16:54:44 +0900153 opp-1100000000 {
Masahiro Yamada6e485b22016-12-05 18:31:39 +0900154 opp-hz = /bits/ 64 <1100000000>;
155 clock-latency-ns = <300>;
156 };
157 };
158
159 psci {
160 compatible = "arm,psci-1.0";
161 method = "smc";
162 };
163
Masahiro Yamadad89bcf22016-03-18 16:41:48 +0900164 clocks {
Masahiro Yamada1174603f2016-06-29 19:38:56 +0900165 refclk: ref {
166 compatible = "fixed-clock";
167 #clock-cells = <0>;
168 clock-frequency = <25000000>;
169 };
Masahiro Yamadad89bcf22016-03-18 16:41:48 +0900170 };
171
Masahiro Yamada6c086d02017-11-25 00:25:35 +0900172 emmc_pwrseq: emmc-pwrseq {
173 compatible = "mmc-pwrseq-emmc";
174 reset-gpios = <&gpio UNIPHIER_GPIO_PORT(3, 2) GPIO_ACTIVE_LOW>;
175 };
176
Masahiro Yamadad89bcf22016-03-18 16:41:48 +0900177 timer {
178 compatible = "arm,armv8-timer";
Masahiro Yamada02bf5b82016-09-22 07:42:23 +0900179 interrupts = <1 13 4>,
180 <1 14 4>,
181 <1 11 4>,
182 <1 10 4>;
Masahiro Yamadad89bcf22016-03-18 16:41:48 +0900183 };
184
Masahiro Yamada6c086d02017-11-25 00:25:35 +0900185 thermal-zones {
186 cpu-thermal {
187 polling-delay-passive = <250>; /* 250ms */
188 polling-delay = <1000>; /* 1000ms */
189 thermal-sensors = <&pvtctl>;
190
191 trips {
192 cpu_crit: cpu-crit {
193 temperature = <110000>; /* 110C */
194 hysteresis = <2000>;
195 type = "critical";
196 };
197 cpu_alert: cpu-alert {
198 temperature = <100000>; /* 100C */
199 hysteresis = <2000>;
200 type = "passive";
201 };
202 };
203
204 cooling-maps {
205 map0 {
206 trip = <&cpu_alert>;
Masahiro Yamadac9026882019-04-12 18:55:50 +0900207 cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
208 <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
209 <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
210 <&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
Masahiro Yamada6c086d02017-11-25 00:25:35 +0900211 };
212 };
213 };
214 };
215
Masahiro Yamada83701f22019-07-10 20:07:29 +0900216 reserved-memory {
217 #address-cells = <2>;
218 #size-cells = <2>;
219 ranges;
220
221 secure-memory@81000000 {
222 reg = <0x0 0x81000000 0x0 0x01000000>;
223 no-map;
224 };
225 };
226
Masahiro Yamadace6ca3c2017-03-13 00:16:40 +0900227 soc@0 {
Masahiro Yamadad89bcf22016-03-18 16:41:48 +0900228 compatible = "simple-bus";
229 #address-cells = <1>;
230 #size-cells = <1>;
231 ranges = <0 0 0 0xffffffff>;
232
Masahiro Yamada6bd84d72018-12-19 20:03:21 +0900233 spi0: spi@54006000 {
234 compatible = "socionext,uniphier-scssi";
235 status = "disabled";
236 reg = <0x54006000 0x100>;
Masahiro Yamada423471f2020-07-09 15:08:14 +0900237 #address-cells = <1>;
238 #size-cells = <0>;
Masahiro Yamada6bd84d72018-12-19 20:03:21 +0900239 interrupts = <0 39 4>;
240 pinctrl-names = "default";
241 pinctrl-0 = <&pinctrl_spi0>;
242 clocks = <&peri_clk 11>;
243 resets = <&peri_rst 11>;
244 };
245
246 spi1: spi@54006100 {
247 compatible = "socionext,uniphier-scssi";
248 status = "disabled";
249 reg = <0x54006100 0x100>;
Masahiro Yamada423471f2020-07-09 15:08:14 +0900250 #address-cells = <1>;
251 #size-cells = <0>;
Masahiro Yamada6bd84d72018-12-19 20:03:21 +0900252 interrupts = <0 216 4>;
253 pinctrl-names = "default";
254 pinctrl-0 = <&pinctrl_spi1>;
Masahiro Yamada423471f2020-07-09 15:08:14 +0900255 clocks = <&peri_clk 12>;
256 resets = <&peri_rst 12>;
Masahiro Yamada6bd84d72018-12-19 20:03:21 +0900257 };
258
259 spi2: spi@54006200 {
260 compatible = "socionext,uniphier-scssi";
261 status = "disabled";
262 reg = <0x54006200 0x100>;
Masahiro Yamada423471f2020-07-09 15:08:14 +0900263 #address-cells = <1>;
264 #size-cells = <0>;
Masahiro Yamada6bd84d72018-12-19 20:03:21 +0900265 interrupts = <0 229 4>;
266 pinctrl-names = "default";
267 pinctrl-0 = <&pinctrl_spi2>;
Masahiro Yamada423471f2020-07-09 15:08:14 +0900268 clocks = <&peri_clk 13>;
269 resets = <&peri_rst 13>;
Masahiro Yamada6bd84d72018-12-19 20:03:21 +0900270 };
271
272 spi3: spi@54006300 {
273 compatible = "socionext,uniphier-scssi";
274 status = "disabled";
275 reg = <0x54006300 0x100>;
Masahiro Yamada423471f2020-07-09 15:08:14 +0900276 #address-cells = <1>;
277 #size-cells = <0>;
Masahiro Yamada6bd84d72018-12-19 20:03:21 +0900278 interrupts = <0 230 4>;
279 pinctrl-names = "default";
280 pinctrl-0 = <&pinctrl_spi3>;
Masahiro Yamada423471f2020-07-09 15:08:14 +0900281 clocks = <&peri_clk 14>;
282 resets = <&peri_rst 14>;
Masahiro Yamada6bd84d72018-12-19 20:03:21 +0900283 };
284
Masahiro Yamadad89bcf22016-03-18 16:41:48 +0900285 serial0: serial@54006800 {
286 compatible = "socionext,uniphier-uart";
287 status = "disabled";
288 reg = <0x54006800 0x40>;
289 interrupts = <0 33 4>;
290 pinctrl-names = "default";
291 pinctrl-0 = <&pinctrl_uart0>;
Masahiro Yamada02bf5b82016-09-22 07:42:23 +0900292 clocks = <&peri_clk 0>;
Masahiro Yamada6c086d02017-11-25 00:25:35 +0900293 resets = <&peri_rst 0>;
Masahiro Yamadad89bcf22016-03-18 16:41:48 +0900294 };
295
296 serial1: serial@54006900 {
297 compatible = "socionext,uniphier-uart";
298 status = "disabled";
299 reg = <0x54006900 0x40>;
300 interrupts = <0 35 4>;
301 pinctrl-names = "default";
302 pinctrl-0 = <&pinctrl_uart1>;
Masahiro Yamada02bf5b82016-09-22 07:42:23 +0900303 clocks = <&peri_clk 1>;
Masahiro Yamada6c086d02017-11-25 00:25:35 +0900304 resets = <&peri_rst 1>;
Masahiro Yamadad89bcf22016-03-18 16:41:48 +0900305 };
306
307 serial2: serial@54006a00 {
308 compatible = "socionext,uniphier-uart";
309 status = "disabled";
310 reg = <0x54006a00 0x40>;
311 interrupts = <0 37 4>;
312 pinctrl-names = "default";
313 pinctrl-0 = <&pinctrl_uart2>;
Masahiro Yamada02bf5b82016-09-22 07:42:23 +0900314 clocks = <&peri_clk 2>;
Masahiro Yamada6c086d02017-11-25 00:25:35 +0900315 resets = <&peri_rst 2>;
Masahiro Yamadad89bcf22016-03-18 16:41:48 +0900316 };
317
318 serial3: serial@54006b00 {
319 compatible = "socionext,uniphier-uart";
320 status = "disabled";
321 reg = <0x54006b00 0x40>;
322 interrupts = <0 177 4>;
323 pinctrl-names = "default";
324 pinctrl-0 = <&pinctrl_uart3>;
Masahiro Yamada02bf5b82016-09-22 07:42:23 +0900325 clocks = <&peri_clk 3>;
Masahiro Yamada6c086d02017-11-25 00:25:35 +0900326 resets = <&peri_rst 3>;
Masahiro Yamadad89bcf22016-03-18 16:41:48 +0900327 };
328
Masahiro Yamadaa0a95bb2017-10-17 21:19:43 +0900329 gpio: gpio@55000000 {
330 compatible = "socionext,uniphier-gpio";
331 reg = <0x55000000 0x200>;
332 interrupt-parent = <&aidet>;
333 interrupt-controller;
334 #interrupt-cells = <2>;
335 gpio-controller;
336 #gpio-cells = <2>;
337 gpio-ranges = <&pinctrl 0 0 0>,
338 <&pinctrl 96 0 0>,
339 <&pinctrl 160 0 0>;
340 gpio-ranges-group-names = "gpio_range0",
341 "gpio_range1",
342 "gpio_range2";
343 ngpios = <205>;
344 socionext,interrupt-ranges = <0 48 16>, <16 154 5>,
345 <21 217 3>;
346 };
347
Masahiro Yamada0bc56842018-04-16 12:35:33 +0900348 audio@56000000 {
349 compatible = "socionext,uniphier-ld20-aio";
350 reg = <0x56000000 0x80000>;
351 interrupts = <0 144 4>;
352 pinctrl-names = "default";
353 pinctrl-0 = <&pinctrl_aout1>,
354 <&pinctrl_aoutiec1>;
355 clock-names = "aio";
356 clocks = <&sys_clk 40>;
357 reset-names = "aio";
358 resets = <&sys_rst 40>;
359 #sound-dai-cells = <1>;
360 socionext,syscon = <&soc_glue>;
361
362 i2s_port0: port@0 {
363 i2s_hdmi: endpoint {
364 };
365 };
366
367 i2s_port1: port@1 {
368 i2s_pcmin2: endpoint {
369 };
370 };
371
372 i2s_port2: port@2 {
373 i2s_line: endpoint {
374 dai-format = "i2s";
375 remote-endpoint = <&evea_line>;
376 };
377 };
378
379 i2s_port3: port@3 {
380 i2s_hpcmout1: endpoint {
381 };
382 };
383
384 i2s_port4: port@4 {
385 i2s_hp: endpoint {
386 dai-format = "i2s";
387 remote-endpoint = <&evea_hp>;
388 };
389 };
390
391 spdif_port0: port@5 {
392 spdif_hiecout1: endpoint {
393 };
394 };
395
396 src_port0: port@6 {
397 i2s_epcmout2: endpoint {
398 };
399 };
400
401 src_port1: port@7 {
402 i2s_epcmout3: endpoint {
403 };
404 };
405
406 comp_spdif_port0: port@8 {
407 comp_spdif_hiecout1: endpoint {
408 };
409 };
410 };
411
412 codec@57900000 {
413 compatible = "socionext,uniphier-evea";
414 reg = <0x57900000 0x1000>;
415 clock-names = "evea", "exiv";
416 clocks = <&sys_clk 41>, <&sys_clk 42>;
417 reset-names = "evea", "exiv", "adamv";
418 resets = <&sys_rst 41>, <&sys_rst 42>, <&adamv_rst 0>;
419 #sound-dai-cells = <1>;
420
421 port@0 {
422 evea_line: endpoint {
423 remote-endpoint = <&i2s_line>;
424 };
425 };
426
427 port@1 {
428 evea_hp: endpoint {
429 remote-endpoint = <&i2s_hp>;
430 };
431 };
432 };
433
Masahiro Yamadaa0a95bb2017-10-17 21:19:43 +0900434 adamv@57920000 {
435 compatible = "socionext,uniphier-ld20-adamv",
436 "simple-mfd", "syscon";
437 reg = <0x57920000 0x1000>;
438
439 adamv_rst: reset {
440 compatible = "socionext,uniphier-ld20-adamv-reset";
441 #reset-cells = <1>;
442 };
443 };
444
Masahiro Yamadad89bcf22016-03-18 16:41:48 +0900445 i2c0: i2c@58780000 {
446 compatible = "socionext,uniphier-fi2c";
447 status = "disabled";
448 reg = <0x58780000 0x80>;
449 #address-cells = <1>;
450 #size-cells = <0>;
451 interrupts = <0 41 4>;
452 pinctrl-names = "default";
453 pinctrl-0 = <&pinctrl_i2c0>;
Masahiro Yamada6e485b22016-12-05 18:31:39 +0900454 clocks = <&peri_clk 4>;
Masahiro Yamada6c086d02017-11-25 00:25:35 +0900455 resets = <&peri_rst 4>;
Masahiro Yamadad89bcf22016-03-18 16:41:48 +0900456 clock-frequency = <100000>;
457 };
458
459 i2c1: i2c@58781000 {
460 compatible = "socionext,uniphier-fi2c";
461 status = "disabled";
462 reg = <0x58781000 0x80>;
463 #address-cells = <1>;
464 #size-cells = <0>;
465 interrupts = <0 42 4>;
466 pinctrl-names = "default";
467 pinctrl-0 = <&pinctrl_i2c1>;
Masahiro Yamada6e485b22016-12-05 18:31:39 +0900468 clocks = <&peri_clk 5>;
Masahiro Yamada6c086d02017-11-25 00:25:35 +0900469 resets = <&peri_rst 5>;
Masahiro Yamadad89bcf22016-03-18 16:41:48 +0900470 clock-frequency = <100000>;
471 };
472
473 i2c2: i2c@58782000 {
474 compatible = "socionext,uniphier-fi2c";
475 reg = <0x58782000 0x80>;
476 #address-cells = <1>;
477 #size-cells = <0>;
478 interrupts = <0 43 4>;
Masahiro Yamada6e485b22016-12-05 18:31:39 +0900479 clocks = <&peri_clk 6>;
Masahiro Yamada6c086d02017-11-25 00:25:35 +0900480 resets = <&peri_rst 6>;
Masahiro Yamadad89bcf22016-03-18 16:41:48 +0900481 clock-frequency = <400000>;
482 };
483
484 i2c3: i2c@58783000 {
485 compatible = "socionext,uniphier-fi2c";
486 status = "disabled";
487 reg = <0x58783000 0x80>;
488 #address-cells = <1>;
489 #size-cells = <0>;
490 interrupts = <0 44 4>;
491 pinctrl-names = "default";
492 pinctrl-0 = <&pinctrl_i2c3>;
Masahiro Yamada6e485b22016-12-05 18:31:39 +0900493 clocks = <&peri_clk 7>;
Masahiro Yamada6c086d02017-11-25 00:25:35 +0900494 resets = <&peri_rst 7>;
Masahiro Yamadad89bcf22016-03-18 16:41:48 +0900495 clock-frequency = <100000>;
496 };
497
498 i2c4: i2c@58784000 {
499 compatible = "socionext,uniphier-fi2c";
500 status = "disabled";
501 reg = <0x58784000 0x80>;
502 #address-cells = <1>;
503 #size-cells = <0>;
504 interrupts = <0 45 4>;
505 pinctrl-names = "default";
506 pinctrl-0 = <&pinctrl_i2c4>;
Masahiro Yamada6e485b22016-12-05 18:31:39 +0900507 clocks = <&peri_clk 8>;
Masahiro Yamada6c086d02017-11-25 00:25:35 +0900508 resets = <&peri_rst 8>;
Masahiro Yamadad89bcf22016-03-18 16:41:48 +0900509 clock-frequency = <100000>;
510 };
511
512 i2c5: i2c@58785000 {
513 compatible = "socionext,uniphier-fi2c";
514 reg = <0x58785000 0x80>;
515 #address-cells = <1>;
516 #size-cells = <0>;
517 interrupts = <0 25 4>;
Masahiro Yamada6e485b22016-12-05 18:31:39 +0900518 clocks = <&peri_clk 9>;
Masahiro Yamada6c086d02017-11-25 00:25:35 +0900519 resets = <&peri_rst 9>;
Masahiro Yamadad89bcf22016-03-18 16:41:48 +0900520 clock-frequency = <400000>;
521 };
522
523 system_bus: system-bus@58c00000 {
524 compatible = "socionext,uniphier-system-bus";
525 status = "disabled";
526 reg = <0x58c00000 0x400>;
527 #address-cells = <2>;
528 #size-cells = <1>;
Masahiro Yamada1174603f2016-06-29 19:38:56 +0900529 pinctrl-names = "default";
530 pinctrl-0 = <&pinctrl_system_bus>;
Masahiro Yamadad89bcf22016-03-18 16:41:48 +0900531 };
532
Masahiro Yamada938ab162017-05-15 14:23:46 +0900533 smpctrl@59801000 {
Masahiro Yamadad89bcf22016-03-18 16:41:48 +0900534 compatible = "socionext,uniphier-smpctrl";
535 reg = <0x59801000 0x400>;
536 };
537
Masahiro Yamada6e485b22016-12-05 18:31:39 +0900538 sdctrl@59810000 {
539 compatible = "socionext,uniphier-ld20-sdctrl",
Masahiro Yamada02bf5b82016-09-22 07:42:23 +0900540 "simple-mfd", "syscon";
Masahiro Yamada1a420bd2017-08-29 12:20:52 +0900541 reg = <0x59810000 0x400>;
Masahiro Yamada02bf5b82016-09-22 07:42:23 +0900542
Masahiro Yamada6e485b22016-12-05 18:31:39 +0900543 sd_clk: clock {
544 compatible = "socionext,uniphier-ld20-sd-clock";
Masahiro Yamada02bf5b82016-09-22 07:42:23 +0900545 #clock-cells = <1>;
546 };
547
Masahiro Yamada6e485b22016-12-05 18:31:39 +0900548 sd_rst: reset {
549 compatible = "socionext,uniphier-ld20-sd-reset";
Masahiro Yamada02bf5b82016-09-22 07:42:23 +0900550 #reset-cells = <1>;
551 };
552 };
553
554 perictrl@59820000 {
Masahiro Yamada6e485b22016-12-05 18:31:39 +0900555 compatible = "socionext,uniphier-ld20-perictrl",
Masahiro Yamada02bf5b82016-09-22 07:42:23 +0900556 "simple-mfd", "syscon";
557 reg = <0x59820000 0x200>;
558
559 peri_clk: clock {
560 compatible = "socionext,uniphier-ld20-peri-clock";
561 #clock-cells = <1>;
562 };
563
564 peri_rst: reset {
565 compatible = "socionext,uniphier-ld20-peri-reset";
566 #reset-cells = <1>;
567 };
Masahiro Yamadab9f5c5a2016-04-21 14:43:20 +0900568 };
569
Masahiro Yamada277516a2020-02-28 21:57:19 +0900570 emmc: mmc@5a000000 {
Masahiro Yamada697dd9c2017-01-04 20:08:37 +0900571 compatible = "socionext,uniphier-sd4hc", "cdns,sd4hc";
Masahiro Yamada6e485b22016-12-05 18:31:39 +0900572 reg = <0x5a000000 0x400>;
573 interrupts = <0 78 4>;
574 pinctrl-names = "default";
Masahiro Yamada5ac92d82018-09-10 12:58:32 +0900575 pinctrl-0 = <&pinctrl_emmc>;
Masahiro Yamada6e485b22016-12-05 18:31:39 +0900576 clocks = <&sys_clk 4>;
Masahiro Yamada6c086d02017-11-25 00:25:35 +0900577 resets = <&sys_rst 4>;
Masahiro Yamada6e485b22016-12-05 18:31:39 +0900578 bus-width = <8>;
579 mmc-ddr-1_8v;
580 mmc-hs200-1_8v;
Masahiro Yamada6c086d02017-11-25 00:25:35 +0900581 mmc-pwrseq = <&emmc_pwrseq>;
Masahiro Yamada76b37e72018-05-23 00:30:54 +0900582 cdns,phy-input-delay-legacy = <9>;
Masahiro Yamada552acbf2017-04-20 16:54:44 +0900583 cdns,phy-input-delay-mmc-highspeed = <2>;
584 cdns,phy-input-delay-mmc-ddr = <3>;
585 cdns,phy-dll-delay-sdclk = <21>;
586 cdns,phy-dll-delay-sdclk-hsmmc = <21>;
Masahiro Yamada6e485b22016-12-05 18:31:39 +0900587 };
588
Masahiro Yamada277516a2020-02-28 21:57:19 +0900589 sd: mmc@5a400000 {
Masahiro Yamada6c7ad4d2018-09-10 12:58:35 +0900590 compatible = "socionext,uniphier-sd-v3.1.1";
Masahiro Yamadab9f5c5a2016-04-21 14:43:20 +0900591 status = "disabled";
592 reg = <0x5a400000 0x800>;
593 interrupts = <0 76 4>;
594 pinctrl-names = "default";
595 pinctrl-0 = <&pinctrl_sd>;
Masahiro Yamada6e485b22016-12-05 18:31:39 +0900596 clocks = <&sd_clk 0>;
Masahiro Yamada39a67ff2016-10-07 16:43:00 +0900597 reset-names = "host";
Masahiro Yamada6e485b22016-12-05 18:31:39 +0900598 resets = <&sd_rst 0>;
Masahiro Yamadab9f5c5a2016-04-21 14:43:20 +0900599 bus-width = <4>;
Masahiro Yamada6e485b22016-12-05 18:31:39 +0900600 cap-sd-highspeed;
Masahiro Yamadab9f5c5a2016-04-21 14:43:20 +0900601 };
602
Masahiro Yamada0bc56842018-04-16 12:35:33 +0900603 soc_glue: soc-glue@5f800000 {
Masahiro Yamada6e485b22016-12-05 18:31:39 +0900604 compatible = "socionext,uniphier-ld20-soc-glue",
Masahiro Yamada02bf5b82016-09-22 07:42:23 +0900605 "simple-mfd", "syscon";
Masahiro Yamada1174603f2016-06-29 19:38:56 +0900606 reg = <0x5f800000 0x2000>;
Masahiro Yamada1174603f2016-06-29 19:38:56 +0900607
608 pinctrl: pinctrl {
609 compatible = "socionext,uniphier-ld20-pinctrl";
Masahiro Yamada1174603f2016-06-29 19:38:56 +0900610 };
Masahiro Yamadad89bcf22016-03-18 16:41:48 +0900611 };
612
Masahiro Yamada6c086d02017-11-25 00:25:35 +0900613 soc-glue@5f900000 {
614 compatible = "socionext,uniphier-ld20-soc-glue-debug",
615 "simple-mfd";
616 #address-cells = <1>;
617 #size-cells = <1>;
618 ranges = <0 0x5f900000 0x2000>;
619
620 efuse@100 {
621 compatible = "socionext,uniphier-efuse";
622 reg = <0x100 0x28>;
623 };
624
625 efuse@200 {
626 compatible = "socionext,uniphier-efuse";
627 reg = <0x200 0x68>;
Masahiro Yamada6bd84d72018-12-19 20:03:21 +0900628 #address-cells = <1>;
629 #size-cells = <1>;
630
631 /* USB cells */
632 usb_rterm0: trim@54,4 {
633 reg = <0x54 1>;
634 bits = <4 2>;
635 };
636 usb_rterm1: trim@55,4 {
637 reg = <0x55 1>;
638 bits = <4 2>;
639 };
640 usb_rterm2: trim@58,4 {
641 reg = <0x58 1>;
642 bits = <4 2>;
643 };
644 usb_rterm3: trim@59,4 {
645 reg = <0x59 1>;
646 bits = <4 2>;
647 };
648 usb_sel_t0: trim@54,0 {
649 reg = <0x54 1>;
650 bits = <0 4>;
651 };
652 usb_sel_t1: trim@55,0 {
653 reg = <0x55 1>;
654 bits = <0 4>;
655 };
656 usb_sel_t2: trim@58,0 {
657 reg = <0x58 1>;
658 bits = <0 4>;
659 };
660 usb_sel_t3: trim@59,0 {
661 reg = <0x59 1>;
662 bits = <0 4>;
663 };
664 usb_hs_i0: trim@56,0 {
665 reg = <0x56 1>;
666 bits = <0 4>;
667 };
668 usb_hs_i2: trim@5a,0 {
669 reg = <0x5a 1>;
670 bits = <0 4>;
671 };
Masahiro Yamada6c086d02017-11-25 00:25:35 +0900672 };
673 };
674
Masahiro Yamada423471f2020-07-09 15:08:14 +0900675 xdmac: dma-controller@5fc10000 {
676 compatible = "socionext,uniphier-xdmac";
677 reg = <0x5fc10000 0x5300>;
678 interrupts = <0 188 4>;
679 dma-channels = <16>;
680 #dma-cells = <2>;
681 };
682
Masahiro Yamada277516a2020-02-28 21:57:19 +0900683 aidet: interrupt-controller@5fc20000 {
Masahiro Yamada1a420bd2017-08-29 12:20:52 +0900684 compatible = "socionext,uniphier-ld20-aidet";
Masahiro Yamada2707e832016-06-29 19:39:02 +0900685 reg = <0x5fc20000 0x200>;
Masahiro Yamada1a420bd2017-08-29 12:20:52 +0900686 interrupt-controller;
687 #interrupt-cells = <2>;
Masahiro Yamada2707e832016-06-29 19:39:02 +0900688 };
689
Masahiro Yamadad89bcf22016-03-18 16:41:48 +0900690 gic: interrupt-controller@5fe00000 {
691 compatible = "arm,gic-v3";
692 reg = <0x5fe00000 0x10000>, /* GICD */
693 <0x5fe80000 0x80000>; /* GICR */
694 interrupt-controller;
695 #interrupt-cells = <3>;
696 interrupts = <1 9 4>;
697 };
Masahiro Yamada02bf5b82016-09-22 07:42:23 +0900698
699 sysctrl@61840000 {
Masahiro Yamada6e485b22016-12-05 18:31:39 +0900700 compatible = "socionext,uniphier-ld20-sysctrl",
Masahiro Yamada02bf5b82016-09-22 07:42:23 +0900701 "simple-mfd", "syscon";
Masahiro Yamada6e485b22016-12-05 18:31:39 +0900702 reg = <0x61840000 0x10000>;
Masahiro Yamada02bf5b82016-09-22 07:42:23 +0900703
704 sys_clk: clock {
705 compatible = "socionext,uniphier-ld20-clock";
706 #clock-cells = <1>;
707 };
708
709 sys_rst: reset {
710 compatible = "socionext,uniphier-ld20-reset";
711 #reset-cells = <1>;
712 };
Masahiro Yamada1a420bd2017-08-29 12:20:52 +0900713
714 watchdog {
715 compatible = "socionext,uniphier-wdt";
716 };
Masahiro Yamada6c086d02017-11-25 00:25:35 +0900717
718 pvtctl: pvtctl {
719 compatible = "socionext,uniphier-ld20-thermal";
720 interrupts = <0 3 4>;
721 #thermal-sensor-cells = <0>;
722 socionext,tmod-calibration = <0x0f22 0x68ee>;
723 };
Masahiro Yamada02bf5b82016-09-22 07:42:23 +0900724 };
Masahiro Yamada6e485b22016-12-05 18:31:39 +0900725
Masahiro Yamada0bc56842018-04-16 12:35:33 +0900726 eth: ethernet@65000000 {
727 compatible = "socionext,uniphier-ld20-ave4";
728 status = "disabled";
729 reg = <0x65000000 0x8500>;
730 interrupts = <0 66 4>;
731 pinctrl-names = "default";
732 pinctrl-0 = <&pinctrl_ether_rgmii>;
Kunihiko Hayashi0ed9d142018-05-11 18:49:16 +0900733 clock-names = "ether";
Masahiro Yamada0bc56842018-04-16 12:35:33 +0900734 clocks = <&sys_clk 6>;
Kunihiko Hayashi0ed9d142018-05-11 18:49:16 +0900735 reset-names = "ether";
Masahiro Yamada0bc56842018-04-16 12:35:33 +0900736 resets = <&sys_rst 6>;
737 phy-mode = "rgmii";
738 local-mac-address = [00 00 00 00 00 00];
Kunihiko Hayashib57334d2018-05-11 18:49:14 +0900739 socionext,syscon-phy-mode = <&soc_glue 0>;
Masahiro Yamada0bc56842018-04-16 12:35:33 +0900740
741 mdio: mdio {
742 #address-cells = <1>;
743 #size-cells = <0>;
744 };
745 };
746
Masahiro Yamada6bd84d72018-12-19 20:03:21 +0900747 _usb: usb@65a00000 {
748 compatible = "socionext,uniphier-dwc3", "snps,dwc3";
749 status = "disabled";
750 reg = <0x65a00000 0xcd00>;
751 interrupt-names = "host";
752 interrupts = <0 134 4>;
753 pinctrl-names = "default";
754 pinctrl-0 = <&pinctrl_usb0>, <&pinctrl_usb1>,
755 <&pinctrl_usb2>, <&pinctrl_usb3>;
756 clock-names = "ref", "bus_early", "suspend";
757 clocks = <&sys_clk 14>, <&sys_clk 14>, <&sys_clk 14>;
758 resets = <&usb_rst 15>;
759 phys = <&usb_hsphy0>, <&usb_hsphy1>,
760 <&usb_hsphy2>, <&usb_hsphy3>,
761 <&usb_ssphy0>, <&usb_ssphy1>;
762 dr_mode = "host";
763 };
764
765 usb-glue@65b00000 {
766 compatible = "socionext,uniphier-ld20-dwc3-glue",
767 "simple-mfd";
768 #address-cells = <1>;
769 #size-cells = <1>;
770 ranges = <0 0x65b00000 0x400>;
771
772 usb_rst: reset@0 {
773 compatible = "socionext,uniphier-ld20-usb3-reset";
774 reg = <0x0 0x4>;
775 #reset-cells = <1>;
776 clock-names = "link";
777 clocks = <&sys_clk 14>;
778 reset-names = "link";
779 resets = <&sys_rst 14>;
780 };
781
782 usb_vbus0: regulator@100 {
783 compatible = "socionext,uniphier-ld20-usb3-regulator";
784 reg = <0x100 0x10>;
785 clock-names = "link";
786 clocks = <&sys_clk 14>;
787 reset-names = "link";
788 resets = <&sys_rst 14>;
789 };
790
791 usb_vbus1: regulator@110 {
792 compatible = "socionext,uniphier-ld20-usb3-regulator";
793 reg = <0x110 0x10>;
794 clock-names = "link";
795 clocks = <&sys_clk 14>;
796 reset-names = "link";
797 resets = <&sys_rst 14>;
798 };
799
800 usb_vbus2: regulator@120 {
801 compatible = "socionext,uniphier-ld20-usb3-regulator";
802 reg = <0x120 0x10>;
803 clock-names = "link";
804 clocks = <&sys_clk 14>;
805 reset-names = "link";
806 resets = <&sys_rst 14>;
807 };
808
809 usb_vbus3: regulator@130 {
810 compatible = "socionext,uniphier-ld20-usb3-regulator";
811 reg = <0x130 0x10>;
812 clock-names = "link";
813 clocks = <&sys_clk 14>;
814 reset-names = "link";
815 resets = <&sys_rst 14>;
816 };
817
818 usb_hsphy0: hs-phy@200 {
819 compatible = "socionext,uniphier-ld20-usb3-hsphy";
820 reg = <0x200 0x10>;
821 #phy-cells = <0>;
822 clock-names = "link", "phy";
823 clocks = <&sys_clk 14>, <&sys_clk 16>;
824 reset-names = "link", "phy";
825 resets = <&sys_rst 14>, <&sys_rst 16>;
826 vbus-supply = <&usb_vbus0>;
827 nvmem-cell-names = "rterm", "sel_t", "hs_i";
828 nvmem-cells = <&usb_rterm0>, <&usb_sel_t0>,
829 <&usb_hs_i0>;
830 };
831
832 usb_hsphy1: hs-phy@210 {
833 compatible = "socionext,uniphier-ld20-usb3-hsphy";
834 reg = <0x210 0x10>;
835 #phy-cells = <0>;
836 clock-names = "link", "phy";
837 clocks = <&sys_clk 14>, <&sys_clk 16>;
838 reset-names = "link", "phy";
839 resets = <&sys_rst 14>, <&sys_rst 16>;
840 vbus-supply = <&usb_vbus1>;
841 nvmem-cell-names = "rterm", "sel_t", "hs_i";
842 nvmem-cells = <&usb_rterm1>, <&usb_sel_t1>,
843 <&usb_hs_i0>;
844 };
845
846 usb_hsphy2: hs-phy@220 {
847 compatible = "socionext,uniphier-ld20-usb3-hsphy";
848 reg = <0x220 0x10>;
849 #phy-cells = <0>;
850 clock-names = "link", "phy";
851 clocks = <&sys_clk 14>, <&sys_clk 17>;
852 reset-names = "link", "phy";
853 resets = <&sys_rst 14>, <&sys_rst 17>;
854 vbus-supply = <&usb_vbus2>;
855 nvmem-cell-names = "rterm", "sel_t", "hs_i";
856 nvmem-cells = <&usb_rterm2>, <&usb_sel_t2>,
857 <&usb_hs_i2>;
858 };
859
860 usb_hsphy3: hs-phy@230 {
861 compatible = "socionext,uniphier-ld20-usb3-hsphy";
862 reg = <0x230 0x10>;
863 #phy-cells = <0>;
864 clock-names = "link", "phy";
865 clocks = <&sys_clk 14>, <&sys_clk 17>;
866 reset-names = "link", "phy";
867 resets = <&sys_rst 14>, <&sys_rst 17>;
868 vbus-supply = <&usb_vbus3>;
869 nvmem-cell-names = "rterm", "sel_t", "hs_i";
870 nvmem-cells = <&usb_rterm3>, <&usb_sel_t3>,
871 <&usb_hs_i2>;
872 };
873
874 usb_ssphy0: ss-phy@300 {
875 compatible = "socionext,uniphier-ld20-usb3-ssphy";
876 reg = <0x300 0x10>;
877 #phy-cells = <0>;
878 clock-names = "link", "phy";
879 clocks = <&sys_clk 14>, <&sys_clk 18>;
880 reset-names = "link", "phy";
881 resets = <&sys_rst 14>, <&sys_rst 18>;
882 vbus-supply = <&usb_vbus0>;
883 };
884
885 usb_ssphy1: ss-phy@310 {
886 compatible = "socionext,uniphier-ld20-usb3-ssphy";
887 reg = <0x310 0x10>;
888 #phy-cells = <0>;
889 clock-names = "link", "phy";
890 clocks = <&sys_clk 14>, <&sys_clk 19>;
891 reset-names = "link", "phy";
892 resets = <&sys_rst 14>, <&sys_rst 19>;
893 vbus-supply = <&usb_vbus1>;
894 };
895 };
896
897 /* FIXME: U-Boot own node */
Masahiro Yamada6e485b22016-12-05 18:31:39 +0900898 usb: usb@65b00000 {
899 compatible = "socionext,uniphier-ld20-dwc3";
900 reg = <0x65b00000 0x1000>;
901 #address-cells = <1>;
902 #size-cells = <1>;
903 ranges;
904 pinctrl-names = "default";
905 pinctrl-0 = <&pinctrl_usb0>, <&pinctrl_usb1>,
906 <&pinctrl_usb2>, <&pinctrl_usb3>;
907 dwc3@65a00000 {
908 compatible = "snps,dwc3";
909 reg = <0x65a00000 0x10000>;
910 interrupts = <0 134 4>;
Masahiro Yamadad2c8abd2017-08-13 09:01:17 +0900911 dr_mode = "host";
Masahiro Yamada6e485b22016-12-05 18:31:39 +0900912 tx-fifo-resize;
913 };
914 };
915
Masahiro Yamadac9026882019-04-12 18:55:50 +0900916 pcie: pcie@66000000 {
917 compatible = "socionext,uniphier-pcie", "snps,dw-pcie";
918 status = "disabled";
919 reg-names = "dbi", "link", "config";
920 reg = <0x66000000 0x1000>, <0x66010000 0x10000>,
921 <0x2fff0000 0x10000>;
922 #address-cells = <3>;
923 #size-cells = <2>;
924 clocks = <&sys_clk 24>;
925 resets = <&sys_rst 24>;
926 num-lanes = <1>;
927 num-viewport = <1>;
928 bus-range = <0x0 0xff>;
929 device_type = "pci";
930 ranges =
931 /* downstream I/O */
932 <0x81000000 0 0x00000000 0x2ffe0000 0 0x00010000>,
933 /* non-prefetchable memory */
934 <0x82000000 0 0x20000000 0x20000000 0 0x0ffe0000>;
935 #interrupt-cells = <1>;
936 interrupt-names = "dma", "msi";
937 interrupts = <0 224 4>, <0 225 4>;
938 interrupt-map-mask = <0 0 0 7>;
939 interrupt-map = <0 0 0 1 &pcie_intc 0>, /* INTA */
940 <0 0 0 2 &pcie_intc 1>, /* INTB */
941 <0 0 0 3 &pcie_intc 2>, /* INTC */
942 <0 0 0 4 &pcie_intc 3>; /* INTD */
943 phy-names = "pcie-phy";
944 phys = <&pcie_phy>;
945
946 pcie_intc: legacy-interrupt-controller {
947 interrupt-controller;
948 #interrupt-cells = <1>;
949 interrupt-parent = <&gic>;
950 interrupts = <0 226 4>;
951 };
952 };
953
954 pcie_phy: phy@66038000 {
955 compatible = "socionext,uniphier-ld20-pcie-phy";
956 reg = <0x66038000 0x4000>;
957 #phy-cells = <0>;
Masahiro Yamada5e8f4ad2020-08-04 14:41:09 +0900958 clock-names = "link";
Masahiro Yamadac9026882019-04-12 18:55:50 +0900959 clocks = <&sys_clk 24>;
Masahiro Yamada5e8f4ad2020-08-04 14:41:09 +0900960 reset-names = "link";
Masahiro Yamadac9026882019-04-12 18:55:50 +0900961 resets = <&sys_rst 24>;
962 socionext,syscon = <&soc_glue>;
963 };
964
Masahiro Yamada277516a2020-02-28 21:57:19 +0900965 nand: nand-controller@68000000 {
Masahiro Yamada552acbf2017-04-20 16:54:44 +0900966 compatible = "socionext,uniphier-denali-nand-v5b";
Masahiro Yamada6e485b22016-12-05 18:31:39 +0900967 status = "disabled";
968 reg-names = "nand_data", "denali_reg";
969 reg = <0x68000000 0x20>, <0x68100000 0x1000>;
970 interrupts = <0 65 4>;
971 pinctrl-names = "default";
972 pinctrl-0 = <&pinctrl_nand>;
Masahiro Yamada6bd84d72018-12-19 20:03:21 +0900973 clock-names = "nand", "nand_x", "ecc";
974 clocks = <&sys_clk 2>, <&sys_clk 3>, <&sys_clk 3>;
Masahiro Yamadab226e522020-02-28 21:57:20 +0900975 reset-names = "nand", "reg";
976 resets = <&sys_rst 2>, <&sys_rst 2>;
Masahiro Yamada6e485b22016-12-05 18:31:39 +0900977 };
Masahiro Yamadad89bcf22016-03-18 16:41:48 +0900978 };
979};
980
Masahiro Yamada1a420bd2017-08-29 12:20:52 +0900981#include "uniphier-pinctrl.dtsi"
Masahiro Yamada0bc56842018-04-16 12:35:33 +0900982
983&pinctrl_aout1 {
984 drive-strength = <4>; /* default: 3.5mA */
985
986 ao1dacck {
987 pins = "AO1DACCK";
988 drive-strength = <5>; /* 5mA */
989 };
990};
991
992&pinctrl_aoutiec1 {
993 drive-strength = <4>; /* default: 3.5mA */
994
995 ao1arc {
996 pins = "AO1ARC";
997 drive-strength = <11>; /* 11mA */
998 };
999};