1// SPDX-License-Identifier: GPL-2.0+ OR MIT
2//
3// Device Tree Source for UniPhier LD20 SoC
4//
5// Copyright (C) 2015-2016 Socionext Inc.
6//   Author: Masahiro Yamada <yamada.masahiro@socionext.com>
7
8#include <dt-bindings/gpio/gpio.h>
9#include <dt-bindings/gpio/uniphier-gpio.h>
10#include <dt-bindings/thermal/thermal.h>
11
12/ {
13	compatible = "socionext,uniphier-ld20";
14	#address-cells = <2>;
15	#size-cells = <2>;
16	interrupt-parent = <&gic>;
17
18	cpus {
19		#address-cells = <2>;
20		#size-cells = <0>;
21
22		cpu-map {
23			cluster0 {
24				core0 {
25					cpu = <&cpu0>;
26				};
27				core1 {
28					cpu = <&cpu1>;
29				};
30			};
31
32			cluster1 {
33				core0 {
34					cpu = <&cpu2>;
35				};
36				core1 {
37					cpu = <&cpu3>;
38				};
39			};
40		};
41
42		cpu0: cpu@0 {
43			device_type = "cpu";
44			compatible = "arm,cortex-a72";
45			reg = <0 0x000>;
46			clocks = <&sys_clk 32>;
47			enable-method = "psci";
48			operating-points-v2 = <&cluster0_opp>;
49			#cooling-cells = <2>;
50		};
51
52		cpu1: cpu@1 {
53			device_type = "cpu";
54			compatible = "arm,cortex-a72";
55			reg = <0 0x001>;
56			clocks = <&sys_clk 32>;
57			enable-method = "psci";
58			operating-points-v2 = <&cluster0_opp>;
59			#cooling-cells = <2>;
60		};
61
62		cpu2: cpu@100 {
63			device_type = "cpu";
64			compatible = "arm,cortex-a53";
65			reg = <0 0x100>;
66			clocks = <&sys_clk 33>;
67			enable-method = "psci";
68			operating-points-v2 = <&cluster1_opp>;
69			#cooling-cells = <2>;
70		};
71
72		cpu3: cpu@101 {
73			device_type = "cpu";
74			compatible = "arm,cortex-a53";
75			reg = <0 0x101>;
76			clocks = <&sys_clk 33>;
77			enable-method = "psci";
78			operating-points-v2 = <&cluster1_opp>;
79			#cooling-cells = <2>;
80		};
81	};
82
83	cluster0_opp: opp-table0 {
84		compatible = "operating-points-v2";
85		opp-shared;
86
87		opp-250000000 {
88			opp-hz = /bits/ 64 <250000000>;
89			clock-latency-ns = <300>;
90		};
91		opp-275000000 {
92			opp-hz = /bits/ 64 <275000000>;
93			clock-latency-ns = <300>;
94		};
95		opp-500000000 {
96			opp-hz = /bits/ 64 <500000000>;
97			clock-latency-ns = <300>;
98		};
99		opp-550000000 {
100			opp-hz = /bits/ 64 <550000000>;
101			clock-latency-ns = <300>;
102		};
103		opp-666667000 {
104			opp-hz = /bits/ 64 <666667000>;
105			clock-latency-ns = <300>;
106		};
107		opp-733334000 {
108			opp-hz = /bits/ 64 <733334000>;
109			clock-latency-ns = <300>;
110		};
111		opp-1000000000 {
112			opp-hz = /bits/ 64 <1000000000>;
113			clock-latency-ns = <300>;
114		};
115		opp-1100000000 {
116			opp-hz = /bits/ 64 <1100000000>;
117			clock-latency-ns = <300>;
118		};
119	};
120
121	cluster1_opp: opp-table1 {
122		compatible = "operating-points-v2";
123		opp-shared;
124
125		opp-250000000 {
126			opp-hz = /bits/ 64 <250000000>;
127			clock-latency-ns = <300>;
128		};
129		opp-275000000 {
130			opp-hz = /bits/ 64 <275000000>;
131			clock-latency-ns = <300>;
132		};
133		opp-500000000 {
134			opp-hz = /bits/ 64 <500000000>;
135			clock-latency-ns = <300>;
136		};
137		opp-550000000 {
138			opp-hz = /bits/ 64 <550000000>;
139			clock-latency-ns = <300>;
140		};
141		opp-666667000 {
142			opp-hz = /bits/ 64 <666667000>;
143			clock-latency-ns = <300>;
144		};
145		opp-733334000 {
146			opp-hz = /bits/ 64 <733334000>;
147			clock-latency-ns = <300>;
148		};
149		opp-1000000000 {
150			opp-hz = /bits/ 64 <1000000000>;
151			clock-latency-ns = <300>;
152		};
153		opp-1100000000 {
154			opp-hz = /bits/ 64 <1100000000>;
155			clock-latency-ns = <300>;
156		};
157	};
158
159	psci {
160		compatible = "arm,psci-1.0";
161		method = "smc";
162	};
163
164	clocks {
165		refclk: ref {
166			compatible = "fixed-clock";
167			#clock-cells = <0>;
168			clock-frequency = <25000000>;
169		};
170	};
171
172	emmc_pwrseq: emmc-pwrseq {
173		compatible = "mmc-pwrseq-emmc";
174		reset-gpios = <&gpio UNIPHIER_GPIO_PORT(3, 2) GPIO_ACTIVE_LOW>;
175	};
176
177	timer {
178		compatible = "arm,armv8-timer";
179		interrupts = <1 13 4>,
180			     <1 14 4>,
181			     <1 11 4>,
182			     <1 10 4>;
183	};
184
185	thermal-zones {
186		cpu-thermal {
187			polling-delay-passive = <250>;	/* 250ms */
188			polling-delay = <1000>;		/* 1000ms */
189			thermal-sensors = <&pvtctl>;
190
191			trips {
192				cpu_crit: cpu-crit {
193					temperature = <110000>;	/* 110C */
194					hysteresis = <2000>;
195					type = "critical";
196				};
197				cpu_alert: cpu-alert {
198					temperature = <100000>;	/* 100C */
199					hysteresis = <2000>;
200					type = "passive";
201				};
202			};
203
204			cooling-maps {
205				map0 {
206					trip = <&cpu_alert>;
207					cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
208							 <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
209							 <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
210							 <&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
211				};
212			};
213		};
214	};
215
216	reserved-memory {
217		#address-cells = <2>;
218		#size-cells = <2>;
219		ranges;
220
221		secure-memory@81000000 {
222			reg = <0x0 0x81000000 0x0 0x01000000>;
223			no-map;
224		};
225	};
226
227	soc@0 {
228		compatible = "simple-bus";
229		#address-cells = <1>;
230		#size-cells = <1>;
231		ranges = <0 0 0 0xffffffff>;
232
233		spi0: spi@54006000 {
234			compatible = "socionext,uniphier-scssi";
235			status = "disabled";
236			reg = <0x54006000 0x100>;
237			#address-cells = <1>;
238			#size-cells = <0>;
239			interrupts = <0 39 4>;
240			pinctrl-names = "default";
241			pinctrl-0 = <&pinctrl_spi0>;
242			clocks = <&peri_clk 11>;
243			resets = <&peri_rst 11>;
244		};
245
246		spi1: spi@54006100 {
247			compatible = "socionext,uniphier-scssi";
248			status = "disabled";
249			reg = <0x54006100 0x100>;
250			#address-cells = <1>;
251			#size-cells = <0>;
252			interrupts = <0 216 4>;
253			pinctrl-names = "default";
254			pinctrl-0 = <&pinctrl_spi1>;
255			clocks = <&peri_clk 12>;
256			resets = <&peri_rst 12>;
257		};
258
259		spi2: spi@54006200 {
260			compatible = "socionext,uniphier-scssi";
261			status = "disabled";
262			reg = <0x54006200 0x100>;
263			#address-cells = <1>;
264			#size-cells = <0>;
265			interrupts = <0 229 4>;
266			pinctrl-names = "default";
267			pinctrl-0 = <&pinctrl_spi2>;
268			clocks = <&peri_clk 13>;
269			resets = <&peri_rst 13>;
270		};
271
272		spi3: spi@54006300 {
273			compatible = "socionext,uniphier-scssi";
274			status = "disabled";
275			reg = <0x54006300 0x100>;
276			#address-cells = <1>;
277			#size-cells = <0>;
278			interrupts = <0 230 4>;
279			pinctrl-names = "default";
280			pinctrl-0 = <&pinctrl_spi3>;
281			clocks = <&peri_clk 14>;
282			resets = <&peri_rst 14>;
283		};
284
285		serial0: serial@54006800 {
286			compatible = "socionext,uniphier-uart";
287			status = "disabled";
288			reg = <0x54006800 0x40>;
289			interrupts = <0 33 4>;
290			pinctrl-names = "default";
291			pinctrl-0 = <&pinctrl_uart0>;
292			clocks = <&peri_clk 0>;
293			resets = <&peri_rst 0>;
294		};
295
296		serial1: serial@54006900 {
297			compatible = "socionext,uniphier-uart";
298			status = "disabled";
299			reg = <0x54006900 0x40>;
300			interrupts = <0 35 4>;
301			pinctrl-names = "default";
302			pinctrl-0 = <&pinctrl_uart1>;
303			clocks = <&peri_clk 1>;
304			resets = <&peri_rst 1>;
305		};
306
307		serial2: serial@54006a00 {
308			compatible = "socionext,uniphier-uart";
309			status = "disabled";
310			reg = <0x54006a00 0x40>;
311			interrupts = <0 37 4>;
312			pinctrl-names = "default";
313			pinctrl-0 = <&pinctrl_uart2>;
314			clocks = <&peri_clk 2>;
315			resets = <&peri_rst 2>;
316		};
317
318		serial3: serial@54006b00 {
319			compatible = "socionext,uniphier-uart";
320			status = "disabled";
321			reg = <0x54006b00 0x40>;
322			interrupts = <0 177 4>;
323			pinctrl-names = "default";
324			pinctrl-0 = <&pinctrl_uart3>;
325			clocks = <&peri_clk 3>;
326			resets = <&peri_rst 3>;
327		};
328
329		gpio: gpio@55000000 {
330			compatible = "socionext,uniphier-gpio";
331			reg = <0x55000000 0x200>;
332			interrupt-parent = <&aidet>;
333			interrupt-controller;
334			#interrupt-cells = <2>;
335			gpio-controller;
336			#gpio-cells = <2>;
337			gpio-ranges = <&pinctrl 0 0 0>,
338				      <&pinctrl 96 0 0>,
339				      <&pinctrl 160 0 0>;
340			gpio-ranges-group-names = "gpio_range0",
341						  "gpio_range1",
342						  "gpio_range2";
343			ngpios = <205>;
344			socionext,interrupt-ranges = <0 48 16>, <16 154 5>,
345						     <21 217 3>;
346		};
347
348		audio@56000000 {
349			compatible = "socionext,uniphier-ld20-aio";
350			reg = <0x56000000 0x80000>;
351			interrupts = <0 144 4>;
352			pinctrl-names = "default";
353			pinctrl-0 = <&pinctrl_aout1>,
354				    <&pinctrl_aoutiec1>;
355			clock-names = "aio";
356			clocks = <&sys_clk 40>;
357			reset-names = "aio";
358			resets = <&sys_rst 40>;
359			#sound-dai-cells = <1>;
360			socionext,syscon = <&soc_glue>;
361
362			i2s_port0: port@0 {
363				i2s_hdmi: endpoint {
364				};
365			};
366
367			i2s_port1: port@1 {
368				i2s_pcmin2: endpoint {
369				};
370			};
371
372			i2s_port2: port@2 {
373				i2s_line: endpoint {
374					dai-format = "i2s";
375					remote-endpoint = <&evea_line>;
376				};
377			};
378
379			i2s_port3: port@3 {
380				i2s_hpcmout1: endpoint {
381				};
382			};
383
384			i2s_port4: port@4 {
385				i2s_hp: endpoint {
386					dai-format = "i2s";
387					remote-endpoint = <&evea_hp>;
388				};
389			};
390
391			spdif_port0: port@5 {
392				spdif_hiecout1: endpoint {
393				};
394			};
395
396			src_port0: port@6 {
397				i2s_epcmout2: endpoint {
398				};
399			};
400
401			src_port1: port@7 {
402				i2s_epcmout3: endpoint {
403				};
404			};
405
406			comp_spdif_port0: port@8 {
407				comp_spdif_hiecout1: endpoint {
408				};
409			};
410		};
411
412		codec@57900000 {
413			compatible = "socionext,uniphier-evea";
414			reg = <0x57900000 0x1000>;
415			clock-names = "evea", "exiv";
416			clocks = <&sys_clk 41>, <&sys_clk 42>;
417			reset-names = "evea", "exiv", "adamv";
418			resets = <&sys_rst 41>, <&sys_rst 42>, <&adamv_rst 0>;
419			#sound-dai-cells = <1>;
420
421			port@0 {
422				evea_line: endpoint {
423					remote-endpoint = <&i2s_line>;
424				};
425			};
426
427			port@1 {
428				evea_hp: endpoint {
429					remote-endpoint = <&i2s_hp>;
430				};
431			};
432		};
433
434		adamv@57920000 {
435			compatible = "socionext,uniphier-ld20-adamv",
436				     "simple-mfd", "syscon";
437			reg = <0x57920000 0x1000>;
438
439			adamv_rst: reset {
440				compatible = "socionext,uniphier-ld20-adamv-reset";
441				#reset-cells = <1>;
442			};
443		};
444
445		i2c0: i2c@58780000 {
446			compatible = "socionext,uniphier-fi2c";
447			status = "disabled";
448			reg = <0x58780000 0x80>;
449			#address-cells = <1>;
450			#size-cells = <0>;
451			interrupts = <0 41 4>;
452			pinctrl-names = "default";
453			pinctrl-0 = <&pinctrl_i2c0>;
454			clocks = <&peri_clk 4>;
455			resets = <&peri_rst 4>;
456			clock-frequency = <100000>;
457		};
458
459		i2c1: i2c@58781000 {
460			compatible = "socionext,uniphier-fi2c";
461			status = "disabled";
462			reg = <0x58781000 0x80>;
463			#address-cells = <1>;
464			#size-cells = <0>;
465			interrupts = <0 42 4>;
466			pinctrl-names = "default";
467			pinctrl-0 = <&pinctrl_i2c1>;
468			clocks = <&peri_clk 5>;
469			resets = <&peri_rst 5>;
470			clock-frequency = <100000>;
471		};
472
473		i2c2: i2c@58782000 {
474			compatible = "socionext,uniphier-fi2c";
475			reg = <0x58782000 0x80>;
476			#address-cells = <1>;
477			#size-cells = <0>;
478			interrupts = <0 43 4>;
479			clocks = <&peri_clk 6>;
480			resets = <&peri_rst 6>;
481			clock-frequency = <400000>;
482		};
483
484		i2c3: i2c@58783000 {
485			compatible = "socionext,uniphier-fi2c";
486			status = "disabled";
487			reg = <0x58783000 0x80>;
488			#address-cells = <1>;
489			#size-cells = <0>;
490			interrupts = <0 44 4>;
491			pinctrl-names = "default";
492			pinctrl-0 = <&pinctrl_i2c3>;
493			clocks = <&peri_clk 7>;
494			resets = <&peri_rst 7>;
495			clock-frequency = <100000>;
496		};
497
498		i2c4: i2c@58784000 {
499			compatible = "socionext,uniphier-fi2c";
500			status = "disabled";
501			reg = <0x58784000 0x80>;
502			#address-cells = <1>;
503			#size-cells = <0>;
504			interrupts = <0 45 4>;
505			pinctrl-names = "default";
506			pinctrl-0 = <&pinctrl_i2c4>;
507			clocks = <&peri_clk 8>;
508			resets = <&peri_rst 8>;
509			clock-frequency = <100000>;
510		};
511
512		i2c5: i2c@58785000 {
513			compatible = "socionext,uniphier-fi2c";
514			reg = <0x58785000 0x80>;
515			#address-cells = <1>;
516			#size-cells = <0>;
517			interrupts = <0 25 4>;
518			clocks = <&peri_clk 9>;
519			resets = <&peri_rst 9>;
520			clock-frequency = <400000>;
521		};
522
523		system_bus: system-bus@58c00000 {
524			compatible = "socionext,uniphier-system-bus";
525			status = "disabled";
526			reg = <0x58c00000 0x400>;
527			#address-cells = <2>;
528			#size-cells = <1>;
529			pinctrl-names = "default";
530			pinctrl-0 = <&pinctrl_system_bus>;
531		};
532
533		smpctrl@59801000 {
534			compatible = "socionext,uniphier-smpctrl";
535			reg = <0x59801000 0x400>;
536		};
537
538		sdctrl@59810000 {
539			compatible = "socionext,uniphier-ld20-sdctrl",
540				     "simple-mfd", "syscon";
541			reg = <0x59810000 0x400>;
542
543			sd_clk: clock {
544				compatible = "socionext,uniphier-ld20-sd-clock";
545				#clock-cells = <1>;
546			};
547
548			sd_rst: reset {
549				compatible = "socionext,uniphier-ld20-sd-reset";
550				#reset-cells = <1>;
551			};
552		};
553
554		perictrl@59820000 {
555			compatible = "socionext,uniphier-ld20-perictrl",
556				     "simple-mfd", "syscon";
557			reg = <0x59820000 0x200>;
558
559			peri_clk: clock {
560				compatible = "socionext,uniphier-ld20-peri-clock";
561				#clock-cells = <1>;
562			};
563
564			peri_rst: reset {
565				compatible = "socionext,uniphier-ld20-peri-reset";
566				#reset-cells = <1>;
567			};
568		};
569
570		emmc: mmc@5a000000 {
571			compatible = "socionext,uniphier-sd4hc", "cdns,sd4hc";
572			reg = <0x5a000000 0x400>;
573			interrupts = <0 78 4>;
574			pinctrl-names = "default";
575			pinctrl-0 = <&pinctrl_emmc>;
576			clocks = <&sys_clk 4>;
577			resets = <&sys_rst 4>;
578			bus-width = <8>;
579			mmc-ddr-1_8v;
580			mmc-hs200-1_8v;
581			mmc-pwrseq = <&emmc_pwrseq>;
582			cdns,phy-input-delay-legacy = <9>;
583			cdns,phy-input-delay-mmc-highspeed = <2>;
584			cdns,phy-input-delay-mmc-ddr = <3>;
585			cdns,phy-dll-delay-sdclk = <21>;
586			cdns,phy-dll-delay-sdclk-hsmmc = <21>;
587		};
588
589		sd: mmc@5a400000 {
590			compatible = "socionext,uniphier-sd-v3.1.1";
591			status = "disabled";
592			reg = <0x5a400000 0x800>;
593			interrupts = <0 76 4>;
594			pinctrl-names = "default";
595			pinctrl-0 = <&pinctrl_sd>;
596			clocks = <&sd_clk 0>;
597			reset-names = "host";
598			resets = <&sd_rst 0>;
599			bus-width = <4>;
600			cap-sd-highspeed;
601		};
602
603		soc_glue: soc-glue@5f800000 {
604			compatible = "socionext,uniphier-ld20-soc-glue",
605				     "simple-mfd", "syscon";
606			reg = <0x5f800000 0x2000>;
607
608			pinctrl: pinctrl {
609				compatible = "socionext,uniphier-ld20-pinctrl";
610			};
611		};
612
613		soc-glue@5f900000 {
614			compatible = "socionext,uniphier-ld20-soc-glue-debug",
615				     "simple-mfd";
616			#address-cells = <1>;
617			#size-cells = <1>;
618			ranges = <0 0x5f900000 0x2000>;
619
620			efuse@100 {
621				compatible = "socionext,uniphier-efuse";
622				reg = <0x100 0x28>;
623			};
624
625			efuse@200 {
626				compatible = "socionext,uniphier-efuse";
627				reg = <0x200 0x68>;
628				#address-cells = <1>;
629				#size-cells = <1>;
630
631				/* USB cells */
632				usb_rterm0: trim@54,4 {
633					reg = <0x54 1>;
634					bits = <4 2>;
635				};
636				usb_rterm1: trim@55,4 {
637					reg = <0x55 1>;
638					bits = <4 2>;
639				};
640				usb_rterm2: trim@58,4 {
641					reg = <0x58 1>;
642					bits = <4 2>;
643				};
644				usb_rterm3: trim@59,4 {
645					reg = <0x59 1>;
646					bits = <4 2>;
647				};
648				usb_sel_t0: trim@54,0 {
649					reg = <0x54 1>;
650					bits = <0 4>;
651				};
652				usb_sel_t1: trim@55,0 {
653					reg = <0x55 1>;
654					bits = <0 4>;
655				};
656				usb_sel_t2: trim@58,0 {
657					reg = <0x58 1>;
658					bits = <0 4>;
659				};
660				usb_sel_t3: trim@59,0 {
661					reg = <0x59 1>;
662					bits = <0 4>;
663				};
664				usb_hs_i0: trim@56,0 {
665					reg = <0x56 1>;
666					bits = <0 4>;
667				};
668				usb_hs_i2: trim@5a,0 {
669					reg = <0x5a 1>;
670					bits = <0 4>;
671				};
672			};
673		};
674
675		xdmac: dma-controller@5fc10000 {
676			compatible = "socionext,uniphier-xdmac";
677			reg = <0x5fc10000 0x5300>;
678			interrupts = <0 188 4>;
679			dma-channels = <16>;
680			#dma-cells = <2>;
681		};
682
683		aidet: interrupt-controller@5fc20000 {
684			compatible = "socionext,uniphier-ld20-aidet";
685			reg = <0x5fc20000 0x200>;
686			interrupt-controller;
687			#interrupt-cells = <2>;
688		};
689
690		gic: interrupt-controller@5fe00000 {
691			compatible = "arm,gic-v3";
692			reg = <0x5fe00000 0x10000>,	/* GICD */
693			      <0x5fe80000 0x80000>;	/* GICR */
694			interrupt-controller;
695			#interrupt-cells = <3>;
696			interrupts = <1 9 4>;
697		};
698
699		sysctrl@61840000 {
700			compatible = "socionext,uniphier-ld20-sysctrl",
701				     "simple-mfd", "syscon";
702			reg = <0x61840000 0x10000>;
703
704			sys_clk: clock {
705				compatible = "socionext,uniphier-ld20-clock";
706				#clock-cells = <1>;
707			};
708
709			sys_rst: reset {
710				compatible = "socionext,uniphier-ld20-reset";
711				#reset-cells = <1>;
712			};
713
714			watchdog {
715				compatible = "socionext,uniphier-wdt";
716			};
717
718			pvtctl: pvtctl {
719				compatible = "socionext,uniphier-ld20-thermal";
720				interrupts = <0 3 4>;
721				#thermal-sensor-cells = <0>;
722				socionext,tmod-calibration = <0x0f22 0x68ee>;
723			};
724		};
725
726		eth: ethernet@65000000 {
727			compatible = "socionext,uniphier-ld20-ave4";
728			status = "disabled";
729			reg = <0x65000000 0x8500>;
730			interrupts = <0 66 4>;
731			pinctrl-names = "default";
732			pinctrl-0 = <&pinctrl_ether_rgmii>;
733			clock-names = "ether";
734			clocks = <&sys_clk 6>;
735			reset-names = "ether";
736			resets = <&sys_rst 6>;
737			phy-mode = "rgmii";
738			local-mac-address = [00 00 00 00 00 00];
739			socionext,syscon-phy-mode = <&soc_glue 0>;
740
741			mdio: mdio {
742				#address-cells = <1>;
743				#size-cells = <0>;
744			};
745		};
746
747		_usb: usb@65a00000 {
748			compatible = "socionext,uniphier-dwc3", "snps,dwc3";
749			status = "disabled";
750			reg = <0x65a00000 0xcd00>;
751			interrupt-names = "host";
752			interrupts = <0 134 4>;
753			pinctrl-names = "default";
754			pinctrl-0 = <&pinctrl_usb0>, <&pinctrl_usb1>,
755				    <&pinctrl_usb2>, <&pinctrl_usb3>;
756			clock-names = "ref", "bus_early", "suspend";
757			clocks = <&sys_clk 14>, <&sys_clk 14>, <&sys_clk 14>;
758			resets = <&usb_rst 15>;
759			phys = <&usb_hsphy0>, <&usb_hsphy1>,
760			       <&usb_hsphy2>, <&usb_hsphy3>,
761			       <&usb_ssphy0>, <&usb_ssphy1>;
762			dr_mode = "host";
763		};
764
765		usb-glue@65b00000 {
766			compatible = "socionext,uniphier-ld20-dwc3-glue",
767				     "simple-mfd";
768			#address-cells = <1>;
769			#size-cells = <1>;
770			ranges = <0 0x65b00000 0x400>;
771
772			usb_rst: reset@0 {
773				compatible = "socionext,uniphier-ld20-usb3-reset";
774				reg = <0x0 0x4>;
775				#reset-cells = <1>;
776				clock-names = "link";
777				clocks = <&sys_clk 14>;
778				reset-names = "link";
779				resets = <&sys_rst 14>;
780			};
781
782			usb_vbus0: regulator@100 {
783				compatible = "socionext,uniphier-ld20-usb3-regulator";
784				reg = <0x100 0x10>;
785				clock-names = "link";
786				clocks = <&sys_clk 14>;
787				reset-names = "link";
788				resets = <&sys_rst 14>;
789			};
790
791			usb_vbus1: regulator@110 {
792				compatible = "socionext,uniphier-ld20-usb3-regulator";
793				reg = <0x110 0x10>;
794				clock-names = "link";
795				clocks = <&sys_clk 14>;
796				reset-names = "link";
797				resets = <&sys_rst 14>;
798			};
799
800			usb_vbus2: regulator@120 {
801				compatible = "socionext,uniphier-ld20-usb3-regulator";
802				reg = <0x120 0x10>;
803				clock-names = "link";
804				clocks = <&sys_clk 14>;
805				reset-names = "link";
806				resets = <&sys_rst 14>;
807			};
808
809			usb_vbus3: regulator@130 {
810				compatible = "socionext,uniphier-ld20-usb3-regulator";
811				reg = <0x130 0x10>;
812				clock-names = "link";
813				clocks = <&sys_clk 14>;
814				reset-names = "link";
815				resets = <&sys_rst 14>;
816			};
817
818			usb_hsphy0: hs-phy@200 {
819				compatible = "socionext,uniphier-ld20-usb3-hsphy";
820				reg = <0x200 0x10>;
821				#phy-cells = <0>;
822				clock-names = "link", "phy";
823				clocks = <&sys_clk 14>, <&sys_clk 16>;
824				reset-names = "link", "phy";
825				resets = <&sys_rst 14>, <&sys_rst 16>;
826				vbus-supply = <&usb_vbus0>;
827				nvmem-cell-names = "rterm", "sel_t", "hs_i";
828				nvmem-cells = <&usb_rterm0>, <&usb_sel_t0>,
829					      <&usb_hs_i0>;
830			};
831
832			usb_hsphy1: hs-phy@210 {
833				compatible = "socionext,uniphier-ld20-usb3-hsphy";
834				reg = <0x210 0x10>;
835				#phy-cells = <0>;
836				clock-names = "link", "phy";
837				clocks = <&sys_clk 14>, <&sys_clk 16>;
838				reset-names = "link", "phy";
839				resets = <&sys_rst 14>, <&sys_rst 16>;
840				vbus-supply = <&usb_vbus1>;
841				nvmem-cell-names = "rterm", "sel_t", "hs_i";
842				nvmem-cells = <&usb_rterm1>, <&usb_sel_t1>,
843					      <&usb_hs_i0>;
844			};
845
846			usb_hsphy2: hs-phy@220 {
847				compatible = "socionext,uniphier-ld20-usb3-hsphy";
848				reg = <0x220 0x10>;
849				#phy-cells = <0>;
850				clock-names = "link", "phy";
851				clocks = <&sys_clk 14>, <&sys_clk 17>;
852				reset-names = "link", "phy";
853				resets = <&sys_rst 14>, <&sys_rst 17>;
854				vbus-supply = <&usb_vbus2>;
855				nvmem-cell-names = "rterm", "sel_t", "hs_i";
856				nvmem-cells = <&usb_rterm2>, <&usb_sel_t2>,
857					      <&usb_hs_i2>;
858			};
859
860			usb_hsphy3: hs-phy@230 {
861				compatible = "socionext,uniphier-ld20-usb3-hsphy";
862				reg = <0x230 0x10>;
863				#phy-cells = <0>;
864				clock-names = "link", "phy";
865				clocks = <&sys_clk 14>, <&sys_clk 17>;
866				reset-names = "link", "phy";
867				resets = <&sys_rst 14>, <&sys_rst 17>;
868				vbus-supply = <&usb_vbus3>;
869				nvmem-cell-names = "rterm", "sel_t", "hs_i";
870				nvmem-cells = <&usb_rterm3>, <&usb_sel_t3>,
871					      <&usb_hs_i2>;
872			};
873
874			usb_ssphy0: ss-phy@300 {
875				compatible = "socionext,uniphier-ld20-usb3-ssphy";
876				reg = <0x300 0x10>;
877				#phy-cells = <0>;
878				clock-names = "link", "phy";
879				clocks = <&sys_clk 14>, <&sys_clk 18>;
880				reset-names = "link", "phy";
881				resets = <&sys_rst 14>, <&sys_rst 18>;
882				vbus-supply = <&usb_vbus0>;
883			};
884
885			usb_ssphy1: ss-phy@310 {
886				compatible = "socionext,uniphier-ld20-usb3-ssphy";
887				reg = <0x310 0x10>;
888				#phy-cells = <0>;
889				clock-names = "link", "phy";
890				clocks = <&sys_clk 14>, <&sys_clk 19>;
891				reset-names = "link", "phy";
892				resets = <&sys_rst 14>, <&sys_rst 19>;
893				vbus-supply = <&usb_vbus1>;
894			};
895		};
896
897		/* FIXME: U-Boot own node */
898		usb: usb@65b00000 {
899			compatible = "socionext,uniphier-ld20-dwc3";
900			reg = <0x65b00000 0x1000>;
901			#address-cells = <1>;
902			#size-cells = <1>;
903			ranges;
904			pinctrl-names = "default";
905			pinctrl-0 = <&pinctrl_usb0>, <&pinctrl_usb1>,
906				    <&pinctrl_usb2>, <&pinctrl_usb3>;
907			dwc3@65a00000 {
908				compatible = "snps,dwc3";
909				reg = <0x65a00000 0x10000>;
910				interrupts = <0 134 4>;
911				dr_mode = "host";
912				tx-fifo-resize;
913			};
914		};
915
916		pcie: pcie@66000000 {
917			compatible = "socionext,uniphier-pcie", "snps,dw-pcie";
918			status = "disabled";
919			reg-names = "dbi", "link", "config";
920			reg = <0x66000000 0x1000>, <0x66010000 0x10000>,
921			      <0x2fff0000 0x10000>;
922			#address-cells = <3>;
923			#size-cells = <2>;
924			clocks = <&sys_clk 24>;
925			resets = <&sys_rst 24>;
926			num-lanes = <1>;
927			num-viewport = <1>;
928			bus-range = <0x0 0xff>;
929			device_type = "pci";
930			ranges =
931			/* downstream I/O */
932				<0x81000000 0 0x00000000 0x2ffe0000 0 0x00010000>,
933			/* non-prefetchable memory */
934				<0x82000000 0 0x20000000 0x20000000 0 0x0ffe0000>;
935			#interrupt-cells = <1>;
936			interrupt-names = "dma", "msi";
937			interrupts = <0 224 4>, <0 225 4>;
938			interrupt-map-mask = <0 0 0 7>;
939			interrupt-map = <0 0 0 1 &pcie_intc 0>,	/* INTA */
940					<0 0 0 2 &pcie_intc 1>,	/* INTB */
941					<0 0 0 3 &pcie_intc 2>,	/* INTC */
942					<0 0 0 4 &pcie_intc 3>;	/* INTD */
943			phy-names = "pcie-phy";
944			phys = <&pcie_phy>;
945
946			pcie_intc: legacy-interrupt-controller {
947				interrupt-controller;
948				#interrupt-cells = <1>;
949				interrupt-parent = <&gic>;
950				interrupts = <0 226 4>;
951			};
952		};
953
954		pcie_phy: phy@66038000 {
955			compatible = "socionext,uniphier-ld20-pcie-phy";
956			reg = <0x66038000 0x4000>;
957			#phy-cells = <0>;
958			clock-names = "link";
959			clocks = <&sys_clk 24>;
960			reset-names = "link";
961			resets = <&sys_rst 24>;
962			socionext,syscon = <&soc_glue>;
963		};
964
965		nand: nand-controller@68000000 {
966			compatible = "socionext,uniphier-denali-nand-v5b";
967			status = "disabled";
968			reg-names = "nand_data", "denali_reg";
969			reg = <0x68000000 0x20>, <0x68100000 0x1000>;
970			interrupts = <0 65 4>;
971			pinctrl-names = "default";
972			pinctrl-0 = <&pinctrl_nand>;
973			clock-names = "nand", "nand_x", "ecc";
974			clocks = <&sys_clk 2>, <&sys_clk 3>, <&sys_clk 3>;
975			reset-names = "nand", "reg";
976			resets = <&sys_rst 2>, <&sys_rst 2>;
977		};
978	};
979};
980
981#include "uniphier-pinctrl.dtsi"
982
983&pinctrl_aout1 {
984	drive-strength = <4>;	/* default: 3.5mA */
985
986	ao1dacck {
987		pins = "AO1DACCK";
988		drive-strength = <5>;	/* 5mA */
989	};
990};
991
992&pinctrl_aoutiec1 {
993	drive-strength = <4>;	/* default: 3.5mA */
994
995	ao1arc {
996		pins = "AO1ARC";
997		drive-strength = <11>;	/* 11mA */
998	};
999};
1000