2 * Device Tree Source for UniPhier LD20 SoC
4 * Copyright (C) 2015-2016 Socionext Inc.
5 * Author: Masahiro Yamada <yamada.masahiro@socionext.com>
7 * SPDX-License-Identifier: (GPL-2.0+ OR MIT)
10 #include <dt-bindings/gpio/gpio.h>
11 #include <dt-bindings/thermal/thermal.h>
13 /memreserve/ 0x80000000 0x02000000;
16 compatible = "socionext,uniphier-ld20";
19 interrupt-parent = <&gic>;
47 compatible = "arm,cortex-a72", "arm,armv8";
49 clocks = <&sys_clk 32>;
50 enable-method = "psci";
51 operating-points-v2 = <&cluster0_opp>;
57 compatible = "arm,cortex-a72", "arm,armv8";
59 clocks = <&sys_clk 32>;
60 enable-method = "psci";
61 operating-points-v2 = <&cluster0_opp>;
66 compatible = "arm,cortex-a53", "arm,armv8";
68 clocks = <&sys_clk 33>;
69 enable-method = "psci";
70 operating-points-v2 = <&cluster1_opp>;
76 compatible = "arm,cortex-a53", "arm,armv8";
78 clocks = <&sys_clk 33>;
79 enable-method = "psci";
80 operating-points-v2 = <&cluster1_opp>;
84 cluster0_opp: opp-table0 {
85 compatible = "operating-points-v2";
89 opp-hz = /bits/ 64 <250000000>;
90 clock-latency-ns = <300>;
93 opp-hz = /bits/ 64 <275000000>;
94 clock-latency-ns = <300>;
97 opp-hz = /bits/ 64 <500000000>;
98 clock-latency-ns = <300>;
101 opp-hz = /bits/ 64 <550000000>;
102 clock-latency-ns = <300>;
105 opp-hz = /bits/ 64 <666667000>;
106 clock-latency-ns = <300>;
109 opp-hz = /bits/ 64 <733334000>;
110 clock-latency-ns = <300>;
113 opp-hz = /bits/ 64 <1000000000>;
114 clock-latency-ns = <300>;
117 opp-hz = /bits/ 64 <1100000000>;
118 clock-latency-ns = <300>;
122 cluster1_opp: opp-table1 {
123 compatible = "operating-points-v2";
127 opp-hz = /bits/ 64 <250000000>;
128 clock-latency-ns = <300>;
131 opp-hz = /bits/ 64 <275000000>;
132 clock-latency-ns = <300>;
135 opp-hz = /bits/ 64 <500000000>;
136 clock-latency-ns = <300>;
139 opp-hz = /bits/ 64 <550000000>;
140 clock-latency-ns = <300>;
143 opp-hz = /bits/ 64 <666667000>;
144 clock-latency-ns = <300>;
147 opp-hz = /bits/ 64 <733334000>;
148 clock-latency-ns = <300>;
151 opp-hz = /bits/ 64 <1000000000>;
152 clock-latency-ns = <300>;
155 opp-hz = /bits/ 64 <1100000000>;
156 clock-latency-ns = <300>;
161 compatible = "arm,psci-1.0";
167 compatible = "fixed-clock";
169 clock-frequency = <25000000>;
173 emmc_pwrseq: emmc-pwrseq {
174 compatible = "mmc-pwrseq-emmc";
175 reset-gpios = <&gpio 26 GPIO_ACTIVE_LOW>;
179 compatible = "arm,armv8-timer";
180 interrupts = <1 13 4>,
188 polling-delay-passive = <250>; /* 250ms */
189 polling-delay = <1000>; /* 1000ms */
190 thermal-sensors = <&pvtctl>;
194 temperature = <110000>; /* 110C */
198 cpu_alert: cpu-alert {
199 temperature = <100000>; /* 100C */
208 cooling-device = <&cpu0
209 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
213 cooling-device = <&cpu2
214 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
221 compatible = "simple-bus";
222 #address-cells = <1>;
224 ranges = <0 0 0 0xffffffff>;
226 serial0: serial@54006800 {
227 compatible = "socionext,uniphier-uart";
229 reg = <0x54006800 0x40>;
230 interrupts = <0 33 4>;
231 pinctrl-names = "default";
232 pinctrl-0 = <&pinctrl_uart0>;
233 clocks = <&peri_clk 0>;
234 resets = <&peri_rst 0>;
237 serial1: serial@54006900 {
238 compatible = "socionext,uniphier-uart";
240 reg = <0x54006900 0x40>;
241 interrupts = <0 35 4>;
242 pinctrl-names = "default";
243 pinctrl-0 = <&pinctrl_uart1>;
244 clocks = <&peri_clk 1>;
245 resets = <&peri_rst 1>;
248 serial2: serial@54006a00 {
249 compatible = "socionext,uniphier-uart";
251 reg = <0x54006a00 0x40>;
252 interrupts = <0 37 4>;
253 pinctrl-names = "default";
254 pinctrl-0 = <&pinctrl_uart2>;
255 clocks = <&peri_clk 2>;
256 resets = <&peri_rst 2>;
259 serial3: serial@54006b00 {
260 compatible = "socionext,uniphier-uart";
262 reg = <0x54006b00 0x40>;
263 interrupts = <0 177 4>;
264 pinctrl-names = "default";
265 pinctrl-0 = <&pinctrl_uart3>;
266 clocks = <&peri_clk 3>;
267 resets = <&peri_rst 3>;
270 gpio: gpio@55000000 {
271 compatible = "socionext,uniphier-gpio";
272 reg = <0x55000000 0x200>;
273 interrupt-parent = <&aidet>;
274 interrupt-controller;
275 #interrupt-cells = <2>;
278 gpio-ranges = <&pinctrl 0 0 0>,
281 gpio-ranges-group-names = "gpio_range0",
285 socionext,interrupt-ranges = <0 48 16>, <16 154 5>,
290 compatible = "socionext,uniphier-ld20-adamv",
291 "simple-mfd", "syscon";
292 reg = <0x57920000 0x1000>;
295 compatible = "socionext,uniphier-ld20-adamv-reset";
301 compatible = "socionext,uniphier-fi2c";
303 reg = <0x58780000 0x80>;
304 #address-cells = <1>;
306 interrupts = <0 41 4>;
307 pinctrl-names = "default";
308 pinctrl-0 = <&pinctrl_i2c0>;
309 clocks = <&peri_clk 4>;
310 resets = <&peri_rst 4>;
311 clock-frequency = <100000>;
315 compatible = "socionext,uniphier-fi2c";
317 reg = <0x58781000 0x80>;
318 #address-cells = <1>;
320 interrupts = <0 42 4>;
321 pinctrl-names = "default";
322 pinctrl-0 = <&pinctrl_i2c1>;
323 clocks = <&peri_clk 5>;
324 resets = <&peri_rst 5>;
325 clock-frequency = <100000>;
329 compatible = "socionext,uniphier-fi2c";
330 reg = <0x58782000 0x80>;
331 #address-cells = <1>;
333 interrupts = <0 43 4>;
334 clocks = <&peri_clk 6>;
335 resets = <&peri_rst 6>;
336 clock-frequency = <400000>;
340 compatible = "socionext,uniphier-fi2c";
342 reg = <0x58783000 0x80>;
343 #address-cells = <1>;
345 interrupts = <0 44 4>;
346 pinctrl-names = "default";
347 pinctrl-0 = <&pinctrl_i2c3>;
348 clocks = <&peri_clk 7>;
349 resets = <&peri_rst 7>;
350 clock-frequency = <100000>;
354 compatible = "socionext,uniphier-fi2c";
356 reg = <0x58784000 0x80>;
357 #address-cells = <1>;
359 interrupts = <0 45 4>;
360 pinctrl-names = "default";
361 pinctrl-0 = <&pinctrl_i2c4>;
362 clocks = <&peri_clk 8>;
363 resets = <&peri_rst 8>;
364 clock-frequency = <100000>;
368 compatible = "socionext,uniphier-fi2c";
369 reg = <0x58785000 0x80>;
370 #address-cells = <1>;
372 interrupts = <0 25 4>;
373 clocks = <&peri_clk 9>;
374 resets = <&peri_rst 9>;
375 clock-frequency = <400000>;
378 system_bus: system-bus@58c00000 {
379 compatible = "socionext,uniphier-system-bus";
381 reg = <0x58c00000 0x400>;
382 #address-cells = <2>;
384 pinctrl-names = "default";
385 pinctrl-0 = <&pinctrl_system_bus>;
389 compatible = "socionext,uniphier-smpctrl";
390 reg = <0x59801000 0x400>;
394 compatible = "socionext,uniphier-ld20-sdctrl",
395 "simple-mfd", "syscon";
396 reg = <0x59810000 0x400>;
399 compatible = "socionext,uniphier-ld20-sd-clock";
404 compatible = "socionext,uniphier-ld20-sd-reset";
410 compatible = "socionext,uniphier-ld20-perictrl",
411 "simple-mfd", "syscon";
412 reg = <0x59820000 0x200>;
415 compatible = "socionext,uniphier-ld20-peri-clock";
420 compatible = "socionext,uniphier-ld20-peri-reset";
425 emmc: sdhc@5a000000 {
426 compatible = "socionext,uniphier-sd4hc", "cdns,sd4hc";
427 reg = <0x5a000000 0x400>;
428 interrupts = <0 78 4>;
429 pinctrl-names = "default";
430 pinctrl-0 = <&pinctrl_emmc>;
431 clocks = <&sys_clk 4>;
432 resets = <&sys_rst 4>;
436 mmc-pwrseq = <&emmc_pwrseq>;
437 cdns,phy-input-delay-legacy = <4>;
438 cdns,phy-input-delay-mmc-highspeed = <2>;
439 cdns,phy-input-delay-mmc-ddr = <3>;
440 cdns,phy-dll-delay-sdclk = <21>;
441 cdns,phy-dll-delay-sdclk-hsmmc = <21>;
445 compatible = "socionext,uniphier-ld20-soc-glue",
446 "simple-mfd", "syscon";
447 reg = <0x5f800000 0x2000>;
450 compatible = "socionext,uniphier-ld20-pinctrl";
455 compatible = "socionext,uniphier-ld20-soc-glue-debug",
457 #address-cells = <1>;
459 ranges = <0 0x5f900000 0x2000>;
462 compatible = "socionext,uniphier-efuse";
467 compatible = "socionext,uniphier-efuse";
472 aidet: aidet@5fc20000 {
473 compatible = "socionext,uniphier-ld20-aidet";
474 reg = <0x5fc20000 0x200>;
475 interrupt-controller;
476 #interrupt-cells = <2>;
479 gic: interrupt-controller@5fe00000 {
480 compatible = "arm,gic-v3";
481 reg = <0x5fe00000 0x10000>, /* GICD */
482 <0x5fe80000 0x80000>; /* GICR */
483 interrupt-controller;
484 #interrupt-cells = <3>;
485 interrupts = <1 9 4>;
489 compatible = "socionext,uniphier-ld20-sysctrl",
490 "simple-mfd", "syscon";
491 reg = <0x61840000 0x10000>;
494 compatible = "socionext,uniphier-ld20-clock";
499 compatible = "socionext,uniphier-ld20-reset";
504 compatible = "socionext,uniphier-wdt";
508 compatible = "socionext,uniphier-ld20-thermal";
509 interrupts = <0 3 4>;
510 #thermal-sensor-cells = <0>;
511 socionext,tmod-calibration = <0x0f22 0x68ee>;
515 nand: nand@68000000 {
516 compatible = "socionext,uniphier-denali-nand-v5b";
518 reg-names = "nand_data", "denali_reg";
519 reg = <0x68000000 0x20>, <0x68100000 0x1000>;
520 interrupts = <0 65 4>;
521 pinctrl-names = "default";
522 pinctrl-0 = <&pinctrl_nand>;
523 clocks = <&sys_clk 2>;
524 resets = <&sys_rst 2>;
529 #include "uniphier-pinctrl.dtsi"