xref: /linux/scripts/dtc/include-prefixes/arm/samsung/exynos5420-galaxy-tab-common.dtsi (revision 79790b6818e96c58fe2bffee1b418c16e64e7b80)
1// SPDX-License-Identifier: GPL-2.0
2/*
3 * Base DT for Samsung's family of tablets based on Exynos5420.
4 *
5 * Copyright (c) 2012-2013 Samsung Electronics Co., Ltd.
6 *		http://www.samsung.com
7 * Copyright (c) 2022 Henrik Grimler
8 */
9
10/dts-v1/;
11#include "exynos5420.dtsi"
12#include "exynos5420-cpus.dtsi"
13#include <dt-bindings/input/input.h>
14#include <dt-bindings/gpio/gpio.h>
15#include <dt-bindings/clock/samsung,s2mps11.h>
16
17/ {
18	chassis-type = "tablet";
19
20	/*
21	 * To successfully boot the mainline kernel with the stock
22	 * bootloader (SBOOT), the tlb needs to be flushed after the
23	 * page table pointer has been updated in __common_mmu_cache_on.
24	 * The same hack is also needed to boot exynos4412-i9300 with
25	 * stock bootloader, and probably other Samsung devices of
26	 * similar age.  See
27	 * https://lore.kernel.org/all/1355276466-18295-1-git-send-email-arve@android.com
28	 * for more details.
29	 */
30
31	aliases {
32		mmc0 = &mmc_0;
33		mmc1 = &mmc_1;
34		mmc2 = &mmc_2;
35	};
36
37	chosen {
38		stdout-path = "serial2:115200n8";
39	};
40
41	memory@20000000 {
42		device_type = "memory";
43		reg = <0x20000000 0xbfa00000>;
44	};
45
46	firmware@2073000 {
47		compatible = "samsung,secure-firmware";
48		reg = <0x02073000 0x1000>;
49	};
50
51	fixed-rate-clocks {
52		oscclk {
53			compatible = "samsung,exynos5420-oscclk";
54			clock-frequency = <24000000>;
55		};
56	};
57
58	gpio-keys {
59		compatible = "gpio-keys";
60
61		key-power {
62			debounce-interval = <10>;
63			gpios = <&gpx2 2 GPIO_ACTIVE_LOW>;
64			label = "Power";
65			linux,code = <KEY_POWER>;
66			wakeup-source;
67		};
68
69		key-home {
70			debounce-interval = <10>;
71			gpios = <&gpx0 5 GPIO_ACTIVE_LOW>;
72			label = "Home";
73			linux,code = <KEY_HOME>;
74			wakeup-source;
75		};
76
77		key-volume-up {
78			debounce-interval = <10>;
79			gpios = <&gpx0 2 GPIO_ACTIVE_LOW>;
80			label = "Volume Up";
81			linux,code = <KEY_VOLUMEUP>;
82		};
83
84		key-volume-down {
85			debounce-interval = <10>;
86			gpios = <&gpx0 3 GPIO_ACTIVE_LOW>;
87			label = "Volume Down";
88			linux,code = <KEY_VOLUMEDOWN>;
89		};
90	};
91
92	mmc1_pwrseq: pwrseq {
93		compatible = "mmc-pwrseq-simple";
94		reset-gpios = <&gpy7 7 GPIO_ACTIVE_LOW>;
95		clocks = <&s2mps11_osc S2MPS11_CLK_BT>;
96		clock-names = "ext_clock";
97	};
98};
99
100&cci {
101	/* CCI is disabled in hardware */
102	status = "disabled";
103};
104
105&cpu0 {
106	cpu-supply = <&buck2_reg>;
107};
108
109&cpu4 {
110	cpu-supply = <&buck6_reg>;
111};
112
113&gpu {
114	status = "okay";
115	mali-supply = <&buck4_reg>;
116};
117
118&hsi2c_7 {
119	status = "okay";
120
121	pmic@66 {
122		compatible = "samsung,s2mps11-pmic";
123		reg = <0x66>;
124
125		interrupt-parent = <&gpx3>;
126		interrupts = <2 IRQ_TYPE_LEVEL_LOW>;
127		pinctrl-names = "default";
128		pinctrl-0 = <&s2mps11_irq>;
129
130		s2mps11_osc: clocks {
131			compatible = "samsung,s2mps11-clk";
132			#clock-cells = <1>;
133			clock-output-names = "s2mps11_ap", "s2mps11_cp",
134					     "s2mps11_bt";
135		};
136
137		regulators {
138			buck1_reg: BUCK1 {
139				regulator-name = "VDD_MIF_1V1";
140				regulator-min-microvolt = <700000>;
141				regulator-max-microvolt = <1300000>;
142				regulator-always-on;
143				regulator-boot-on;
144
145				regulator-state-mem {
146					regulator-off-in-suspend;
147				};
148			};
149
150			buck2_reg: BUCK2 {
151				regulator-name = "VDD_ARM_1V0";
152				regulator-min-microvolt = <800000>;
153				regulator-max-microvolt = <1500000>;
154				regulator-always-on;
155				regulator-boot-on;
156
157				regulator-state-mem {
158					regulator-off-in-suspend;
159				};
160			};
161
162			buck3_reg: BUCK3 {
163				regulator-name = "VDD_INT_1V0";
164				regulator-min-microvolt = <800000>;
165				regulator-max-microvolt = <1400000>;
166				regulator-always-on;
167				regulator-boot-on;
168
169				regulator-state-mem {
170					regulator-off-in-suspend;
171				};
172			};
173
174			buck4_reg: BUCK4 {
175				regulator-name = "VDD_G3D_1V0";
176				regulator-min-microvolt = <700000>;
177				regulator-max-microvolt = <1400000>;
178				regulator-always-on;
179				regulator-boot-on;
180
181				regulator-state-mem {
182					regulator-off-in-suspend;
183				};
184			};
185
186			buck5_reg: BUCK5 {
187				regulator-name = "VDD_MEM_1V2";
188				regulator-min-microvolt = <1200000>;
189				regulator-max-microvolt = <1200000>;
190				regulator-always-on;
191				regulator-boot-on;
192
193				regulator-state-mem {
194					regulator-off-in-suspend;
195				};
196
197			};
198
199			buck6_reg: BUCK6 {
200				regulator-name = "VDD_KFC_1V0";
201				regulator-min-microvolt = <800000>;
202				regulator-max-microvolt = <1500000>;
203				regulator-always-on;
204				regulator-boot-on;
205
206				regulator-state-mem {
207					regulator-off-in-suspend;
208				};
209			};
210
211			buck7_reg: BUCK7 {
212				regulator-name = "VIN_LLDO_1V4";
213				regulator-min-microvolt = <1200000>;
214				regulator-max-microvolt = <1500000>;
215				regulator-always-on;
216			};
217
218			buck8_reg: BUCK8 {
219				regulator-name = "VIN_MLDO_2V0";
220				regulator-min-microvolt = <1800000>;
221				regulator-max-microvolt = <2100000>;
222				regulator-always-on;
223			};
224
225			buck9_reg: BUCK9 {
226				regulator-name = "VIN_HLDO_3V5";
227				regulator-min-microvolt = <3000000>;
228				regulator-max-microvolt = <3500000>;
229				regulator-always-on;
230			};
231
232			buck10_reg: BUCK10 {
233				regulator-name = "VDD_CAM_ISP_1V0";
234				regulator-min-microvolt = <750000>;
235				regulator-max-microvolt = <3550000>;
236			};
237
238			ldo1_reg: LDO1 {
239				regulator-name = "VDD_ALIVE_1.0V";
240				regulator-min-microvolt = <1000000>;
241				regulator-max-microvolt = <1000000>;
242				regulator-always-on;
243			};
244
245			ldo2_reg: LDO2 {
246				regulator-name = "VDD_APIO_1V8";
247				regulator-min-microvolt = <1800000>;
248				regulator-max-microvolt = <1800000>;
249				regulator-always-on;
250				regulator-boot-on;
251
252				regulator-state-mem {
253					regulator-on-in-suspend;
254				};
255			};
256
257			ldo3_reg: LDO3 {
258				regulator-name = "VDD_APIO_MMC01_1V8";
259				regulator-min-microvolt = <1800000>;
260				regulator-max-microvolt = <1800000>;
261				regulator-always-on;
262
263				regulator-state-mem {
264					regulator-off-in-suspend;
265				};
266			};
267
268			ldo4_reg: LDO4 {
269				regulator-name = "VDD_ADC_1V8";
270				regulator-min-microvolt = <1800000>;
271				regulator-max-microvolt = <1800000>;
272				regulator-always-on;
273				regulator-boot-on;
274
275				regulator-state-mem {
276					regulator-on-in-suspend;
277				};
278			};
279
280			ldo5_reg: LDO5 {
281				/* Unused */
282				regulator-name = "VDD_LDO5";
283				regulator-min-microvolt = <1800000>;
284				regulator-max-microvolt = <1800000>;
285			};
286
287			ldo6_reg: LDO6 {
288				regulator-name = "VDD_MIPI_1V0";
289				regulator-min-microvolt = <1000000>;
290				regulator-max-microvolt = <1000000>;
291				regulator-always-on;
292				regulator-boot-on;
293
294				regulator-state-mem {
295					regulator-off-in-suspend;
296				};
297			};
298
299			ldo7_reg: LDO7 {
300				regulator-name = "VDD_MIPI_PLL_ABB1_18V";
301				regulator-min-microvolt = <1800000>;
302				regulator-max-microvolt = <1800000>;
303				regulator-always-on;
304				regulator-boot-on;
305
306				regulator-state-mem {
307					regulator-off-in-suspend;
308				};
309			};
310
311			ldo8_reg: LDO8 {
312				/* Unused */
313				regulator-name = "VDD_LDO8";
314				regulator-min-microvolt = <1800000>;
315				regulator-max-microvolt = <1800000>;
316			};
317
318			ldo9_reg: LDO9 {
319				regulator-name = "VDD_UOTG_3V0";
320				regulator-min-microvolt = <3000000>;
321				regulator-max-microvolt = <3000000>;
322				regulator-always-on;
323				regulator-boot-on;
324
325				regulator-state-mem {
326					regulator-on-in-suspend;
327				};
328			};
329
330			ldo10_reg: LDO10 {
331				regulator-name = "VDDQ_PRE_1V8";
332				regulator-min-microvolt = <1800000>;
333				regulator-max-microvolt = <1800000>;
334				regulator-always-on;
335				regulator-boot-on;
336
337				regulator-state-mem {
338					regulator-on-in-suspend;
339				};
340			};
341
342			ldo11_reg: LDO11 {
343				regulator-name = "VDD_HSIC_1V0";
344				regulator-min-microvolt = <1000000>;
345				regulator-max-microvolt = <1000000>;
346				regulator-always-on;
347				regulator-boot-on;
348
349				regulator-state-mem {
350					regulator-on-in-suspend;
351				};
352			};
353
354			ldo12_reg: LDO12 {
355				regulator-name = "VDD_HSIC_1V8";
356				regulator-min-microvolt = <1800000>;
357				regulator-max-microvolt = <1800000>;
358				regulator-always-on;
359				regulator-boot-on;
360
361				regulator-state-mem {
362					regulator-on-in-suspend;
363				};
364			};
365
366			ldo13_reg: LDO13 {
367				regulator-name = "VDD_APIO_MMC2_2V8";
368				regulator-min-microvolt = <1800000>;
369				regulator-max-microvolt = <2800000>;
370				regulator-boot-on;
371
372				regulator-state-mem {
373					regulator-off-in-suspend;
374				};
375			};
376
377			ldo14_reg: LDO14 {
378				regulator-name = "VDD_MOTOR_3V0";
379				regulator-min-microvolt = <3000000>;
380				regulator-max-microvolt = <3000000>;
381
382				regulator-state-mem {
383					regulator-off-in-suspend;
384				};
385			};
386
387			ldo15_reg: LDO15 {
388				regulator-name = "VDD_LDO15";
389				/*
390				 * LDO15 varies between devices and is
391				 * specified in the device dts
392				 */
393			};
394
395			ldo16_reg: LDO16 {
396				regulator-name = "VDD_AP_2V8";
397				regulator-min-microvolt = <2800000>;
398				regulator-max-microvolt = <2800000>;
399				regulator-always-on;
400				regulator-boot-on;
401
402				regulator-state-mem {
403					regulator-on-in-suspend;
404				};
405			};
406
407			ldo17_reg: LDO17 {
408				regulator-name = "VDD_LDO17";
409				/*
410				 * LDO17 varies between devices and is
411				 * specified in the device dts
412				 */
413			};
414
415			ldo18_reg: LDO18 {
416				/* Unused */
417				regulator-name = "VDD_LDO18";
418				regulator-min-microvolt = <1800000>;
419				regulator-max-microvolt = <1800000>;
420			};
421
422			ldo19_reg: LDO19 {
423				regulator-name = "VDD_VTF_2V8";
424				regulator-min-microvolt = <2800000>;
425				regulator-max-microvolt = <2800000>;
426
427				regulator-state-mem {
428					regulator-off-in-suspend;
429				};
430			};
431
432			ldo20_reg: LDO20 {
433				regulator-name = "VDD_CAM1_CAM_1V8";
434				regulator-min-microvolt = <1800000>;
435				regulator-max-microvolt = <1800000>;
436
437				regulator-state-mem {
438					regulator-off-in-suspend;
439				};
440			};
441
442			ldo21_reg: LDO21 {
443				regulator-name = "VDD_CAM_IO_1V8";
444				regulator-min-microvolt = <1800000>;
445				regulator-max-microvolt = <1800000>;
446
447				regulator-state-mem {
448					regulator-off-in-suspend;
449				};
450			};
451
452			ldo22_reg: LDO22 {
453				regulator-name = "VDD_CAM0_S_CORE_1V1";
454				regulator-min-microvolt = <1050000>;
455				regulator-max-microvolt = <1200000>;
456
457				regulator-state-mem {
458					regulator-off-in-suspend;
459				};
460			};
461
462			ldo23_reg: LDO23 {
463				regulator-name = "VDD_MIFS_1V1";
464				regulator-min-microvolt = <800000>;
465				regulator-max-microvolt = <1100000>;
466				regulator-always-on;
467
468				regulator-state-mem {
469					regulator-on-in-suspend;
470				};
471			};
472
473			ldo24_reg: LDO24 {
474				regulator-name = "VDD_TSP_3V3";
475				regulator-min-microvolt = <3300000>;
476				regulator-max-microvolt = <3300000>;
477
478				regulator-state-mem {
479					regulator-off-in-suspend;
480				};
481			};
482
483			ldo25_reg: LDO25 {
484				/* Unused */
485				regulator-name = "VDD_LDO25";
486				regulator-min-microvolt = <800000>;
487				regulator-max-microvolt = <3950000>;
488			};
489
490			ldo26_reg: LDO26 {
491				regulator-name = "VDD_CAM0_AF_2V8";
492				regulator-min-microvolt = <2800000>;
493				regulator-max-microvolt = <2800000>;
494
495				regulator-state-mem {
496					regulator-off-in-suspend;
497				};
498			};
499
500			ldo27_reg: LDO27 {
501				regulator-name = "VDD_G3DS_1V0";
502				regulator-min-microvolt = <800000>;
503				regulator-max-microvolt = <1000000>;
504				regulator-always-on;
505
506				regulator-state-mem {
507					regulator-on-in-suspend;
508				};
509			};
510
511			ldo28_reg: LDO28 {
512				regulator-name = "VDD_LDO28";
513				/*
514				 * LDO28 varies between devices and is
515				 * specified in the device dts
516				 */
517			};
518
519			ldo29_reg: LDO29 {
520				regulator-name = "VDD_LDO29";
521				/*
522				 * LDO29 varies between devices and is
523				 * specified in the device dts
524				 */
525			};
526
527			ldo30_reg: LDO30 {
528				regulator-name = "VDD_TOUCH_1V8";
529				regulator-min-microvolt = <1900000>;
530				regulator-max-microvolt = <1900000>;
531
532				regulator-state-mem {
533					regulator-off-in-suspend;
534				};
535			};
536
537			ldo31_reg: LDO31 {
538				regulator-name = "VDD_LDO31";
539				/*
540				 * LDO31 varies between devices and is
541				 * specified in the device dts
542				 */
543			};
544
545			ldo32_reg: LDO32 {
546				regulator-name = "VDD_LDO32";
547				/*
548				 * LDO32 varies between devices and is
549				 * specified in the device dts
550				 */
551			};
552
553			ldo33_reg: LDO33 {
554				regulator-name = "VDD_MHL_1V8";
555				regulator-min-microvolt = <1800000>;
556				regulator-max-microvolt = <1800000>;
557
558				regulator-state-mem {
559					regulator-off-in-suspend;
560				};
561			};
562
563			ldo34_reg: LDO34 {
564				regulator-name = "VDD_MHL_3V3";
565				regulator-min-microvolt = <3300000>;
566				regulator-max-microvolt = <3300000>;
567
568				regulator-state-mem {
569					regulator-off-in-suspend;
570				};
571			};
572
573			ldo35_reg: LDO35 {
574				regulator-name = "VDD_SIL_1V2";
575				regulator-min-microvolt = <1200000>;
576				regulator-max-microvolt = <1200000>;
577
578				regulator-state-mem {
579					regulator-off-in-suspend;
580				};
581			};
582
583			ldo36_reg: LDO36 {
584				/* Unused */
585				regulator-name = "VDD_LDO36";
586				regulator-min-microvolt = <800000>;
587				regulator-max-microvolt = <3950000>;
588			};
589
590			ldo37_reg: LDO37 {
591				/* Unused */
592				regulator-name = "VDD_LDO37";
593				regulator-min-microvolt = <800000>;
594				regulator-max-microvolt = <3950000>;
595			};
596
597			ldo38_reg: LDO38 {
598				regulator-name = "VDD_KEY_LED_3V3";
599				regulator-min-microvolt = <2500000>;
600				regulator-max-microvolt = <3300000>;
601
602				regulator-state-mem {
603					regulator-off-in-suspend;
604				};
605			};
606		};
607	};
608};
609
610&mixer {
611	status = "okay";
612};
613
614/* Internal storage */
615&mmc_0 {
616	status = "okay";
617	bus-width = <8>;
618	cap-mmc-highspeed;
619	card-detect-delay = <200>;
620	mmc-ddr-1_8v;
621	mmc-hs200-1_8v;
622	non-removable;
623	pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_bus1 &sd0_bus4 &sd0_bus8>;
624	pinctrl-names = "default";
625	samsung,dw-mshc-ciu-div = <3>;
626	samsung,dw-mshc-ddr-timing = <0 2>;
627	samsung,dw-mshc-sdr-timing = <0 4>;
628	vqmmc-supply = <&ldo3_reg>;
629};
630
631/* WiFi */
632&mmc_1 {
633	bus-width = <4>;
634	cap-sd-highspeed;
635	cap-sdio-irq;
636	card-detect-delay = <200>;
637	keep-power-in-suspend;
638	mmc-pwrseq = <&mmc1_pwrseq>;
639	non-removable;
640	pinctrl-0 = <&sd1_clk>, <&sd1_cmd>, <&sd1_int>, <&sd1_bus1>,
641		    <&sd1_bus4>, <&wifi_en>;
642	pinctrl-names = "default";
643	vqmmc-supply = <&ldo2_reg>;
644	samsung,dw-mshc-ciu-div = <1>;
645	samsung,dw-mshc-ddr-timing = <0 2>;
646	samsung,dw-mshc-sdr-timing = <0 1>;
647	status = "okay";
648};
649
650/* External sdcard */
651&mmc_2 {
652	status = "okay";
653	bus-width = <4>;
654	cap-sd-highspeed;
655	card-detect-delay = <200>;
656	cd-gpios = <&gpx2 4 GPIO_ACTIVE_LOW>;
657	pinctrl-0 = <&sd2_clk &sd2_cmd &mmc2_cd &sd2_bus1 &sd2_bus4>;
658	pinctrl-names = "default";
659	samsung,dw-mshc-ciu-div = <3>;
660	samsung,dw-mshc-ddr-timing = <0 2>;
661	samsung,dw-mshc-sdr-timing = <0 4>;
662	sd-uhs-sdr50;
663	vmmc-supply = <&ldo19_reg>;
664	vqmmc-supply = <&ldo13_reg>;
665};
666
667&pinctrl_0 {
668	mmc2_cd: mmc2-cd-pins {
669		samsung,pins = "gpx2-4";
670		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
671	};
672
673	s2mps11_irq: s2mps11-irq-pins {
674		samsung,pins = "gpx3-0";
675		samsung,pin-function = <EXYNOS_PIN_FUNC_F>;
676		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
677		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
678	};
679
680	wifi_en: wifi-en-pins {
681		samsung,pins = "gpy7-7";
682		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
683	};
684};
685
686&rtc {
687	status = "okay";
688	clocks = <&clock CLK_RTC>, <&s2mps11_osc S2MPS11_CLK_AP>;
689	clock-names = "rtc", "rtc_src";
690};
691
692&tmu_cpu0 {
693	vtmu-supply = <&ldo10_reg>;
694};
695
696&tmu_cpu1 {
697	vtmu-supply = <&ldo10_reg>;
698};
699
700&tmu_cpu2 {
701	vtmu-supply = <&ldo10_reg>;
702};
703
704&tmu_cpu3 {
705	vtmu-supply = <&ldo10_reg>;
706};
707
708&tmu_gpu {
709	vtmu-supply = <&ldo10_reg>;
710};
711
712&usbdrd_dwc3_0 {
713	dr_mode = "peripheral";
714};
715
716&usbdrd_dwc3_1 {
717	dr_mode = "peripheral";
718};
719
720&usbdrd3_0 {
721	vdd33-supply = <&ldo9_reg>;
722	vdd10-supply = <&ldo11_reg>;
723};
724
725&usbdrd3_1 {
726	vdd33-supply = <&ldo9_reg>;
727	vdd10-supply = <&ldo11_reg>;
728};
729