1 // SPDX-License-Identifier: GPL-2.0+ OR MIT
3 // Device Tree Source for UniPhier Pro5 SoC
5 // Copyright (C) 2015-2016 Socionext Inc.
6 // Author: Masahiro Yamada <yamada.masahiro@socionext.com>
8 #include <dt-bindings/interrupt-controller/arm-gic.h>
11 compatible = "socionext,uniphier-pro5";
21 compatible = "arm,cortex-a9";
23 clocks = <&sys_clk 32>;
24 enable-method = "psci";
25 next-level-cache = <&l2>;
26 operating-points-v2 = <&cpu_opp>;
31 compatible = "arm,cortex-a9";
33 clocks = <&sys_clk 32>;
34 enable-method = "psci";
35 next-level-cache = <&l2>;
36 operating-points-v2 = <&cpu_opp>;
41 compatible = "operating-points-v2";
45 opp-hz = /bits/ 64 <100000000>;
46 clock-latency-ns = <300>;
49 opp-hz = /bits/ 64 <116667000>;
50 clock-latency-ns = <300>;
53 opp-hz = /bits/ 64 <150000000>;
54 clock-latency-ns = <300>;
57 opp-hz = /bits/ 64 <175000000>;
58 clock-latency-ns = <300>;
61 opp-hz = /bits/ 64 <200000000>;
62 clock-latency-ns = <300>;
65 opp-hz = /bits/ 64 <233334000>;
66 clock-latency-ns = <300>;
69 opp-hz = /bits/ 64 <300000000>;
70 clock-latency-ns = <300>;
73 opp-hz = /bits/ 64 <350000000>;
74 clock-latency-ns = <300>;
77 opp-hz = /bits/ 64 <400000000>;
78 clock-latency-ns = <300>;
81 opp-hz = /bits/ 64 <466667000>;
82 clock-latency-ns = <300>;
85 opp-hz = /bits/ 64 <600000000>;
86 clock-latency-ns = <300>;
89 opp-hz = /bits/ 64 <700000000>;
90 clock-latency-ns = <300>;
93 opp-hz = /bits/ 64 <800000000>;
94 clock-latency-ns = <300>;
97 opp-hz = /bits/ 64 <933334000>;
98 clock-latency-ns = <300>;
101 opp-hz = /bits/ 64 <1200000000>;
102 clock-latency-ns = <300>;
105 opp-hz = /bits/ 64 <1400000000>;
106 clock-latency-ns = <300>;
111 compatible = "arm,psci-0.2";
117 compatible = "fixed-clock";
119 clock-frequency = <20000000>;
122 arm_timer_clk: arm-timer {
124 compatible = "fixed-clock";
125 clock-frequency = <50000000>;
130 compatible = "simple-bus";
131 #address-cells = <1>;
134 interrupt-parent = <&intc>;
136 l2: cache-controller@500c0000 {
137 compatible = "socionext,uniphier-system-cache";
138 reg = <0x500c0000 0x2000>, <0x503c0100 0x8>,
140 interrupts = <GIC_SPI 190 IRQ_TYPE_LEVEL_HIGH>,
141 <GIC_SPI 191 IRQ_TYPE_LEVEL_HIGH>;
143 cache-size = <(2 * 1024 * 1024)>;
145 cache-line-size = <128>;
147 next-level-cache = <&l3>;
150 l3: cache-controller@500c8000 {
151 compatible = "socionext,uniphier-system-cache";
152 reg = <0x500c8000 0x2000>, <0x503c8100 0x8>,
154 interrupts = <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>,
155 <GIC_SPI 175 IRQ_TYPE_LEVEL_HIGH>;
157 cache-size = <(2 * 1024 * 1024)>;
159 cache-line-size = <256>;
164 compatible = "socionext,uniphier-scssi";
166 reg = <0x54006000 0x100>;
167 #address-cells = <1>;
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>;
177 compatible = "socionext,uniphier-scssi";
179 reg = <0x54006100 0x100>;
180 #address-cells = <1>;
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>;
189 serial0: serial@54006800 {
190 compatible = "socionext,uniphier-uart";
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>;
200 serial1: serial@54006900 {
201 compatible = "socionext,uniphier-uart";
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>;
211 serial2: serial@54006a00 {
212 compatible = "socionext,uniphier-uart";
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>;
222 serial3: serial@54006b00 {
223 compatible = "socionext,uniphier-uart";
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>;
233 gpio: gpio@55000000 {
234 compatible = "socionext,uniphier-gpio";
235 reg = <0x55000000 0x200>;
236 interrupt-parent = <&aidet>;
237 interrupt-controller;
238 #interrupt-cells = <2>;
241 gpio-ranges = <&pinctrl 0 0 0>;
242 gpio-ranges-group-names = "gpio_range";
244 socionext,interrupt-ranges = <0 48 16>, <16 154 5>;
248 compatible = "socionext,uniphier-fi2c";
250 reg = <0x58780000 0x80>;
251 #address-cells = <1>;
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>;
262 compatible = "socionext,uniphier-fi2c";
264 reg = <0x58781000 0x80>;
265 #address-cells = <1>;
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>;
276 compatible = "socionext,uniphier-fi2c";
278 reg = <0x58782000 0x80>;
279 #address-cells = <1>;
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>;
290 compatible = "socionext,uniphier-fi2c";
292 reg = <0x58783000 0x80>;
293 #address-cells = <1>;
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>;
303 /* i2c4 does not exist */
305 /* chip-internal connection for DMD */
307 compatible = "socionext,uniphier-fi2c";
308 reg = <0x58785000 0x80>;
309 #address-cells = <1>;
311 interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>;
312 clocks = <&peri_clk 9>;
313 resets = <&peri_rst 9>;
314 clock-frequency = <400000>;
317 /* chip-internal connection for HDMI */
319 compatible = "socionext,uniphier-fi2c";
320 reg = <0x58786000 0x80>;
321 #address-cells = <1>;
323 interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>;
324 clocks = <&peri_clk 10>;
325 resets = <&peri_rst 10>;
326 clock-frequency = <400000>;
329 system_bus: system-bus@58c00000 {
330 compatible = "socionext,uniphier-system-bus";
332 reg = <0x58c00000 0x400>;
333 #address-cells = <2>;
335 pinctrl-names = "default";
336 pinctrl-0 = <&pinctrl_system_bus>;
340 compatible = "socionext,uniphier-smpctrl";
341 reg = <0x59801000 0x400>;
345 compatible = "socionext,uniphier-pro5-sdctrl",
346 "simple-mfd", "syscon";
347 reg = <0x59810000 0x400>;
350 compatible = "socionext,uniphier-pro5-sd-clock";
355 compatible = "socionext,uniphier-pro5-sd-reset";
361 compatible = "socionext,uniphier-pro5-perictrl",
362 "simple-mfd", "syscon";
363 reg = <0x59820000 0x200>;
366 compatible = "socionext,uniphier-pro5-peri-clock";
371 compatible = "socionext,uniphier-pro5-peri-reset";
377 compatible = "socionext,uniphier-pro5-soc-glue",
378 "simple-mfd", "syscon";
379 reg = <0x5f800000 0x2000>;
382 compatible = "socionext,uniphier-pro5-pinctrl";
387 compatible = "socionext,uniphier-pro5-soc-glue-debug",
389 #address-cells = <1>;
391 ranges = <0 0x5f900000 0x2000>;
394 compatible = "socionext,uniphier-efuse";
399 compatible = "socionext,uniphier-efuse";
404 compatible = "socionext,uniphier-efuse";
409 compatible = "socionext,uniphier-efuse";
414 compatible = "socionext,uniphier-efuse";
419 xdmac: dma-controller@5fc10000 {
420 compatible = "socionext,uniphier-xdmac";
421 reg = <0x5fc10000 0x5300>;
422 interrupts = <GIC_SPI 188 IRQ_TYPE_LEVEL_HIGH>;
427 aidet: interrupt-controller@5fc20000 {
428 compatible = "socionext,uniphier-pro5-aidet";
429 reg = <0x5fc20000 0x200>;
430 interrupt-controller;
431 #interrupt-cells = <2>;
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>;
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>;
450 intc: interrupt-controller@60001000 {
451 compatible = "arm,cortex-a9-gic";
452 reg = <0x60001000 0x1000>,
454 #interrupt-cells = <3>;
455 interrupt-controller;
459 compatible = "socionext,uniphier-pro5-sysctrl",
460 "simple-mfd", "syscon";
461 reg = <0x61840000 0x10000>;
464 compatible = "socionext,uniphier-pro5-clock";
469 compatible = "socionext,uniphier-pro5-reset";
475 compatible = "socionext,uniphier-dwc3", "snps,dwc3";
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>;
489 usb-controller@65b00000 {
490 compatible = "socionext,uniphier-pro5-dwc3-glue",
492 #address-cells = <1>;
494 ranges = <0 0x65b00000 0x400>;
497 compatible = "socionext,uniphier-pro5-usb3-reset";
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>;
506 usb0_vbus0: regulator@100 {
507 compatible = "socionext,uniphier-pro5-usb3-regulator";
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>;
515 usb0_hsphy0: hs-phy@280 {
516 compatible = "socionext,uniphier-pro5-usb3-hsphy";
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>;
526 usb0_ssphy0: ss-phy@380 {
527 compatible = "socionext,uniphier-pro5-usb3-ssphy";
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>;
539 compatible = "socionext,uniphier-dwc3", "snps,dwc3";
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>;
553 usb-controller@65d00000 {
554 compatible = "socionext,uniphier-pro5-dwc3-glue",
556 #address-cells = <1>;
558 ranges = <0 0x65d00000 0x400>;
561 compatible = "socionext,uniphier-pro5-usb3-reset";
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>;
570 usb1_vbus0: regulator@100 {
571 compatible = "socionext,uniphier-pro5-usb3-regulator";
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>;
579 usb1_vbus1: regulator@110 {
580 compatible = "socionext,uniphier-pro5-usb3-regulator";
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>;
588 usb1_hsphy0: hs-phy@280 {
589 compatible = "socionext,uniphier-pro5-usb3-hsphy";
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>;
599 usb1_hsphy1: hs-phy@290 {
600 compatible = "socionext,uniphier-pro5-usb3-hsphy";
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>;
610 usb1_ssphy0: ss-phy@380 {
611 compatible = "socionext,uniphier-pro5-usb3-ssphy";
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>;
622 pcie_ep: pcie-ep@66000000 {
623 compatible = "socionext,uniphier-pro5-pcie-ep";
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>;
637 phy-names = "pcie-phy";
641 pcie_phy: phy@66038000 {
642 compatible = "socionext,uniphier-pro5-pcie-phy";
643 reg = <0x66038000 0x4000>;
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>;
651 nand: nand-controller@68000000 {
652 compatible = "socionext,uniphier-denali-nand-v5b";
654 reg-names = "nand_data", "denali_reg";
655 reg = <0x68000000 0x20>, <0x68100000 0x1000>;
656 #address-cells = <1>;
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>;
668 compatible = "socionext,uniphier-sd-v3.1";
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>;
684 compatible = "socionext,uniphier-sd-v3.1";
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>;
703 #include "uniphier-pinctrl.dtsi"