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 interrupts = <0 39 4>;
133 pinctrl-names = "default";
134 pinctrl-0 = <&pinctrl_spi0>;
135 clocks = <&peri_clk 11>;
136 resets = <&peri_rst 11>;
140 compatible = "socionext,uniphier-scssi";
142 reg = <0x54006100 0x100>;
143 interrupts = <0 216 4>;
144 pinctrl-names = "default";
145 pinctrl-0 = <&pinctrl_spi1>;
146 clocks = <&peri_clk 11>;
147 resets = <&peri_rst 11>;
150 serial0: serial@54006800 {
151 compatible = "socionext,uniphier-uart";
153 reg = <0x54006800 0x40>;
154 interrupts = <0 33 4>;
155 pinctrl-names = "default";
156 pinctrl-0 = <&pinctrl_uart0>;
157 clocks = <&peri_clk 0>;
158 resets = <&peri_rst 0>;
161 serial1: serial@54006900 {
162 compatible = "socionext,uniphier-uart";
164 reg = <0x54006900 0x40>;
165 interrupts = <0 35 4>;
166 pinctrl-names = "default";
167 pinctrl-0 = <&pinctrl_uart1>;
168 clocks = <&peri_clk 1>;
169 resets = <&peri_rst 1>;
172 serial2: serial@54006a00 {
173 compatible = "socionext,uniphier-uart";
175 reg = <0x54006a00 0x40>;
176 interrupts = <0 37 4>;
177 pinctrl-names = "default";
178 pinctrl-0 = <&pinctrl_uart2>;
179 clocks = <&peri_clk 2>;
180 resets = <&peri_rst 2>;
183 serial3: serial@54006b00 {
184 compatible = "socionext,uniphier-uart";
186 reg = <0x54006b00 0x40>;
187 interrupts = <0 177 4>;
188 pinctrl-names = "default";
189 pinctrl-0 = <&pinctrl_uart3>;
190 clocks = <&peri_clk 3>;
191 resets = <&peri_rst 3>;
194 gpio: gpio@55000000 {
195 compatible = "socionext,uniphier-gpio";
196 reg = <0x55000000 0x200>;
197 interrupt-parent = <&aidet>;
198 interrupt-controller;
199 #interrupt-cells = <2>;
202 gpio-ranges = <&pinctrl 0 0 0>,
208 gpio-ranges-group-names = "gpio_range0",
215 socionext,interrupt-ranges = <0 48 16>, <16 154 5>,
220 compatible = "socionext,uniphier-ld11-aio";
221 reg = <0x56000000 0x80000>;
222 interrupts = <0 144 4>;
223 pinctrl-names = "default";
224 pinctrl-0 = <&pinctrl_aout1>,
227 clocks = <&sys_clk 40>;
229 resets = <&sys_rst 40>;
230 #sound-dai-cells = <1>;
231 socionext,syscon = <&soc_glue>;
239 i2s_pcmin2: endpoint {
246 remote-endpoint = <&evea_line>;
251 i2s_hpcmout1: endpoint {
258 remote-endpoint = <&evea_hp>;
262 spdif_port0: port@5 {
263 spdif_hiecout1: endpoint {
268 i2s_epcmout2: endpoint {
273 i2s_epcmout3: endpoint {
277 comp_spdif_port0: port@8 {
278 comp_spdif_hiecout1: endpoint {
284 compatible = "socionext,uniphier-evea";
285 reg = <0x57900000 0x1000>;
286 clock-names = "evea", "exiv";
287 clocks = <&sys_clk 41>, <&sys_clk 42>;
288 reset-names = "evea", "exiv", "adamv";
289 resets = <&sys_rst 41>, <&sys_rst 42>, <&adamv_rst 0>;
290 #sound-dai-cells = <1>;
293 evea_line: endpoint {
294 remote-endpoint = <&i2s_line>;
300 remote-endpoint = <&i2s_hp>;
306 compatible = "socionext,uniphier-ld11-adamv",
307 "simple-mfd", "syscon";
308 reg = <0x57920000 0x1000>;
311 compatible = "socionext,uniphier-ld11-adamv-reset";
317 compatible = "socionext,uniphier-fi2c";
319 reg = <0x58780000 0x80>;
320 #address-cells = <1>;
322 interrupts = <0 41 4>;
323 pinctrl-names = "default";
324 pinctrl-0 = <&pinctrl_i2c0>;
325 clocks = <&peri_clk 4>;
326 resets = <&peri_rst 4>;
327 clock-frequency = <100000>;
331 compatible = "socionext,uniphier-fi2c";
333 reg = <0x58781000 0x80>;
334 #address-cells = <1>;
336 interrupts = <0 42 4>;
337 pinctrl-names = "default";
338 pinctrl-0 = <&pinctrl_i2c1>;
339 clocks = <&peri_clk 5>;
340 resets = <&peri_rst 5>;
341 clock-frequency = <100000>;
345 compatible = "socionext,uniphier-fi2c";
346 reg = <0x58782000 0x80>;
347 #address-cells = <1>;
349 interrupts = <0 43 4>;
350 clocks = <&peri_clk 6>;
351 resets = <&peri_rst 6>;
352 clock-frequency = <400000>;
356 compatible = "socionext,uniphier-fi2c";
358 reg = <0x58783000 0x80>;
359 #address-cells = <1>;
361 interrupts = <0 44 4>;
362 pinctrl-names = "default";
363 pinctrl-0 = <&pinctrl_i2c3>;
364 clocks = <&peri_clk 7>;
365 resets = <&peri_rst 7>;
366 clock-frequency = <100000>;
370 compatible = "socionext,uniphier-fi2c";
372 reg = <0x58784000 0x80>;
373 #address-cells = <1>;
375 interrupts = <0 45 4>;
376 pinctrl-names = "default";
377 pinctrl-0 = <&pinctrl_i2c4>;
378 clocks = <&peri_clk 8>;
379 resets = <&peri_rst 8>;
380 clock-frequency = <100000>;
384 compatible = "socionext,uniphier-fi2c";
385 reg = <0x58785000 0x80>;
386 #address-cells = <1>;
388 interrupts = <0 25 4>;
389 clocks = <&peri_clk 9>;
390 resets = <&peri_rst 9>;
391 clock-frequency = <400000>;
394 system_bus: system-bus@58c00000 {
395 compatible = "socionext,uniphier-system-bus";
397 reg = <0x58c00000 0x400>;
398 #address-cells = <2>;
400 pinctrl-names = "default";
401 pinctrl-0 = <&pinctrl_system_bus>;
405 compatible = "socionext,uniphier-smpctrl";
406 reg = <0x59801000 0x400>;
410 compatible = "socionext,uniphier-ld11-sdctrl",
411 "simple-mfd", "syscon";
412 reg = <0x59810000 0x400>;
415 compatible = "socionext,uniphier-ld11-sd-reset";
421 compatible = "socionext,uniphier-ld11-perictrl",
422 "simple-mfd", "syscon";
423 reg = <0x59820000 0x200>;
426 compatible = "socionext,uniphier-ld11-peri-clock";
431 compatible = "socionext,uniphier-ld11-peri-reset";
436 emmc: sdhc@5a000000 {
437 compatible = "socionext,uniphier-sd4hc", "cdns,sd4hc";
438 reg = <0x5a000000 0x400>;
439 interrupts = <0 78 4>;
440 pinctrl-names = "default";
441 pinctrl-0 = <&pinctrl_emmc>;
442 clocks = <&sys_clk 4>;
443 resets = <&sys_rst 4>;
447 mmc-pwrseq = <&emmc_pwrseq>;
448 cdns,phy-input-delay-legacy = <9>;
449 cdns,phy-input-delay-mmc-highspeed = <2>;
450 cdns,phy-input-delay-mmc-ddr = <3>;
451 cdns,phy-dll-delay-sdclk = <21>;
452 cdns,phy-dll-delay-sdclk-hsmmc = <21>;
456 compatible = "socionext,uniphier-ehci", "generic-ehci";
458 reg = <0x5a800100 0x100>;
459 interrupts = <0 243 4>;
460 pinctrl-names = "default";
461 pinctrl-0 = <&pinctrl_usb0>;
462 clocks = <&sys_clk 8>, <&mio_clk 7>, <&mio_clk 8>,
464 resets = <&sys_rst 8>, <&mio_rst 7>, <&mio_rst 8>,
468 has-transaction-translator;
472 compatible = "socionext,uniphier-ehci", "generic-ehci";
474 reg = <0x5a810100 0x100>;
475 interrupts = <0 244 4>;
476 pinctrl-names = "default";
477 pinctrl-0 = <&pinctrl_usb1>;
478 clocks = <&sys_clk 8>, <&mio_clk 7>, <&mio_clk 9>,
480 resets = <&sys_rst 8>, <&mio_rst 7>, <&mio_rst 9>,
484 has-transaction-translator;
488 compatible = "socionext,uniphier-ehci", "generic-ehci";
490 reg = <0x5a820100 0x100>;
491 interrupts = <0 245 4>;
492 pinctrl-names = "default";
493 pinctrl-0 = <&pinctrl_usb2>;
494 clocks = <&sys_clk 8>, <&mio_clk 7>, <&mio_clk 10>,
496 resets = <&sys_rst 8>, <&mio_rst 7>, <&mio_rst 10>,
500 has-transaction-translator;
504 compatible = "socionext,uniphier-ld11-mioctrl",
505 "simple-mfd", "syscon";
506 reg = <0x5b3e0000 0x800>;
509 compatible = "socionext,uniphier-ld11-mio-clock";
514 compatible = "socionext,uniphier-ld11-mio-reset";
516 resets = <&sys_rst 7>;
520 soc_glue: soc-glue@5f800000 {
521 compatible = "socionext,uniphier-ld11-soc-glue",
522 "simple-mfd", "syscon";
523 reg = <0x5f800000 0x2000>;
526 compatible = "socionext,uniphier-ld11-pinctrl";
530 compatible = "socionext,uniphier-ld11-usb2-phy";
531 #address-cells = <1>;
552 compatible = "socionext,uniphier-ld11-soc-glue-debug",
554 #address-cells = <1>;
556 ranges = <0 0x5f900000 0x2000>;
559 compatible = "socionext,uniphier-efuse";
564 compatible = "socionext,uniphier-efuse";
569 aidet: aidet@5fc20000 {
570 compatible = "socionext,uniphier-ld11-aidet";
571 reg = <0x5fc20000 0x200>;
572 interrupt-controller;
573 #interrupt-cells = <2>;
576 gic: interrupt-controller@5fe00000 {
577 compatible = "arm,gic-v3";
578 reg = <0x5fe00000 0x10000>, /* GICD */
579 <0x5fe40000 0x80000>; /* GICR */
580 interrupt-controller;
581 #interrupt-cells = <3>;
582 interrupts = <1 9 4>;
586 compatible = "socionext,uniphier-ld11-sysctrl",
587 "simple-mfd", "syscon";
588 reg = <0x61840000 0x10000>;
591 compatible = "socionext,uniphier-ld11-clock";
596 compatible = "socionext,uniphier-ld11-reset";
601 compatible = "socionext,uniphier-wdt";
605 eth: ethernet@65000000 {
606 compatible = "socionext,uniphier-ld11-ave4";
608 reg = <0x65000000 0x8500>;
609 interrupts = <0 66 4>;
610 clock-names = "ether";
611 clocks = <&sys_clk 6>;
612 reset-names = "ether";
613 resets = <&sys_rst 6>;
614 phy-mode = "internal";
615 local-mac-address = [00 00 00 00 00 00];
616 socionext,syscon-phy-mode = <&soc_glue 0>;
619 #address-cells = <1>;
624 nand: nand@68000000 {
625 compatible = "socionext,uniphier-denali-nand-v5b";
627 reg-names = "nand_data", "denali_reg";
628 reg = <0x68000000 0x20>, <0x68100000 0x1000>;
629 #address-cells = <1>;
631 interrupts = <0 65 4>;
632 pinctrl-names = "default";
633 pinctrl-0 = <&pinctrl_nand>;
634 clock-names = "nand", "nand_x", "ecc";
635 clocks = <&sys_clk 2>, <&sys_clk 3>, <&sys_clk 3>;
636 resets = <&sys_rst 2>;
641 #include "uniphier-pinctrl.dtsi"
644 drive-strength = <4>; /* default: 4mA */
648 drive-strength = <8>; /* 8mA */