Loading...
1// SPDX-License-Identifier: GPL-2.0+ OR MIT
2//
3// Device Tree Source for UniPhier Pro5 SoC
4//
5// Copyright (C) 2015-2016 Socionext Inc.
6// Author: Masahiro Yamada <yamada.masahiro@socionext.com>
7
8#include <dt-bindings/interrupt-controller/arm-gic.h>
9
10/ {
11 compatible = "socionext,uniphier-pro5";
12 #address-cells = <1>;
13 #size-cells = <1>;
14
15 cpus {
16 #address-cells = <1>;
17 #size-cells = <0>;
18
19 cpu@0 {
20 device_type = "cpu";
21 compatible = "arm,cortex-a9";
22 reg = <0>;
23 clocks = <&sys_clk 32>;
24 enable-method = "psci";
25 next-level-cache = <&l2>;
26 operating-points-v2 = <&cpu_opp>;
27 };
28
29 cpu@1 {
30 device_type = "cpu";
31 compatible = "arm,cortex-a9";
32 reg = <1>;
33 clocks = <&sys_clk 32>;
34 enable-method = "psci";
35 next-level-cache = <&l2>;
36 operating-points-v2 = <&cpu_opp>;
37 };
38 };
39
40 cpu_opp: opp-table {
41 compatible = "operating-points-v2";
42 opp-shared;
43
44 opp-100000000 {
45 opp-hz = /bits/ 64 <100000000>;
46 clock-latency-ns = <300>;
47 };
48 opp-116667000 {
49 opp-hz = /bits/ 64 <116667000>;
50 clock-latency-ns = <300>;
51 };
52 opp-150000000 {
53 opp-hz = /bits/ 64 <150000000>;
54 clock-latency-ns = <300>;
55 };
56 opp-175000000 {
57 opp-hz = /bits/ 64 <175000000>;
58 clock-latency-ns = <300>;
59 };
60 opp-200000000 {
61 opp-hz = /bits/ 64 <200000000>;
62 clock-latency-ns = <300>;
63 };
64 opp-233334000 {
65 opp-hz = /bits/ 64 <233334000>;
66 clock-latency-ns = <300>;
67 };
68 opp-300000000 {
69 opp-hz = /bits/ 64 <300000000>;
70 clock-latency-ns = <300>;
71 };
72 opp-350000000 {
73 opp-hz = /bits/ 64 <350000000>;
74 clock-latency-ns = <300>;
75 };
76 opp-400000000 {
77 opp-hz = /bits/ 64 <400000000>;
78 clock-latency-ns = <300>;
79 };
80 opp-466667000 {
81 opp-hz = /bits/ 64 <466667000>;
82 clock-latency-ns = <300>;
83 };
84 opp-600000000 {
85 opp-hz = /bits/ 64 <600000000>;
86 clock-latency-ns = <300>;
87 };
88 opp-700000000 {
89 opp-hz = /bits/ 64 <700000000>;
90 clock-latency-ns = <300>;
91 };
92 opp-800000000 {
93 opp-hz = /bits/ 64 <800000000>;
94 clock-latency-ns = <300>;
95 };
96 opp-933334000 {
97 opp-hz = /bits/ 64 <933334000>;
98 clock-latency-ns = <300>;
99 };
100 opp-1200000000 {
101 opp-hz = /bits/ 64 <1200000000>;
102 clock-latency-ns = <300>;
103 };
104 opp-1400000000 {
105 opp-hz = /bits/ 64 <1400000000>;
106 clock-latency-ns = <300>;
107 };
108 };
109
110 psci {
111 compatible = "arm,psci-0.2";
112 method = "smc";
113 };
114
115 clocks {
116 refclk: ref {
117 compatible = "fixed-clock";
118 #clock-cells = <0>;
119 clock-frequency = <20000000>;
120 };
121
122 arm_timer_clk: arm-timer {
123 #clock-cells = <0>;
124 compatible = "fixed-clock";
125 clock-frequency = <50000000>;
126 };
127 };
128
129 soc {
130 compatible = "simple-bus";
131 #address-cells = <1>;
132 #size-cells = <1>;
133 ranges;
134 interrupt-parent = <&intc>;
135
136 l2: cache-controller@500c0000 {
137 compatible = "socionext,uniphier-system-cache";
138 reg = <0x500c0000 0x2000>, <0x503c0100 0x8>,
139 <0x506c0000 0x400>;
140 interrupts = <GIC_SPI 190 IRQ_TYPE_LEVEL_HIGH>,
141 <GIC_SPI 191 IRQ_TYPE_LEVEL_HIGH>;
142 cache-unified;
143 cache-size = <(2 * 1024 * 1024)>;
144 cache-sets = <512>;
145 cache-line-size = <128>;
146 cache-level = <2>;
147 next-level-cache = <&l3>;
148 };
149
150 l3: cache-controller@500c8000 {
151 compatible = "socionext,uniphier-system-cache";
152 reg = <0x500c8000 0x2000>, <0x503c8100 0x8>,
153 <0x506c8000 0x400>;
154 interrupts = <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>,
155 <GIC_SPI 175 IRQ_TYPE_LEVEL_HIGH>;
156 cache-unified;
157 cache-size = <(2 * 1024 * 1024)>;
158 cache-sets = <512>;
159 cache-line-size = <256>;
160 cache-level = <3>;
161 };
162
163 spi0: spi@54006000 {
164 compatible = "socionext,uniphier-scssi";
165 status = "disabled";
166 reg = <0x54006000 0x100>;
167 #address-cells = <1>;
168 #size-cells = <0>;
169 interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>;
170 pinctrl-names = "default";
171 pinctrl-0 = <&pinctrl_spi0>;
172 clocks = <&peri_clk 11>;
173 resets = <&peri_rst 11>;
174 };
175
176 spi1: spi@54006100 {
177 compatible = "socionext,uniphier-scssi";
178 status = "disabled";
179 reg = <0x54006100 0x100>;
180 #address-cells = <1>;
181 #size-cells = <0>;
182 interrupts = <GIC_SPI 216 IRQ_TYPE_LEVEL_HIGH>;
183 pinctrl-names = "default";
184 pinctrl-0 = <&pinctrl_spi1>;
185 clocks = <&peri_clk 11>; /* common with spi0 */
186 resets = <&peri_rst 12>;
187 };
188
189 serial0: serial@54006800 {
190 compatible = "socionext,uniphier-uart";
191 status = "disabled";
192 reg = <0x54006800 0x40>;
193 interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
194 pinctrl-names = "default";
195 pinctrl-0 = <&pinctrl_uart0>;
196 clocks = <&peri_clk 0>;
197 resets = <&peri_rst 0>;
198 };
199
200 serial1: serial@54006900 {
201 compatible = "socionext,uniphier-uart";
202 status = "disabled";
203 reg = <0x54006900 0x40>;
204 interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
205 pinctrl-names = "default";
206 pinctrl-0 = <&pinctrl_uart1>;
207 clocks = <&peri_clk 1>;
208 resets = <&peri_rst 1>;
209 };
210
211 serial2: serial@54006a00 {
212 compatible = "socionext,uniphier-uart";
213 status = "disabled";
214 reg = <0x54006a00 0x40>;
215 interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
216 pinctrl-names = "default";
217 pinctrl-0 = <&pinctrl_uart2>;
218 clocks = <&peri_clk 2>;
219 resets = <&peri_rst 2>;
220 };
221
222 serial3: serial@54006b00 {
223 compatible = "socionext,uniphier-uart";
224 status = "disabled";
225 reg = <0x54006b00 0x40>;
226 interrupts = <GIC_SPI 177 IRQ_TYPE_LEVEL_HIGH>;
227 pinctrl-names = "default";
228 pinctrl-0 = <&pinctrl_uart3>;
229 clocks = <&peri_clk 3>;
230 resets = <&peri_rst 3>;
231 };
232
233 gpio: gpio@55000000 {
234 compatible = "socionext,uniphier-gpio";
235 reg = <0x55000000 0x200>;
236 interrupt-parent = <&aidet>;
237 interrupt-controller;
238 #interrupt-cells = <2>;
239 gpio-controller;
240 #gpio-cells = <2>;
241 gpio-ranges = <&pinctrl 0 0 0>;
242 gpio-ranges-group-names = "gpio_range";
243 ngpios = <248>;
244 socionext,interrupt-ranges = <0 48 16>, <16 154 5>;
245 };
246
247 i2c0: i2c@58780000 {
248 compatible = "socionext,uniphier-fi2c";
249 status = "disabled";
250 reg = <0x58780000 0x80>;
251 #address-cells = <1>;
252 #size-cells = <0>;
253 interrupts = <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>;
254 pinctrl-names = "default";
255 pinctrl-0 = <&pinctrl_i2c0>;
256 clocks = <&peri_clk 4>;
257 resets = <&peri_rst 4>;
258 clock-frequency = <100000>;
259 };
260
261 i2c1: i2c@58781000 {
262 compatible = "socionext,uniphier-fi2c";
263 status = "disabled";
264 reg = <0x58781000 0x80>;
265 #address-cells = <1>;
266 #size-cells = <0>;
267 interrupts = <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>;
268 pinctrl-names = "default";
269 pinctrl-0 = <&pinctrl_i2c1>;
270 clocks = <&peri_clk 5>;
271 resets = <&peri_rst 5>;
272 clock-frequency = <100000>;
273 };
274
275 i2c2: i2c@58782000 {
276 compatible = "socionext,uniphier-fi2c";
277 status = "disabled";
278 reg = <0x58782000 0x80>;
279 #address-cells = <1>;
280 #size-cells = <0>;
281 interrupts = <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>;
282 pinctrl-names = "default";
283 pinctrl-0 = <&pinctrl_i2c2>;
284 clocks = <&peri_clk 6>;
285 resets = <&peri_rst 6>;
286 clock-frequency = <100000>;
287 };
288
289 i2c3: i2c@58783000 {
290 compatible = "socionext,uniphier-fi2c";
291 status = "disabled";
292 reg = <0x58783000 0x80>;
293 #address-cells = <1>;
294 #size-cells = <0>;
295 interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>;
296 pinctrl-names = "default";
297 pinctrl-0 = <&pinctrl_i2c3>;
298 clocks = <&peri_clk 7>;
299 resets = <&peri_rst 7>;
300 clock-frequency = <100000>;
301 };
302
303 /* i2c4 does not exist */
304
305 /* chip-internal connection for DMD */
306 i2c5: i2c@58785000 {
307 compatible = "socionext,uniphier-fi2c";
308 reg = <0x58785000 0x80>;
309 #address-cells = <1>;
310 #size-cells = <0>;
311 interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>;
312 clocks = <&peri_clk 9>;
313 resets = <&peri_rst 9>;
314 clock-frequency = <400000>;
315 };
316
317 /* chip-internal connection for HDMI */
318 i2c6: i2c@58786000 {
319 compatible = "socionext,uniphier-fi2c";
320 reg = <0x58786000 0x80>;
321 #address-cells = <1>;
322 #size-cells = <0>;
323 interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>;
324 clocks = <&peri_clk 10>;
325 resets = <&peri_rst 10>;
326 clock-frequency = <400000>;
327 };
328
329 system_bus: system-bus@58c00000 {
330 compatible = "socionext,uniphier-system-bus";
331 status = "disabled";
332 reg = <0x58c00000 0x400>;
333 #address-cells = <2>;
334 #size-cells = <1>;
335 pinctrl-names = "default";
336 pinctrl-0 = <&pinctrl_system_bus>;
337 };
338
339 smpctrl@59801000 {
340 compatible = "socionext,uniphier-smpctrl";
341 reg = <0x59801000 0x400>;
342 };
343
344 sdctrl@59810000 {
345 compatible = "socionext,uniphier-pro5-sdctrl",
346 "simple-mfd", "syscon";
347 reg = <0x59810000 0x400>;
348
349 sd_clk: clock {
350 compatible = "socionext,uniphier-pro5-sd-clock";
351 #clock-cells = <1>;
352 };
353
354 sd_rst: reset {
355 compatible = "socionext,uniphier-pro5-sd-reset";
356 #reset-cells = <1>;
357 };
358 };
359
360 perictrl@59820000 {
361 compatible = "socionext,uniphier-pro5-perictrl",
362 "simple-mfd", "syscon";
363 reg = <0x59820000 0x200>;
364
365 peri_clk: clock {
366 compatible = "socionext,uniphier-pro5-peri-clock";
367 #clock-cells = <1>;
368 };
369
370 peri_rst: reset {
371 compatible = "socionext,uniphier-pro5-peri-reset";
372 #reset-cells = <1>;
373 };
374 };
375
376 soc-glue@5f800000 {
377 compatible = "socionext,uniphier-pro5-soc-glue",
378 "simple-mfd", "syscon";
379 reg = <0x5f800000 0x2000>;
380
381 pinctrl: pinctrl {
382 compatible = "socionext,uniphier-pro5-pinctrl";
383 };
384 };
385
386 soc-glue@5f900000 {
387 compatible = "socionext,uniphier-pro5-soc-glue-debug",
388 "simple-mfd";
389 #address-cells = <1>;
390 #size-cells = <1>;
391 ranges = <0 0x5f900000 0x2000>;
392
393 efuse@100 {
394 compatible = "socionext,uniphier-efuse";
395 reg = <0x100 0x28>;
396 };
397
398 efuse@130 {
399 compatible = "socionext,uniphier-efuse";
400 reg = <0x130 0x8>;
401 };
402
403 efuse@200 {
404 compatible = "socionext,uniphier-efuse";
405 reg = <0x200 0x28>;
406 };
407
408 efuse@300 {
409 compatible = "socionext,uniphier-efuse";
410 reg = <0x300 0x14>;
411 };
412
413 efuse@400 {
414 compatible = "socionext,uniphier-efuse";
415 reg = <0x400 0x8>;
416 };
417 };
418
419 xdmac: dma-controller@5fc10000 {
420 compatible = "socionext,uniphier-xdmac";
421 reg = <0x5fc10000 0x5300>;
422 interrupts = <GIC_SPI 188 IRQ_TYPE_LEVEL_HIGH>;
423 dma-channels = <16>;
424 #dma-cells = <2>;
425 };
426
427 aidet: interrupt-controller@5fc20000 {
428 compatible = "socionext,uniphier-pro5-aidet";
429 reg = <0x5fc20000 0x200>;
430 interrupt-controller;
431 #interrupt-cells = <2>;
432 };
433
434 timer@60000200 {
435 compatible = "arm,cortex-a9-global-timer";
436 reg = <0x60000200 0x20>;
437 interrupts = <GIC_PPI 11
438 (GIC_CPU_MASK_RAW(3) | IRQ_TYPE_LEVEL_HIGH)>;
439 clocks = <&arm_timer_clk>;
440 };
441
442 timer@60000600 {
443 compatible = "arm,cortex-a9-twd-timer";
444 reg = <0x60000600 0x20>;
445 interrupts = <GIC_PPI 13
446 (GIC_CPU_MASK_RAW(3) | IRQ_TYPE_LEVEL_HIGH)>;
447 clocks = <&arm_timer_clk>;
448 };
449
450 intc: interrupt-controller@60001000 {
451 compatible = "arm,cortex-a9-gic";
452 reg = <0x60001000 0x1000>,
453 <0x60000100 0x100>;
454 #interrupt-cells = <3>;
455 interrupt-controller;
456 };
457
458 sysctrl@61840000 {
459 compatible = "socionext,uniphier-pro5-sysctrl",
460 "simple-mfd", "syscon";
461 reg = <0x61840000 0x10000>;
462
463 sys_clk: clock {
464 compatible = "socionext,uniphier-pro5-clock";
465 #clock-cells = <1>;
466 };
467
468 sys_rst: reset {
469 compatible = "socionext,uniphier-pro5-reset";
470 #reset-cells = <1>;
471 };
472 };
473
474 usb0: usb@65a00000 {
475 compatible = "socionext,uniphier-dwc3", "snps,dwc3";
476 status = "disabled";
477 reg = <0x65a00000 0xcd00>;
478 interrupt-names = "host";
479 interrupts = <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>;
480 pinctrl-names = "default";
481 pinctrl-0 = <&pinctrl_usb0>;
482 clock-names = "ref", "bus_early", "suspend";
483 clocks = <&sys_clk 12>, <&sys_clk 12>, <&sys_clk 12>;
484 resets = <&usb0_rst 15>;
485 phys = <&usb0_hsphy0>, <&usb0_ssphy0>;
486 dr_mode = "host";
487 };
488
489 usb-controller@65b00000 {
490 compatible = "socionext,uniphier-pro5-dwc3-glue",
491 "simple-mfd";
492 #address-cells = <1>;
493 #size-cells = <1>;
494 ranges = <0 0x65b00000 0x400>;
495
496 usb0_rst: reset@0 {
497 compatible = "socionext,uniphier-pro5-usb3-reset";
498 reg = <0x0 0x4>;
499 #reset-cells = <1>;
500 clock-names = "gio", "link";
501 clocks = <&sys_clk 12>, <&sys_clk 14>;
502 reset-names = "gio", "link";
503 resets = <&sys_rst 12>, <&sys_rst 14>;
504 };
505
506 usb0_vbus0: regulator@100 {
507 compatible = "socionext,uniphier-pro5-usb3-regulator";
508 reg = <0x100 0x10>;
509 clock-names = "gio", "link";
510 clocks = <&sys_clk 12>, <&sys_clk 14>;
511 reset-names = "gio", "link";
512 resets = <&sys_rst 12>, <&sys_rst 14>;
513 };
514
515 usb0_hsphy0: hs-phy@280 {
516 compatible = "socionext,uniphier-pro5-usb3-hsphy";
517 reg = <0x280 0x10>;
518 #phy-cells = <0>;
519 clock-names = "gio", "link";
520 clocks = <&sys_clk 12>, <&sys_clk 14>;
521 reset-names = "gio", "link";
522 resets = <&sys_rst 12>, <&sys_rst 14>;
523 vbus-supply = <&usb0_vbus0>;
524 };
525
526 usb0_ssphy0: ss-phy@380 {
527 compatible = "socionext,uniphier-pro5-usb3-ssphy";
528 reg = <0x380 0x10>;
529 #phy-cells = <0>;
530 clock-names = "gio", "link";
531 clocks = <&sys_clk 12>, <&sys_clk 14>;
532 reset-names = "gio", "link";
533 resets = <&sys_rst 12>, <&sys_rst 14>;
534 vbus-supply = <&usb0_vbus0>;
535 };
536 };
537
538 usb1: usb@65c00000 {
539 compatible = "socionext,uniphier-dwc3", "snps,dwc3";
540 status = "disabled";
541 reg = <0x65c00000 0xcd00>;
542 interrupt-names = "host";
543 interrupts = <GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>;
544 pinctrl-names = "default";
545 pinctrl-0 = <&pinctrl_usb1>, <&pinctrl_usb2>;
546 clock-names = "ref", "bus_early", "suspend";
547 clocks = <&sys_clk 12>, <&sys_clk 12>, <&sys_clk 12>;
548 resets = <&usb1_rst 15>;
549 phys = <&usb1_hsphy0>, <&usb1_hsphy1>, <&usb1_ssphy0>;
550 dr_mode = "host";
551 };
552
553 usb-controller@65d00000 {
554 compatible = "socionext,uniphier-pro5-dwc3-glue",
555 "simple-mfd";
556 #address-cells = <1>;
557 #size-cells = <1>;
558 ranges = <0 0x65d00000 0x400>;
559
560 usb1_rst: reset@0 {
561 compatible = "socionext,uniphier-pro5-usb3-reset";
562 reg = <0x0 0x4>;
563 #reset-cells = <1>;
564 clock-names = "gio", "link";
565 clocks = <&sys_clk 12>, <&sys_clk 15>;
566 reset-names = "gio", "link";
567 resets = <&sys_rst 12>, <&sys_rst 15>;
568 };
569
570 usb1_vbus0: regulator@100 {
571 compatible = "socionext,uniphier-pro5-usb3-regulator";
572 reg = <0x100 0x10>;
573 clock-names = "gio", "link";
574 clocks = <&sys_clk 12>, <&sys_clk 15>;
575 reset-names = "gio", "link";
576 resets = <&sys_rst 12>, <&sys_rst 15>;
577 };
578
579 usb1_vbus1: regulator@110 {
580 compatible = "socionext,uniphier-pro5-usb3-regulator";
581 reg = <0x110 0x10>;
582 clock-names = "gio", "link";
583 clocks = <&sys_clk 12>, <&sys_clk 15>;
584 reset-names = "gio", "link";
585 resets = <&sys_rst 12>, <&sys_rst 15>;
586 };
587
588 usb1_hsphy0: hs-phy@280 {
589 compatible = "socionext,uniphier-pro5-usb3-hsphy";
590 reg = <0x280 0x10>;
591 #phy-cells = <0>;
592 clock-names = "gio", "link";
593 clocks = <&sys_clk 12>, <&sys_clk 15>;
594 reset-names = "gio", "link";
595 resets = <&sys_rst 12>, <&sys_rst 15>;
596 vbus-supply = <&usb1_vbus0>;
597 };
598
599 usb1_hsphy1: hs-phy@290 {
600 compatible = "socionext,uniphier-pro5-usb3-hsphy";
601 reg = <0x290 0x10>;
602 #phy-cells = <0>;
603 clock-names = "gio", "link";
604 clocks = <&sys_clk 12>, <&sys_clk 15>;
605 reset-names = "gio", "link";
606 resets = <&sys_rst 12>, <&sys_rst 15>;
607 vbus-supply = <&usb1_vbus1>;
608 };
609
610 usb1_ssphy0: ss-phy@380 {
611 compatible = "socionext,uniphier-pro5-usb3-ssphy";
612 reg = <0x380 0x10>;
613 #phy-cells = <0>;
614 clock-names = "gio", "link";
615 clocks = <&sys_clk 12>, <&sys_clk 15>;
616 reset-names = "gio", "link";
617 resets = <&sys_rst 12>, <&sys_rst 15>;
618 vbus-supply = <&usb1_vbus0>;
619 };
620 };
621
622 pcie_ep: pcie-ep@66000000 {
623 compatible = "socionext,uniphier-pro5-pcie-ep";
624 status = "disabled";
625 reg-names = "dbi", "dbi2", "link", "addr_space";
626 reg = <0x66000000 0x1000>, <0x66001000 0x1000>,
627 <0x66010000 0x10000>, <0x67000000 0x400000>;
628 pinctrl-names = "default";
629 pinctrl-0 = <&pinctrl_pcie>;
630 clock-names = "gio", "link";
631 clocks = <&sys_clk 12>, <&sys_clk 24>;
632 reset-names = "gio", "link";
633 resets = <&sys_rst 12>, <&sys_rst 24>;
634 num-ib-windows = <16>;
635 num-ob-windows = <16>;
636 num-lanes = <4>;
637 phy-names = "pcie-phy";
638 phys = <&pcie_phy>;
639 };
640
641 pcie_phy: phy@66038000 {
642 compatible = "socionext,uniphier-pro5-pcie-phy";
643 reg = <0x66038000 0x4000>;
644 #phy-cells = <0>;
645 clock-names = "gio", "link";
646 clocks = <&sys_clk 12>, <&sys_clk 24>;
647 reset-names = "gio", "link";
648 resets = <&sys_rst 12>, <&sys_rst 24>;
649 };
650
651 nand: nand-controller@68000000 {
652 compatible = "socionext,uniphier-denali-nand-v5b";
653 status = "disabled";
654 reg-names = "nand_data", "denali_reg";
655 reg = <0x68000000 0x20>, <0x68100000 0x1000>;
656 #address-cells = <1>;
657 #size-cells = <0>;
658 interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>;
659 pinctrl-names = "default";
660 pinctrl-0 = <&pinctrl_nand>;
661 clock-names = "nand", "nand_x", "ecc";
662 clocks = <&sys_clk 2>, <&sys_clk 3>, <&sys_clk 3>;
663 reset-names = "nand", "reg";
664 resets = <&sys_rst 2>, <&sys_rst 2>;
665 };
666
667 emmc: mmc@68400000 {
668 compatible = "socionext,uniphier-sd-v3.1";
669 status = "disabled";
670 reg = <0x68400000 0x800>;
671 interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>;
672 pinctrl-names = "default";
673 pinctrl-0 = <&pinctrl_emmc>;
674 clocks = <&sd_clk 1>;
675 reset-names = "host", "hw";
676 resets = <&sd_rst 1>, <&sd_rst 6>;
677 bus-width = <8>;
678 cap-mmc-highspeed;
679 cap-mmc-hw-reset;
680 non-removable;
681 };
682
683 sd: mmc@68800000 {
684 compatible = "socionext,uniphier-sd-v3.1";
685 status = "disabled";
686 reg = <0x68800000 0x800>;
687 interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>;
688 pinctrl-names = "default", "uhs";
689 pinctrl-0 = <&pinctrl_sd>;
690 pinctrl-1 = <&pinctrl_sd_uhs>;
691 clocks = <&sd_clk 0>;
692 reset-names = "host";
693 resets = <&sd_rst 0>;
694 bus-width = <4>;
695 cap-sd-highspeed;
696 sd-uhs-sdr12;
697 sd-uhs-sdr25;
698 sd-uhs-sdr50;
699 };
700 };
701};
702
703#include "uniphier-pinctrl.dtsi"
1// SPDX-License-Identifier: GPL-2.0+ OR MIT
2//
3// Device Tree Source for UniPhier Pro5 SoC
4//
5// Copyright (C) 2015-2016 Socionext Inc.
6// Author: Masahiro Yamada <yamada.masahiro@socionext.com>
7
8/ {
9 compatible = "socionext,uniphier-pro5";
10 #address-cells = <1>;
11 #size-cells = <1>;
12
13 cpus {
14 #address-cells = <1>;
15 #size-cells = <0>;
16
17 cpu@0 {
18 device_type = "cpu";
19 compatible = "arm,cortex-a9";
20 reg = <0>;
21 clocks = <&sys_clk 32>;
22 enable-method = "psci";
23 next-level-cache = <&l2>;
24 operating-points-v2 = <&cpu_opp>;
25 };
26
27 cpu@1 {
28 device_type = "cpu";
29 compatible = "arm,cortex-a9";
30 reg = <1>;
31 clocks = <&sys_clk 32>;
32 enable-method = "psci";
33 next-level-cache = <&l2>;
34 operating-points-v2 = <&cpu_opp>;
35 };
36 };
37
38 cpu_opp: opp-table {
39 compatible = "operating-points-v2";
40 opp-shared;
41
42 opp-100000000 {
43 opp-hz = /bits/ 64 <100000000>;
44 clock-latency-ns = <300>;
45 };
46 opp-116667000 {
47 opp-hz = /bits/ 64 <116667000>;
48 clock-latency-ns = <300>;
49 };
50 opp-150000000 {
51 opp-hz = /bits/ 64 <150000000>;
52 clock-latency-ns = <300>;
53 };
54 opp-175000000 {
55 opp-hz = /bits/ 64 <175000000>;
56 clock-latency-ns = <300>;
57 };
58 opp-200000000 {
59 opp-hz = /bits/ 64 <200000000>;
60 clock-latency-ns = <300>;
61 };
62 opp-233334000 {
63 opp-hz = /bits/ 64 <233334000>;
64 clock-latency-ns = <300>;
65 };
66 opp-300000000 {
67 opp-hz = /bits/ 64 <300000000>;
68 clock-latency-ns = <300>;
69 };
70 opp-350000000 {
71 opp-hz = /bits/ 64 <350000000>;
72 clock-latency-ns = <300>;
73 };
74 opp-400000000 {
75 opp-hz = /bits/ 64 <400000000>;
76 clock-latency-ns = <300>;
77 };
78 opp-466667000 {
79 opp-hz = /bits/ 64 <466667000>;
80 clock-latency-ns = <300>;
81 };
82 opp-600000000 {
83 opp-hz = /bits/ 64 <600000000>;
84 clock-latency-ns = <300>;
85 };
86 opp-700000000 {
87 opp-hz = /bits/ 64 <700000000>;
88 clock-latency-ns = <300>;
89 };
90 opp-800000000 {
91 opp-hz = /bits/ 64 <800000000>;
92 clock-latency-ns = <300>;
93 };
94 opp-933334000 {
95 opp-hz = /bits/ 64 <933334000>;
96 clock-latency-ns = <300>;
97 };
98 opp-1200000000 {
99 opp-hz = /bits/ 64 <1200000000>;
100 clock-latency-ns = <300>;
101 };
102 opp-1400000000 {
103 opp-hz = /bits/ 64 <1400000000>;
104 clock-latency-ns = <300>;
105 };
106 };
107
108 psci {
109 compatible = "arm,psci-0.2";
110 method = "smc";
111 };
112
113 clocks {
114 refclk: ref {
115 compatible = "fixed-clock";
116 #clock-cells = <0>;
117 clock-frequency = <20000000>;
118 };
119
120 arm_timer_clk: arm-timer {
121 #clock-cells = <0>;
122 compatible = "fixed-clock";
123 clock-frequency = <50000000>;
124 };
125 };
126
127 soc {
128 compatible = "simple-bus";
129 #address-cells = <1>;
130 #size-cells = <1>;
131 ranges;
132 interrupt-parent = <&intc>;
133
134 l2: l2-cache@500c0000 {
135 compatible = "socionext,uniphier-system-cache";
136 reg = <0x500c0000 0x2000>, <0x503c0100 0x8>,
137 <0x506c0000 0x400>;
138 interrupts = <0 190 4>, <0 191 4>;
139 cache-unified;
140 cache-size = <(2 * 1024 * 1024)>;
141 cache-sets = <512>;
142 cache-line-size = <128>;
143 cache-level = <2>;
144 next-level-cache = <&l3>;
145 };
146
147 l3: l3-cache@500c8000 {
148 compatible = "socionext,uniphier-system-cache";
149 reg = <0x500c8000 0x2000>, <0x503c8100 0x8>,
150 <0x506c8000 0x400>;
151 interrupts = <0 174 4>, <0 175 4>;
152 cache-unified;
153 cache-size = <(2 * 1024 * 1024)>;
154 cache-sets = <512>;
155 cache-line-size = <256>;
156 cache-level = <3>;
157 };
158
159 spi0: spi@54006000 {
160 compatible = "socionext,uniphier-scssi";
161 status = "disabled";
162 reg = <0x54006000 0x100>;
163 interrupts = <0 39 4>;
164 pinctrl-names = "default";
165 pinctrl-0 = <&pinctrl_spi0>;
166 clocks = <&peri_clk 11>;
167 resets = <&peri_rst 11>;
168 };
169
170 spi1: spi@54006100 {
171 compatible = "socionext,uniphier-scssi";
172 status = "disabled";
173 reg = <0x54006100 0x100>;
174 interrupts = <0 216 4>;
175 pinctrl-names = "default";
176 pinctrl-0 = <&pinctrl_spi1>;
177 clocks = <&peri_clk 11>;
178 resets = <&peri_rst 11>;
179 };
180
181 serial0: serial@54006800 {
182 compatible = "socionext,uniphier-uart";
183 status = "disabled";
184 reg = <0x54006800 0x40>;
185 interrupts = <0 33 4>;
186 pinctrl-names = "default";
187 pinctrl-0 = <&pinctrl_uart0>;
188 clocks = <&peri_clk 0>;
189 resets = <&peri_rst 0>;
190 };
191
192 serial1: serial@54006900 {
193 compatible = "socionext,uniphier-uart";
194 status = "disabled";
195 reg = <0x54006900 0x40>;
196 interrupts = <0 35 4>;
197 pinctrl-names = "default";
198 pinctrl-0 = <&pinctrl_uart1>;
199 clocks = <&peri_clk 1>;
200 resets = <&peri_rst 1>;
201 };
202
203 serial2: serial@54006a00 {
204 compatible = "socionext,uniphier-uart";
205 status = "disabled";
206 reg = <0x54006a00 0x40>;
207 interrupts = <0 37 4>;
208 pinctrl-names = "default";
209 pinctrl-0 = <&pinctrl_uart2>;
210 clocks = <&peri_clk 2>;
211 resets = <&peri_rst 2>;
212 };
213
214 serial3: serial@54006b00 {
215 compatible = "socionext,uniphier-uart";
216 status = "disabled";
217 reg = <0x54006b00 0x40>;
218 interrupts = <0 177 4>;
219 pinctrl-names = "default";
220 pinctrl-0 = <&pinctrl_uart3>;
221 clocks = <&peri_clk 3>;
222 resets = <&peri_rst 3>;
223 };
224
225 gpio: gpio@55000000 {
226 compatible = "socionext,uniphier-gpio";
227 reg = <0x55000000 0x200>;
228 interrupt-parent = <&aidet>;
229 interrupt-controller;
230 #interrupt-cells = <2>;
231 gpio-controller;
232 #gpio-cells = <2>;
233 gpio-ranges = <&pinctrl 0 0 0>;
234 gpio-ranges-group-names = "gpio_range";
235 ngpios = <248>;
236 socionext,interrupt-ranges = <0 48 16>, <16 154 5>;
237 };
238
239 i2c0: i2c@58780000 {
240 compatible = "socionext,uniphier-fi2c";
241 status = "disabled";
242 reg = <0x58780000 0x80>;
243 #address-cells = <1>;
244 #size-cells = <0>;
245 interrupts = <0 41 4>;
246 pinctrl-names = "default";
247 pinctrl-0 = <&pinctrl_i2c0>;
248 clocks = <&peri_clk 4>;
249 resets = <&peri_rst 4>;
250 clock-frequency = <100000>;
251 };
252
253 i2c1: i2c@58781000 {
254 compatible = "socionext,uniphier-fi2c";
255 status = "disabled";
256 reg = <0x58781000 0x80>;
257 #address-cells = <1>;
258 #size-cells = <0>;
259 interrupts = <0 42 4>;
260 pinctrl-names = "default";
261 pinctrl-0 = <&pinctrl_i2c1>;
262 clocks = <&peri_clk 5>;
263 resets = <&peri_rst 5>;
264 clock-frequency = <100000>;
265 };
266
267 i2c2: i2c@58782000 {
268 compatible = "socionext,uniphier-fi2c";
269 status = "disabled";
270 reg = <0x58782000 0x80>;
271 #address-cells = <1>;
272 #size-cells = <0>;
273 interrupts = <0 43 4>;
274 pinctrl-names = "default";
275 pinctrl-0 = <&pinctrl_i2c2>;
276 clocks = <&peri_clk 6>;
277 resets = <&peri_rst 6>;
278 clock-frequency = <100000>;
279 };
280
281 i2c3: i2c@58783000 {
282 compatible = "socionext,uniphier-fi2c";
283 status = "disabled";
284 reg = <0x58783000 0x80>;
285 #address-cells = <1>;
286 #size-cells = <0>;
287 interrupts = <0 44 4>;
288 pinctrl-names = "default";
289 pinctrl-0 = <&pinctrl_i2c3>;
290 clocks = <&peri_clk 7>;
291 resets = <&peri_rst 7>;
292 clock-frequency = <100000>;
293 };
294
295 /* i2c4 does not exist */
296
297 /* chip-internal connection for DMD */
298 i2c5: i2c@58785000 {
299 compatible = "socionext,uniphier-fi2c";
300 reg = <0x58785000 0x80>;
301 #address-cells = <1>;
302 #size-cells = <0>;
303 interrupts = <0 25 4>;
304 clocks = <&peri_clk 9>;
305 resets = <&peri_rst 9>;
306 clock-frequency = <400000>;
307 };
308
309 /* chip-internal connection for HDMI */
310 i2c6: i2c@58786000 {
311 compatible = "socionext,uniphier-fi2c";
312 reg = <0x58786000 0x80>;
313 #address-cells = <1>;
314 #size-cells = <0>;
315 interrupts = <0 26 4>;
316 clocks = <&peri_clk 10>;
317 resets = <&peri_rst 10>;
318 clock-frequency = <400000>;
319 };
320
321 system_bus: system-bus@58c00000 {
322 compatible = "socionext,uniphier-system-bus";
323 status = "disabled";
324 reg = <0x58c00000 0x400>;
325 #address-cells = <2>;
326 #size-cells = <1>;
327 pinctrl-names = "default";
328 pinctrl-0 = <&pinctrl_system_bus>;
329 };
330
331 smpctrl@59801000 {
332 compatible = "socionext,uniphier-smpctrl";
333 reg = <0x59801000 0x400>;
334 };
335
336 sdctrl@59810000 {
337 compatible = "socionext,uniphier-pro5-sdctrl",
338 "simple-mfd", "syscon";
339 reg = <0x59810000 0x400>;
340
341 sd_clk: clock {
342 compatible = "socionext,uniphier-pro5-sd-clock";
343 #clock-cells = <1>;
344 };
345
346 sd_rst: reset {
347 compatible = "socionext,uniphier-pro5-sd-reset";
348 #reset-cells = <1>;
349 };
350 };
351
352 perictrl@59820000 {
353 compatible = "socionext,uniphier-pro5-perictrl",
354 "simple-mfd", "syscon";
355 reg = <0x59820000 0x200>;
356
357 peri_clk: clock {
358 compatible = "socionext,uniphier-pro5-peri-clock";
359 #clock-cells = <1>;
360 };
361
362 peri_rst: reset {
363 compatible = "socionext,uniphier-pro5-peri-reset";
364 #reset-cells = <1>;
365 };
366 };
367
368 soc-glue@5f800000 {
369 compatible = "socionext,uniphier-pro5-soc-glue",
370 "simple-mfd", "syscon";
371 reg = <0x5f800000 0x2000>;
372
373 pinctrl: pinctrl {
374 compatible = "socionext,uniphier-pro5-pinctrl";
375 };
376 };
377
378 soc-glue@5f900000 {
379 compatible = "socionext,uniphier-pro5-soc-glue-debug",
380 "simple-mfd";
381 #address-cells = <1>;
382 #size-cells = <1>;
383 ranges = <0 0x5f900000 0x2000>;
384
385 efuse@100 {
386 compatible = "socionext,uniphier-efuse";
387 reg = <0x100 0x28>;
388 };
389
390 efuse@130 {
391 compatible = "socionext,uniphier-efuse";
392 reg = <0x130 0x8>;
393 };
394
395 efuse@200 {
396 compatible = "socionext,uniphier-efuse";
397 reg = <0x200 0x28>;
398 };
399
400 efuse@300 {
401 compatible = "socionext,uniphier-efuse";
402 reg = <0x300 0x14>;
403 };
404
405 efuse@400 {
406 compatible = "socionext,uniphier-efuse";
407 reg = <0x400 0x8>;
408 };
409 };
410
411 aidet: aidet@5fc20000 {
412 compatible = "socionext,uniphier-pro5-aidet";
413 reg = <0x5fc20000 0x200>;
414 interrupt-controller;
415 #interrupt-cells = <2>;
416 };
417
418 timer@60000200 {
419 compatible = "arm,cortex-a9-global-timer";
420 reg = <0x60000200 0x20>;
421 interrupts = <1 11 0x304>;
422 clocks = <&arm_timer_clk>;
423 };
424
425 timer@60000600 {
426 compatible = "arm,cortex-a9-twd-timer";
427 reg = <0x60000600 0x20>;
428 interrupts = <1 13 0x304>;
429 clocks = <&arm_timer_clk>;
430 };
431
432 intc: interrupt-controller@60001000 {
433 compatible = "arm,cortex-a9-gic";
434 reg = <0x60001000 0x1000>,
435 <0x60000100 0x100>;
436 #interrupt-cells = <3>;
437 interrupt-controller;
438 };
439
440 sysctrl@61840000 {
441 compatible = "socionext,uniphier-pro5-sysctrl",
442 "simple-mfd", "syscon";
443 reg = <0x61840000 0x10000>;
444
445 sys_clk: clock {
446 compatible = "socionext,uniphier-pro5-clock";
447 #clock-cells = <1>;
448 };
449
450 sys_rst: reset {
451 compatible = "socionext,uniphier-pro5-reset";
452 #reset-cells = <1>;
453 };
454 };
455
456 nand: nand@68000000 {
457 compatible = "socionext,uniphier-denali-nand-v5b";
458 status = "disabled";
459 reg-names = "nand_data", "denali_reg";
460 reg = <0x68000000 0x20>, <0x68100000 0x1000>;
461 #address-cells = <1>;
462 #size-cells = <0>;
463 interrupts = <0 65 4>;
464 pinctrl-names = "default";
465 pinctrl-0 = <&pinctrl_nand>;
466 clock-names = "nand", "nand_x", "ecc";
467 clocks = <&sys_clk 2>, <&sys_clk 3>, <&sys_clk 3>;
468 resets = <&sys_rst 2>;
469 };
470
471 emmc: sdhc@68400000 {
472 compatible = "socionext,uniphier-sd-v3.1";
473 status = "disabled";
474 reg = <0x68400000 0x800>;
475 interrupts = <0 78 4>;
476 pinctrl-names = "default";
477 pinctrl-0 = <&pinctrl_emmc>;
478 clocks = <&sd_clk 1>;
479 reset-names = "host", "hw";
480 resets = <&sd_rst 1>, <&sd_rst 6>;
481 bus-width = <8>;
482 cap-mmc-highspeed;
483 cap-mmc-hw-reset;
484 non-removable;
485 };
486
487 sd: sdhc@68800000 {
488 compatible = "socionext,uniphier-sd-v3.1";
489 status = "disabled";
490 reg = <0x68800000 0x800>;
491 interrupts = <0 76 4>;
492 pinctrl-names = "default", "uhs";
493 pinctrl-0 = <&pinctrl_sd>;
494 pinctrl-1 = <&pinctrl_sd_uhs>;
495 clocks = <&sd_clk 0>;
496 reset-names = "host";
497 resets = <&sd_rst 0>;
498 bus-width = <4>;
499 cap-sd-highspeed;
500 sd-uhs-sdr12;
501 sd-uhs-sdr25;
502 sd-uhs-sdr50;
503 };
504 };
505};
506
507#include "uniphier-pinctrl.dtsi"