1// SPDX-License-Identifier: GPL-2.0
2/*
3 * Hardkernel Odroid XU3/XU3-Lite/XU4/HC1 boards core device tree source
4 *
5 * Copyright (c) 2017 Marek Szyprowski
6 * Copyright (c) 2013-2017 Samsung Electronics Co., Ltd.
7 *		http://www.samsung.com
8 */
9
10#include <dt-bindings/clock/samsung,s2mps11.h>
11#include <dt-bindings/interrupt-controller/irq.h>
12#include <dt-bindings/gpio/gpio.h>
13#include "exynos5800.dtsi"
14#include "exynos5422-cpus.dtsi"
15
16/ {
17	memory@40000000 {
18		device_type = "memory";
19		reg = <0x40000000 0x7EA00000>;
20	};
21
22	chosen {
23		stdout-path = "serial2:115200n8";
24	};
25
26	firmware@2073000 {
27		compatible = "samsung,secure-firmware";
28		reg = <0x02073000 0x1000>;
29	};
30
31	fixed-rate-clocks {
32		oscclk {
33			compatible = "samsung,exynos5420-oscclk";
34			clock-frequency = <24000000>;
35		};
36	};
37};
38
39&adc {
40	vdd-supply = <&ldo4_reg>;
41	status = "okay";
42};
43
44&bus_wcore {
45	devfreq-events = <&nocp_mem0_0>, <&nocp_mem0_1>,
46			<&nocp_mem1_0>, <&nocp_mem1_1>;
47	vdd-supply = <&buck3_reg>;
48	exynos,saturation-ratio = <100>;
49	status = "okay";
50};
51
52&bus_noc {
53	devfreq = <&bus_wcore>;
54	status = "okay";
55};
56
57&bus_fsys_apb {
58	devfreq = <&bus_wcore>;
59	status = "okay";
60};
61
62&bus_fsys {
63	devfreq = <&bus_wcore>;
64	status = "okay";
65};
66
67&bus_fsys2 {
68	devfreq = <&bus_wcore>;
69	status = "okay";
70};
71
72&bus_mfc {
73	devfreq = <&bus_wcore>;
74	status = "okay";
75};
76
77&bus_gen {
78	devfreq = <&bus_wcore>;
79	status = "okay";
80};
81
82&bus_peri {
83	devfreq = <&bus_wcore>;
84	status = "okay";
85};
86
87&bus_g2d {
88	devfreq = <&bus_wcore>;
89	status = "okay";
90};
91
92&bus_g2d_acp {
93	devfreq = <&bus_wcore>;
94	status = "okay";
95};
96
97&bus_jpeg {
98	devfreq = <&bus_wcore>;
99	status = "okay";
100};
101
102&bus_jpeg_apb {
103	devfreq = <&bus_wcore>;
104	status = "okay";
105};
106
107&bus_disp1_fimd {
108	devfreq = <&bus_wcore>;
109	status = "okay";
110};
111
112&bus_disp1 {
113	devfreq = <&bus_wcore>;
114	status = "okay";
115};
116
117&bus_gscl_scaler {
118	devfreq = <&bus_wcore>;
119	status = "okay";
120};
121
122&bus_mscl {
123	devfreq = <&bus_wcore>;
124	status = "okay";
125};
126
127&cpu0 {
128	cpu-supply = <&buck6_reg>;
129};
130
131&cpu4 {
132	cpu-supply = <&buck2_reg>;
133};
134
135&hsi2c_4 {
136	status = "okay";
137
138	s2mps11_pmic@66 {
139		compatible = "samsung,s2mps11-pmic";
140		reg = <0x66>;
141		samsung,s2mps11-acokb-ground;
142
143		interrupt-parent = <&gpx0>;
144		interrupts = <4 IRQ_TYPE_EDGE_FALLING>;
145		pinctrl-names = "default";
146		pinctrl-0 = <&s2mps11_irq>;
147
148		s2mps11_osc: clocks {
149			compatible = "samsung,s2mps11-clk";
150			#clock-cells = <1>;
151			clock-output-names = "s2mps11_ap",
152					"s2mps11_cp", "s2mps11_bt";
153		};
154
155		regulators {
156			ldo1_reg: LDO1 {
157				regulator-name = "vdd_ldo1";
158				regulator-min-microvolt = <1000000>;
159				regulator-max-microvolt = <1000000>;
160				regulator-always-on;
161			};
162
163			ldo2_reg: LDO2 {
164				regulator-name = "vdd_ldo2";
165				regulator-min-microvolt = <1800000>;
166				regulator-max-microvolt = <1800000>;
167				regulator-always-on;
168			};
169
170			ldo3_reg: LDO3 {
171				regulator-name = "vddq_mmc0";
172				regulator-min-microvolt = <1800000>;
173				regulator-max-microvolt = <1800000>;
174			};
175
176			ldo4_reg: LDO4 {
177				regulator-name = "vdd_adc";
178				regulator-min-microvolt = <1800000>;
179				regulator-max-microvolt = <1800000>;
180			};
181
182			ldo5_reg: LDO5 {
183				regulator-name = "vdd_ldo5";
184				regulator-min-microvolt = <1800000>;
185				regulator-max-microvolt = <1800000>;
186				regulator-always-on;
187			};
188
189			ldo6_reg: LDO6 {
190				regulator-name = "vdd_ldo6";
191				regulator-min-microvolt = <1000000>;
192				regulator-max-microvolt = <1000000>;
193				regulator-always-on;
194			};
195
196			ldo7_reg: LDO7 {
197				regulator-name = "vdd_ldo7";
198				regulator-min-microvolt = <1800000>;
199				regulator-max-microvolt = <1800000>;
200				regulator-always-on;
201			};
202
203			ldo8_reg: LDO8 {
204				regulator-name = "vdd_ldo8";
205				regulator-min-microvolt = <1800000>;
206				regulator-max-microvolt = <1800000>;
207				regulator-always-on;
208			};
209
210			ldo9_reg: LDO9 {
211				regulator-name = "vdd_ldo9";
212				regulator-min-microvolt = <3000000>;
213				regulator-max-microvolt = <3000000>;
214				regulator-always-on;
215			};
216
217			ldo10_reg: LDO10 {
218				regulator-name = "vdd_ldo10";
219				regulator-min-microvolt = <1800000>;
220				regulator-max-microvolt = <1800000>;
221				regulator-always-on;
222			};
223
224			ldo11_reg: LDO11 {
225				regulator-name = "vdd_ldo11";
226				regulator-min-microvolt = <1000000>;
227				regulator-max-microvolt = <1000000>;
228				regulator-always-on;
229			};
230
231			ldo12_reg: LDO12 {
232				/* Unused */
233				regulator-name = "vdd_ldo12";
234				regulator-min-microvolt = <800000>;
235				regulator-max-microvolt = <2375000>;
236			};
237
238			ldo13_reg: LDO13 {
239				regulator-name = "vddq_mmc2";
240				regulator-min-microvolt = <1800000>;
241				regulator-max-microvolt = <2800000>;
242			};
243
244			ldo14_reg: LDO14 {
245				/* Unused */
246				regulator-name = "vdd_ldo14";
247				regulator-min-microvolt = <800000>;
248				regulator-max-microvolt = <3950000>;
249			};
250
251			ldo15_reg: LDO15 {
252				regulator-name = "vdd_ldo15";
253				regulator-min-microvolt = <3300000>;
254				regulator-max-microvolt = <3300000>;
255				regulator-always-on;
256			};
257
258			ldo16_reg: LDO16 {
259				/* Unused */
260				regulator-name = "vdd_ldo16";
261				regulator-min-microvolt = <800000>;
262				regulator-max-microvolt = <3950000>;
263			};
264
265			ldo17_reg: LDO17 {
266				regulator-name = "vdd_ldo17";
267				regulator-min-microvolt = <3300000>;
268				regulator-max-microvolt = <3300000>;
269				regulator-always-on;
270			};
271
272			ldo18_reg: LDO18 {
273				regulator-name = "vdd_emmc_1V8";
274				regulator-min-microvolt = <1800000>;
275				regulator-max-microvolt = <1800000>;
276			};
277
278			ldo19_reg: LDO19 {
279				regulator-name = "vdd_sd";
280				regulator-min-microvolt = <2800000>;
281				regulator-max-microvolt = <2800000>;
282			};
283
284			ldo20_reg: LDO20 {
285				/* Unused */
286				regulator-name = "vdd_ldo20";
287				regulator-min-microvolt = <800000>;
288				regulator-max-microvolt = <3950000>;
289			};
290
291			ldo21_reg: LDO21 {
292				/* Unused */
293				regulator-name = "vdd_ldo21";
294				regulator-min-microvolt = <800000>;
295				regulator-max-microvolt = <3950000>;
296			};
297
298			ldo22_reg: LDO22 {
299				/* Unused */
300				regulator-name = "vdd_ldo22";
301				regulator-min-microvolt = <800000>;
302				regulator-max-microvolt = <2375000>;
303			};
304
305			ldo23_reg: LDO23 {
306				regulator-name = "vdd_mifs";
307				regulator-min-microvolt = <1100000>;
308				regulator-max-microvolt = <1100000>;
309				regulator-always-on;
310			};
311
312			ldo24_reg: LDO24 {
313				/* Unused */
314				regulator-name = "vdd_ldo24";
315				regulator-min-microvolt = <800000>;
316				regulator-max-microvolt = <3950000>;
317			};
318
319			ldo25_reg: LDO25 {
320				/* Unused */
321				regulator-name = "vdd_ldo25";
322				regulator-min-microvolt = <800000>;
323				regulator-max-microvolt = <3950000>;
324			};
325
326			ldo26_reg: LDO26 {
327				/* Used on XU3, XU3-Lite and XU4 */
328				regulator-name = "vdd_ldo26";
329				regulator-min-microvolt = <800000>;
330				regulator-max-microvolt = <3950000>;
331			};
332
333			ldo27_reg: LDO27 {
334				regulator-name = "vdd_g3ds";
335				regulator-min-microvolt = <1000000>;
336				regulator-max-microvolt = <1000000>;
337				regulator-always-on;
338			};
339
340			ldo28_reg: LDO28 {
341				/* Used on XU3 */
342				regulator-name = "vdd_ldo28";
343				regulator-min-microvolt = <800000>;
344				regulator-max-microvolt = <3950000>;
345			};
346
347			ldo29_reg: LDO29 {
348				/* Unused */
349				regulator-name = "vdd_ldo29";
350				regulator-min-microvolt = <800000>;
351				regulator-max-microvolt = <3950000>;
352			};
353
354			ldo30_reg: LDO30 {
355				/* Unused */
356				regulator-name = "vdd_ldo30";
357				regulator-min-microvolt = <800000>;
358				regulator-max-microvolt = <3950000>;
359			};
360
361			ldo31_reg: LDO31 {
362				/* Unused */
363				regulator-name = "vdd_ldo31";
364				regulator-min-microvolt = <800000>;
365				regulator-max-microvolt = <3950000>;
366			};
367
368			ldo32_reg: LDO32 {
369				/* Unused */
370				regulator-name = "vdd_ldo32";
371				regulator-min-microvolt = <800000>;
372				regulator-max-microvolt = <3950000>;
373			};
374
375			ldo33_reg: LDO33 {
376				/* Unused */
377				regulator-name = "vdd_ldo33";
378				regulator-min-microvolt = <800000>;
379				regulator-max-microvolt = <3950000>;
380			};
381
382			ldo34_reg: LDO34 {
383				/* Unused */
384				regulator-name = "vdd_ldo34";
385				regulator-min-microvolt = <800000>;
386				regulator-max-microvolt = <3950000>;
387			};
388
389			ldo35_reg: LDO35 {
390				/* Unused */
391				regulator-name = "vdd_ldo35";
392				regulator-min-microvolt = <800000>;
393				regulator-max-microvolt = <2375000>;
394			};
395
396			ldo36_reg: LDO36 {
397				/* Unused */
398				regulator-name = "vdd_ldo36";
399				regulator-min-microvolt = <800000>;
400				regulator-max-microvolt = <3950000>;
401			};
402
403			ldo37_reg: LDO37 {
404				/* Unused */
405				regulator-name = "vdd_ldo37";
406				regulator-min-microvolt = <800000>;
407				regulator-max-microvolt = <3950000>;
408			};
409
410			ldo38_reg: LDO38 {
411				/* Unused */
412				regulator-name = "vdd_ldo38";
413				regulator-min-microvolt = <800000>;
414				regulator-max-microvolt = <3950000>;
415			};
416
417			buck1_reg: BUCK1 {
418				regulator-name = "vdd_mif";
419				regulator-min-microvolt = <800000>;
420				regulator-max-microvolt = <1300000>;
421				regulator-always-on;
422				regulator-boot-on;
423			};
424
425			buck2_reg: BUCK2 {
426				regulator-name = "vdd_arm";
427				regulator-min-microvolt = <800000>;
428				regulator-max-microvolt = <1500000>;
429				regulator-always-on;
430				regulator-boot-on;
431			};
432
433			buck3_reg: BUCK3 {
434				regulator-name = "vdd_int";
435				regulator-min-microvolt = <800000>;
436				regulator-max-microvolt = <1400000>;
437				regulator-always-on;
438				regulator-boot-on;
439			};
440
441			buck4_reg: BUCK4 {
442				regulator-name = "vdd_g3d";
443				regulator-min-microvolt = <800000>;
444				regulator-max-microvolt = <1400000>;
445				regulator-always-on;
446				regulator-boot-on;
447			};
448
449			buck5_reg: BUCK5 {
450				regulator-name = "vdd_mem";
451				regulator-min-microvolt = <800000>;
452				regulator-max-microvolt = <1400000>;
453				regulator-always-on;
454				regulator-boot-on;
455			};
456
457			buck6_reg: BUCK6 {
458				regulator-name = "vdd_kfc";
459				regulator-min-microvolt = <800000>;
460				regulator-max-microvolt = <1500000>;
461				regulator-always-on;
462				regulator-boot-on;
463			};
464
465			buck7_reg: BUCK7 {
466				regulator-name = "vdd_1.0v_ldo";
467				regulator-min-microvolt = <800000>;
468				regulator-max-microvolt = <1500000>;
469				regulator-always-on;
470				regulator-boot-on;
471			};
472
473			buck8_reg: BUCK8 {
474				regulator-name = "vdd_1.8v_ldo";
475				regulator-min-microvolt = <800000>;
476				regulator-max-microvolt = <2000000>;
477				regulator-always-on;
478				regulator-boot-on;
479			};
480
481			buck9_reg: BUCK9 {
482				regulator-name = "vdd_2.8v_ldo";
483				regulator-min-microvolt = <3000000>;
484				regulator-max-microvolt = <3750000>;
485				regulator-always-on;
486				regulator-boot-on;
487			};
488
489			buck10_reg: BUCK10 {
490				regulator-name = "vdd_vmem";
491				regulator-min-microvolt = <2850000>;
492				regulator-max-microvolt = <2850000>;
493				regulator-always-on;
494				regulator-boot-on;
495			};
496		};
497	};
498};
499
500&mmc_2 {
501	status = "okay";
502	card-detect-delay = <200>;
503	samsung,dw-mshc-ciu-div = <3>;
504	samsung,dw-mshc-sdr-timing = <0 4>;
505	samsung,dw-mshc-ddr-timing = <0 2>;
506	pinctrl-names = "default";
507	pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_cd &sd2_wp &sd2_bus1 &sd2_bus4>;
508	bus-width = <4>;
509	cap-sd-highspeed;
510	max-frequency = <200000000>;
511	vmmc-supply = <&ldo19_reg>;
512	vqmmc-supply = <&ldo13_reg>;
513	sd-uhs-sdr50;
514	sd-uhs-sdr104;
515	sd-uhs-ddr50;
516};
517
518&nocp_mem0_0 {
519	status = "okay";
520};
521
522&nocp_mem0_1 {
523	status = "okay";
524};
525
526&nocp_mem1_0 {
527	status = "okay";
528};
529
530&nocp_mem1_1 {
531	status = "okay";
532};
533
534&pinctrl_0 {
535	s2mps11_irq: s2mps11-irq {
536		samsung,pins = "gpx0-4";
537		samsung,pin-function = <EXYNOS_PIN_FUNC_F>;
538		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
539		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
540	};
541};
542
543&tmu_cpu0 {
544	vtmu-supply = <&ldo7_reg>;
545};
546
547&tmu_cpu1 {
548	vtmu-supply = <&ldo7_reg>;
549};
550
551&tmu_cpu2 {
552	vtmu-supply = <&ldo7_reg>;
553};
554
555&tmu_cpu3 {
556	vtmu-supply = <&ldo7_reg>;
557};
558
559&tmu_gpu {
560	vtmu-supply = <&ldo7_reg>;
561};
562
563&rtc {
564	status = "okay";
565	clocks = <&clock CLK_RTC>, <&s2mps11_osc S2MPS11_CLK_AP>;
566	clock-names = "rtc", "rtc_src";
567};
568
569&usbdrd_dwc3_0 {
570	dr_mode = "host";
571};
572
573/* usbdrd_dwc3_1 mode customized in each board */
574
575&usbdrd3_0 {
576	vdd33-supply = <&ldo9_reg>;
577	vdd10-supply = <&ldo11_reg>;
578};
579
580&usbdrd3_1 {
581	vdd33-supply = <&ldo9_reg>;
582	vdd10-supply = <&ldo11_reg>;
583};
584