1 // SPDX-License-Identifier: GPL-2.0+ OR MIT
3 // Device Tree Source for UniPhier LD11 SoC
5 // Copyright (C) 2016 Socionext Inc.
6 // Author: Masahiro Yamada <yamada.masahiro@socionext.com>
8 #include <dt-bindings/gpio/gpio.h>
9 #include <dt-bindings/gpio/uniphier-gpio.h>
12 compatible = "socionext,uniphier-ld11";
15 interrupt-parent = <&gic>;
34 compatible = "arm,cortex-a53";
36 clocks = <&sys_clk 33>;
37 enable-method = "psci";
38 operating-points-v2 = <&cluster0_opp>;
43 compatible = "arm,cortex-a53";
45 clocks = <&sys_clk 33>;
46 enable-method = "psci";
47 operating-points-v2 = <&cluster0_opp>;
51 cluster0_opp: opp-table {
52 compatible = "operating-points-v2";
56 opp-hz = /bits/ 64 <245000000>;
57 clock-latency-ns = <300>;
60 opp-hz = /bits/ 64 <250000000>;
61 clock-latency-ns = <300>;
64 opp-hz = /bits/ 64 <490000000>;
65 clock-latency-ns = <300>;
68 opp-hz = /bits/ 64 <500000000>;
69 clock-latency-ns = <300>;
72 opp-hz = /bits/ 64 <653334000>;
73 clock-latency-ns = <300>;
76 opp-hz = /bits/ 64 <666667000>;
77 clock-latency-ns = <300>;
80 opp-hz = /bits/ 64 <980000000>;
81 clock-latency-ns = <300>;
86 compatible = "arm,psci-1.0";
92 compatible = "fixed-clock";
94 clock-frequency = <25000000>;
98 emmc_pwrseq: emmc-pwrseq {
99 compatible = "mmc-pwrseq-emmc";
100 reset-gpios = <&gpio UNIPHIER_GPIO_PORT(3, 2) GPIO_ACTIVE_LOW>;
104 compatible = "arm,armv8-timer";
105 interrupts = <1 13 4>,
112 #address-cells = <2>;
116 secure-memory@81000000 {
117 reg = <0x0 0x81000000 0x0 0x01000000>;
123 compatible = "simple-bus";
124 #address-cells = <1>;
126 ranges = <0 0 0 0xffffffff>;
129 compatible = "socionext,uniphier-scssi";
131 reg = <0x54006000 0x100>;
132 #address-cells = <1>;
134 interrupts = <0 39 4>;
135 pinctrl-names = "default";
136 pinctrl-0 = <&pinctrl_spi0>;
137 clocks = <&peri_clk 11>;
138 resets = <&peri_rst 11>;
142 compatible = "socionext,uniphier-scssi";
144 reg = <0x54006100 0x100>;
145 #address-cells = <1>;
147 interrupts = <0 216 4>;
148 pinctrl-names = "default";
149 pinctrl-0 = <&pinctrl_spi1>;
150 clocks = <&peri_clk 12>;
151 resets = <&peri_rst 12>;
154 serial0: serial@54006800 {
155 compatible = "socionext,uniphier-uart";
157 reg = <0x54006800 0x40>;
158 interrupts = <0 33 4>;
159 pinctrl-names = "default";
160 pinctrl-0 = <&pinctrl_uart0>;
161 clocks = <&peri_clk 0>;
162 resets = <&peri_rst 0>;
165 serial1: serial@54006900 {
166 compatible = "socionext,uniphier-uart";
168 reg = <0x54006900 0x40>;
169 interrupts = <0 35 4>;
170 pinctrl-names = "default";
171 pinctrl-0 = <&pinctrl_uart1>;
172 clocks = <&peri_clk 1>;
173 resets = <&peri_rst 1>;
176 serial2: serial@54006a00 {
177 compatible = "socionext,uniphier-uart";
179 reg = <0x54006a00 0x40>;
180 interrupts = <0 37 4>;
181 pinctrl-names = "default";
182 pinctrl-0 = <&pinctrl_uart2>;
183 clocks = <&peri_clk 2>;
184 resets = <&peri_rst 2>;
187 serial3: serial@54006b00 {
188 compatible = "socionext,uniphier-uart";
190 reg = <0x54006b00 0x40>;
191 interrupts = <0 177 4>;
192 pinctrl-names = "default";
193 pinctrl-0 = <&pinctrl_uart3>;
194 clocks = <&peri_clk 3>;
195 resets = <&peri_rst 3>;
198 gpio: gpio@55000000 {
199 compatible = "socionext,uniphier-gpio";
200 reg = <0x55000000 0x200>;
201 interrupt-parent = <&aidet>;
202 interrupt-controller;
203 #interrupt-cells = <2>;
206 gpio-ranges = <&pinctrl 0 0 0>,
212 gpio-ranges-group-names = "gpio_range0",
219 socionext,interrupt-ranges = <0 48 16>, <16 154 5>,
224 compatible = "socionext,uniphier-ld11-aio";
225 reg = <0x56000000 0x80000>;
226 interrupts = <0 144 4>;
227 pinctrl-names = "default";
228 pinctrl-0 = <&pinctrl_aout1>,
231 clocks = <&sys_clk 40>;
233 resets = <&sys_rst 40>;
234 #sound-dai-cells = <1>;
235 socionext,syscon = <&soc_glue>;
243 i2s_pcmin2: endpoint {
250 remote-endpoint = <&evea_line>;
255 i2s_hpcmout1: endpoint {
262 remote-endpoint = <&evea_hp>;
266 spdif_port0: port@5 {
267 spdif_hiecout1: endpoint {
272 i2s_epcmout2: endpoint {
277 i2s_epcmout3: endpoint {
281 comp_spdif_port0: port@8 {
282 comp_spdif_hiecout1: endpoint {
288 compatible = "socionext,uniphier-evea";
289 reg = <0x57900000 0x1000>;
290 clock-names = "evea", "exiv";
291 clocks = <&sys_clk 41>, <&sys_clk 42>;
292 reset-names = "evea", "exiv", "adamv";
293 resets = <&sys_rst 41>, <&sys_rst 42>, <&adamv_rst 0>;
294 #sound-dai-cells = <1>;
297 evea_line: endpoint {
298 remote-endpoint = <&i2s_line>;
304 remote-endpoint = <&i2s_hp>;
310 compatible = "socionext,uniphier-ld11-adamv",
311 "simple-mfd", "syscon";
312 reg = <0x57920000 0x1000>;
315 compatible = "socionext,uniphier-ld11-adamv-reset";
321 compatible = "socionext,uniphier-fi2c";
323 reg = <0x58780000 0x80>;
324 #address-cells = <1>;
326 interrupts = <0 41 4>;
327 pinctrl-names = "default";
328 pinctrl-0 = <&pinctrl_i2c0>;
329 clocks = <&peri_clk 4>;
330 resets = <&peri_rst 4>;
331 clock-frequency = <100000>;
335 compatible = "socionext,uniphier-fi2c";
337 reg = <0x58781000 0x80>;
338 #address-cells = <1>;
340 interrupts = <0 42 4>;
341 pinctrl-names = "default";
342 pinctrl-0 = <&pinctrl_i2c1>;
343 clocks = <&peri_clk 5>;
344 resets = <&peri_rst 5>;
345 clock-frequency = <100000>;
349 compatible = "socionext,uniphier-fi2c";
350 reg = <0x58782000 0x80>;
351 #address-cells = <1>;
353 interrupts = <0 43 4>;
354 clocks = <&peri_clk 6>;
355 resets = <&peri_rst 6>;
356 clock-frequency = <400000>;
360 compatible = "socionext,uniphier-fi2c";
362 reg = <0x58783000 0x80>;
363 #address-cells = <1>;
365 interrupts = <0 44 4>;
366 pinctrl-names = "default";
367 pinctrl-0 = <&pinctrl_i2c3>;
368 clocks = <&peri_clk 7>;
369 resets = <&peri_rst 7>;
370 clock-frequency = <100000>;
374 compatible = "socionext,uniphier-fi2c";
376 reg = <0x58784000 0x80>;
377 #address-cells = <1>;
379 interrupts = <0 45 4>;
380 pinctrl-names = "default";
381 pinctrl-0 = <&pinctrl_i2c4>;
382 clocks = <&peri_clk 8>;
383 resets = <&peri_rst 8>;
384 clock-frequency = <100000>;
388 compatible = "socionext,uniphier-fi2c";
389 reg = <0x58785000 0x80>;
390 #address-cells = <1>;
392 interrupts = <0 25 4>;
393 clocks = <&peri_clk 9>;
394 resets = <&peri_rst 9>;
395 clock-frequency = <400000>;
398 system_bus: system-bus@58c00000 {
399 compatible = "socionext,uniphier-system-bus";
401 reg = <0x58c00000 0x400>;
402 #address-cells = <2>;
404 pinctrl-names = "default";
405 pinctrl-0 = <&pinctrl_system_bus>;
409 compatible = "socionext,uniphier-smpctrl";
410 reg = <0x59801000 0x400>;
414 compatible = "socionext,uniphier-ld11-sdctrl",
415 "simple-mfd", "syscon";
416 reg = <0x59810000 0x400>;
419 compatible = "socionext,uniphier-ld11-sd-reset";
425 compatible = "socionext,uniphier-ld11-perictrl",
426 "simple-mfd", "syscon";
427 reg = <0x59820000 0x200>;
430 compatible = "socionext,uniphier-ld11-peri-clock";
435 compatible = "socionext,uniphier-ld11-peri-reset";
441 compatible = "socionext,uniphier-sd4hc", "cdns,sd4hc";
442 reg = <0x5a000000 0x400>;
443 interrupts = <0 78 4>;
444 pinctrl-names = "default";
445 pinctrl-0 = <&pinctrl_emmc>;
446 clocks = <&sys_clk 4>;
447 resets = <&sys_rst 4>;
451 mmc-pwrseq = <&emmc_pwrseq>;
452 cdns,phy-input-delay-legacy = <9>;
453 cdns,phy-input-delay-mmc-highspeed = <2>;
454 cdns,phy-input-delay-mmc-ddr = <3>;
455 cdns,phy-dll-delay-sdclk = <21>;
456 cdns,phy-dll-delay-sdclk-hsmmc = <21>;
460 compatible = "socionext,uniphier-ehci", "generic-ehci";
462 reg = <0x5a800100 0x100>;
463 interrupts = <0 243 4>;
464 pinctrl-names = "default";
465 pinctrl-0 = <&pinctrl_usb0>;
466 clocks = <&sys_clk 8>, <&mio_clk 7>, <&mio_clk 8>,
468 resets = <&sys_rst 8>, <&mio_rst 7>, <&mio_rst 8>,
472 has-transaction-translator;
476 compatible = "socionext,uniphier-ehci", "generic-ehci";
478 reg = <0x5a810100 0x100>;
479 interrupts = <0 244 4>;
480 pinctrl-names = "default";
481 pinctrl-0 = <&pinctrl_usb1>;
482 clocks = <&sys_clk 8>, <&mio_clk 7>, <&mio_clk 9>,
484 resets = <&sys_rst 8>, <&mio_rst 7>, <&mio_rst 9>,
488 has-transaction-translator;
492 compatible = "socionext,uniphier-ehci", "generic-ehci";
494 reg = <0x5a820100 0x100>;
495 interrupts = <0 245 4>;
496 pinctrl-names = "default";
497 pinctrl-0 = <&pinctrl_usb2>;
498 clocks = <&sys_clk 8>, <&mio_clk 7>, <&mio_clk 10>,
500 resets = <&sys_rst 8>, <&mio_rst 7>, <&mio_rst 10>,
504 has-transaction-translator;
508 compatible = "socionext,uniphier-ld11-mioctrl",
509 "simple-mfd", "syscon";
510 reg = <0x5b3e0000 0x800>;
513 compatible = "socionext,uniphier-ld11-mio-clock";
518 compatible = "socionext,uniphier-ld11-mio-reset";
520 resets = <&sys_rst 7>;
524 soc_glue: soc-glue@5f800000 {
525 compatible = "socionext,uniphier-ld11-soc-glue",
526 "simple-mfd", "syscon";
527 reg = <0x5f800000 0x2000>;
530 compatible = "socionext,uniphier-ld11-pinctrl";
534 compatible = "socionext,uniphier-ld11-usb2-phy";
535 #address-cells = <1>;
556 compatible = "socionext,uniphier-ld11-soc-glue-debug",
558 #address-cells = <1>;
560 ranges = <0 0x5f900000 0x2000>;
563 compatible = "socionext,uniphier-efuse";
568 compatible = "socionext,uniphier-efuse";
573 xdmac: dma-controller@5fc10000 {
574 compatible = "socionext,uniphier-xdmac";
575 reg = <0x5fc10000 0x5300>;
576 interrupts = <0 188 4>;
581 aidet: interrupt-controller@5fc20000 {
582 compatible = "socionext,uniphier-ld11-aidet";
583 reg = <0x5fc20000 0x200>;
584 interrupt-controller;
585 #interrupt-cells = <2>;
588 gic: interrupt-controller@5fe00000 {
589 compatible = "arm,gic-v3";
590 reg = <0x5fe00000 0x10000>, /* GICD */
591 <0x5fe40000 0x80000>; /* GICR */
592 interrupt-controller;
593 #interrupt-cells = <3>;
594 interrupts = <1 9 4>;
598 compatible = "socionext,uniphier-ld11-sysctrl",
599 "simple-mfd", "syscon";
600 reg = <0x61840000 0x10000>;
603 compatible = "socionext,uniphier-ld11-clock";
608 compatible = "socionext,uniphier-ld11-reset";
613 compatible = "socionext,uniphier-wdt";
617 eth: ethernet@65000000 {
618 compatible = "socionext,uniphier-ld11-ave4";
620 reg = <0x65000000 0x8500>;
621 interrupts = <0 66 4>;
622 clock-names = "ether";
623 clocks = <&sys_clk 6>;
624 reset-names = "ether";
625 resets = <&sys_rst 6>;
626 phy-mode = "internal";
627 local-mac-address = [00 00 00 00 00 00];
628 socionext,syscon-phy-mode = <&soc_glue 0>;
631 #address-cells = <1>;
636 nand: nand-controller@68000000 {
637 compatible = "socionext,uniphier-denali-nand-v5b";
639 reg-names = "nand_data", "denali_reg";
640 reg = <0x68000000 0x20>, <0x68100000 0x1000>;
641 #address-cells = <1>;
643 interrupts = <0 65 4>;
644 pinctrl-names = "default";
645 pinctrl-0 = <&pinctrl_nand>;
646 clock-names = "nand", "nand_x", "ecc";
647 clocks = <&sys_clk 2>, <&sys_clk 3>, <&sys_clk 3>;
648 reset-names = "nand", "reg";
649 resets = <&sys_rst 2>, <&sys_rst 2>;
654 #include "uniphier-pinctrl.dtsi"
657 drive-strength = <4>; /* default: 4mA */
661 drive-strength = <8>; /* 8mA */