xref: /linux/arch/arm64/boot/dts/exynos/exynos7870-on7xelte.dts (revision 0cac5ce06e524755b3dac1e0a060b05992076d93)
1// SPDX-License-Identifier: GPL-2.0
2/*
3 * Samsung Galaxy J7 Prime (on7xelte) device tree source
4 *
5 * Copyright (c) 2015 Samsung Electronics Co., Ltd.
6 * Copyright (c) 2025 Kaustabh Chakraborty <kauschluss@disroot.org>
7 */
8
9/dts-v1/;
10#include "exynos7870.dtsi"
11#include <dt-bindings/gpio/gpio.h>
12#include <dt-bindings/input/input.h>
13#include <dt-bindings/interrupt-controller/irq.h>
14
15/ {
16	model = "Samsung Galaxy J7 Prime";
17	compatible = "samsung,on7xelte", "samsung,exynos7870";
18	chassis-type = "handset";
19
20	aliases {
21		mmc0 = &mmc0;
22		mmc1 = &mmc1;
23		mmc2 = &mmc2;
24		serial0 = &serial0;
25		serial1 = &serial1;
26		serial2 = &serial2;
27	};
28
29	chosen {
30		stdout-path = &serial2;
31	};
32
33	gpio-keys {
34		compatible = "gpio-keys";
35		label = "GPIO Keys";
36
37		pinctrl-names = "default";
38		pinctrl-0 = <&key_home &key_power &key_voldown &key_volup>;
39
40		key-home {
41			label = "Home Key";
42			gpios = <&gpa1 7 GPIO_ACTIVE_LOW>;
43			linux,code = <KEY_HOMEPAGE>;
44		};
45
46		key-power {
47			label = "Power Key";
48			gpios = <&gpa0 0 GPIO_ACTIVE_LOW>;
49			linux,code = <KEY_POWER>;
50		};
51
52		key-voldown {
53			label = "Volume Down Key";
54			gpios = <&gpa2 1 GPIO_ACTIVE_LOW>;
55			linux,code = <KEY_VOLUMEDOWN>;
56		};
57
58		key-volup {
59			label = "Volume Up Key";
60			gpios = <&gpa2 0 GPIO_ACTIVE_LOW>;
61			linux,code = <KEY_VOLUMEUP>;
62		};
63	};
64
65	memory@40000000 {
66		device_type = "memory";
67		reg = <0x0 0x40000000 0x3e400000>,
68		      <0x0 0x80000000 0x80000000>;
69	};
70
71	pwrseq_mmc1: pwrseq-mmc1 {
72		compatible = "mmc-pwrseq-simple";
73		reset-gpios = <&gpd3 6 GPIO_ACTIVE_LOW>;
74	};
75
76	/* mmc2: vmmc */
77	vdd_fixed_mmc2: regulator-fixed-mmc2 {
78		compatible = "regulator-fixed";
79		regulator-name = "vdd_fixed_mmc2";
80		regulator-max-microvolt = <2800000>;
81		regulator-min-microvolt = <2800000>;
82		gpio = <&gpc0 0 GPIO_ACTIVE_HIGH>;
83		enable-active-high;
84	};
85
86	reserved-memory {
87		#address-cells = <2>;
88		#size-cells = <1>;
89		ranges;
90
91		ramoops@46e00000 {
92			compatible = "ramoops";
93			reg = <0x0 0x46e00000 0x8000>;
94			console-size = <0x4000>;
95			pmsg-size = <0x4000>;
96		};
97
98		cont_splash_mem: framebuffer@67000000 {
99			reg = <0x0 0x67000000 (1080 * 1920 * 4)>;
100			iommu-addresses = <&decon 0x67000000 (1080 * 1920 * 4)>;
101			no-map;
102		};
103	};
104
105	vibrator {
106		compatible = "regulator-haptic";
107		haptic-supply = <&vdd_ldo32>;
108		min-microvolt = <3300000>;
109		max-microvolt = <3300000>;
110	};
111};
112
113&decon {
114	memory-region = <&cont_splash_mem>;
115
116	status = "okay";
117};
118
119&dsi {
120	#address-cells = <1>;
121	#size-cells = <0>;
122
123	samsung,burst-clock-frequency = <1001000000>;
124	samsung,esc-clock-frequency = <16000000>;
125	samsung,pll-clock-frequency = <26000000>;
126
127	status = "okay";
128
129	panel@0 {
130		compatible = "syna,td4300-panel";
131		reg = <0>;
132
133		backlight-gpios = <&gpd3 5 GPIO_ACTIVE_LOW>;
134
135		width-mm = <68>;
136		height-mm = <121>;
137
138		panel-timing {
139			clock-frequency = <144389520>;
140
141			hactive = <1080>;
142			hsync-len = <4>;
143			hfront-porch = <120>;
144			hback-porch = <32>;
145
146			vactive = <1920>;
147			vsync-len = <2>;
148			vfront-porch = <21>;
149			vback-porch = <4>;
150		};
151	};
152};
153
154&gpu {
155	status = "okay";
156};
157
158&hsi2c0 {
159	#address-cells = <1>;
160	#size-cells = <0>;
161
162	status = "okay";
163
164	pmic@66 {
165		compatible = "samsung,s2mpu05-pmic";
166		reg = <0x66>;
167
168		interrupt-parent = <&gpa0>;
169		interrupts = <2 IRQ_TYPE_LEVEL_LOW>;
170
171		pinctrl-names = "default";
172		pinctrl-0 = <&pmic_irq>;
173
174		regulators {
175			vdd_buck1: buck1 {
176				regulator-name = "vdd_buck1";
177				regulator-min-microvolt = <500000>;
178				regulator-max-microvolt = <1300000>;
179				regulator-ramp-delay = <12000>;
180				regulator-boot-on;
181				regulator-always-on;
182			};
183
184			vdd_buck2: buck2 {
185				regulator-name = "vdd_buck2";
186				regulator-min-microvolt = <500000>;
187				regulator-max-microvolt = <1300000>;
188				regulator-ramp-delay = <12000>;
189				regulator-boot-on;
190				regulator-always-on;
191			};
192
193			vdd_buck3: buck3 {
194				regulator-name = "vdd_buck3";
195				regulator-min-microvolt = <500000>;
196				regulator-max-microvolt = <1300000>;
197				regulator-ramp-delay = <12000>;
198				regulator-boot-on;
199				regulator-always-on;
200			};
201
202			vdd_buck4: buck4 {
203				regulator-name = "vdd_buck4";
204				regulator-min-microvolt = <1200000>;
205				regulator-max-microvolt = <1500000>;
206				regulator-ramp-delay = <12000>;
207				regulator-boot-on;
208				regulator-always-on;
209			};
210
211			vdd_buck5: buck5 {
212				regulator-name = "vdd_buck5";
213				regulator-min-microvolt = <1800000>;
214				regulator-max-microvolt = <2100000>;
215				regulator-ramp-delay = <12000>;
216				regulator-boot-on;
217				regulator-always-on;
218			};
219
220			vdd_ldo1: ldo1 {
221				regulator-name = "vdd_ldo1";
222				regulator-min-microvolt = <650000>;
223				regulator-max-microvolt = <1350000>;
224				regulator-ramp-delay = <12000>;
225				regulator-boot-on;
226				regulator-always-on;
227			};
228
229			/* mmc2: vqmmc */
230			vdd_ldo2: ldo2 {
231				regulator-name = "vdd_ldo2";
232				regulator-min-microvolt = <1800000>;
233				regulator-max-microvolt = <2800000>;
234				regulator-ramp-delay = <12000>;
235			};
236
237			vdd_ldo3: ldo3 {
238				regulator-name = "vdd_ldo3";
239				regulator-min-microvolt = <800000>;
240				regulator-max-microvolt = <2375000>;
241				regulator-ramp-delay = <12000>;
242				regulator-boot-on;
243				regulator-always-on;
244			};
245
246			vdd_ldo4: ldo4 {
247				regulator-name = "vdd_ldo4";
248				regulator-min-microvolt = <800000>;
249				regulator-max-microvolt = <1350000>;
250				regulator-ramp-delay = <12000>;
251				regulator-boot-on;
252				regulator-always-on;
253			};
254
255			vdd_ldo5: ldo5 {
256				regulator-name = "vdd_ldo5";
257				regulator-min-microvolt = <800000>;
258				regulator-max-microvolt = <1350000>;
259				regulator-ramp-delay = <12000>;
260				regulator-boot-on;
261				regulator-always-on;
262			};
263
264			vdd_ldo6: ldo6 {
265				regulator-name = "vdd_ldo6";
266				regulator-min-microvolt = <800000>;
267				regulator-max-microvolt = <1350000>;
268				regulator-ramp-delay = <12000>;
269				regulator-boot-on;
270				regulator-always-on;
271			};
272
273			vdd_ldo7: ldo7 {
274				regulator-name = "vdd_ldo7";
275				regulator-min-microvolt = <800000>;
276				regulator-max-microvolt = <2375000>;
277				regulator-ramp-delay = <12000>;
278				regulator-boot-on;
279				regulator-always-on;
280			};
281
282			/* usbdrd: vdd33 */
283			vdd_ldo8: ldo8 {
284				regulator-name = "vdd_ldo8";
285				regulator-min-microvolt = <1800000>;
286				regulator-max-microvolt = <3375000>;
287				regulator-ramp-delay = <12000>;
288			};
289
290			vdd_ldo9: ldo9 {
291				regulator-name = "vdd_ldo9";
292				regulator-min-microvolt = <650000>;
293				regulator-max-microvolt = <1350000>;
294				regulator-ramp-delay = <12000>;
295				regulator-boot-on;
296				regulator-always-on;
297			};
298
299			vdd_ldo10: ldo10 {
300				regulator-name = "vdd_ldo10";
301				regulator-min-microvolt = <650000>;
302				regulator-max-microvolt = <1350000>;
303				regulator-ramp-delay = <12000>;
304				regulator-boot-on;
305				regulator-always-on;
306			};
307
308			vdd_ldo25: ldo25 {
309				regulator-name = "vdd_ldo25";
310				regulator-min-microvolt = <800000>;
311				regulator-max-microvolt = <2375000>;
312				regulator-ramp-delay = <12000>;
313				regulator-boot-on;
314				regulator-always-on;
315			};
316
317			/* mmc0: vmmc */
318			vdd_ldo26: ldo26 {
319				regulator-name = "vdd_ldo26";
320				regulator-min-microvolt = <1800000>;
321				regulator-max-microvolt = <3375000>;
322				regulator-ramp-delay = <12000>;
323				regulator-boot-on;
324				regulator-always-on;
325			};
326
327			/* mmc0: vqmmc */
328			vdd_ldo27: ldo27 {
329				regulator-name = "vdd_ldo27";
330				regulator-min-microvolt = <800000>;
331				regulator-max-microvolt = <2375000>;
332				regulator-ramp-delay = <12000>;
333				regulator-boot-on;
334				regulator-always-on;
335			};
336
337			vdd_ldo29: ldo29 {
338				regulator-name = "vdd_ldo29";
339				regulator-min-microvolt = <2800000>;
340				regulator-max-microvolt = <2800000>;
341				regulator-boot-on;
342				regulator-always-on;
343			};
344
345			vdd_ldo30: ldo30 {
346				regulator-name = "vdd_ldo30";
347				regulator-min-microvolt = <1800000>;
348				regulator-max-microvolt = <1800000>;
349				regulator-ramp-delay = <12000>;
350				regulator-boot-on;
351				regulator-always-on;
352			};
353
354			vdd_ldo31: ldo31 {
355				regulator-name = "vdd_ldo31";
356				regulator-min-microvolt = <2800000>;
357				regulator-max-microvolt = <2800000>;
358				regulator-ramp-delay = <12000>;
359				regulator-boot-on;
360				regulator-always-on;
361			};
362
363			/* vibrator: haptic */
364			vdd_ldo32: ldo32 {
365				regulator-name = "vdd_ldo32";
366				regulator-min-microvolt = <3300000>;
367				regulator-max-microvolt = <3300000>;
368				regulator-ramp-delay = <12000>;
369			};
370
371			vdd_ldo33: ldo33 {
372				regulator-name = "vdd_ldo33";
373				regulator-min-microvolt = <3300000>;
374				regulator-max-microvolt = <3300000>;
375				regulator-ramp-delay = <12000>;
376				regulator-boot-on;
377				regulator-always-on;
378			};
379
380			vdd_ldo34: ldo34 {
381				regulator-name = "vdd_ldo34";
382				regulator-min-microvolt = <3000000>;
383				regulator-max-microvolt = <3000000>;
384				regulator-ramp-delay = <12000>;
385				regulator-boot-on;
386				regulator-always-on;
387			};
388
389			vdd_ldo35: ldo35 {
390				regulator-name = "vdd_ldo35";
391				regulator-min-microvolt = <2800000>;
392				regulator-max-microvolt = <2800000>;
393				regulator-boot-on;
394				regulator-always-on;
395			};
396		};
397	};
398};
399
400&i2c1 {
401	#address-cells = <1>;
402	#size-cells = <0>;
403
404	samsung,i2c-sda-delay = <100>;
405	samsung,i2c-max-bus-freq = <400000>;
406
407	status = "okay";
408
409	touchscreen@70 {
410		compatible = "syna,rmi4-i2c";
411		reg = <0x70>;
412		interrupt-parent = <&gpc3>;
413		interrupts = <2 IRQ_TYPE_LEVEL_LOW>;
414		#address-cells = <1>;
415		#size-cells = <0>;
416
417		pinctrl-names = "default";
418		pinctrl-0 = <&touch_irq>;
419
420		syna,reset-delay-ms = <200>;
421		syna,startup-delay-ms = <200>;
422
423		rmi4-f01@1 {
424			reg = <0x01>;
425			syna,nosleep-mode = <1>;
426		};
427
428		rmi4-f12@12 {
429			reg = <0x12>;
430			syna,sensor-type = <1>;
431			syna,rezero-wait-ms = <200>;
432			syna,clip-x-high = <1079>;
433			syna,clip-y-high = <1919>;
434			touchscreen-x-mm = <68>;
435			touchscreen-y-mm = <121>;
436		};
437	};
438};
439
440&i2c7 {
441	#address-cells = <1>;
442	#size-cells = <0>;
443
444	samsung,i2c-sda-delay = <100>;
445	samsung,i2c-max-bus-freq = <400000>;
446
447	status = "okay";
448
449	accelerometer@1d {
450		compatible = "st,lis2hh12";
451		reg = <0x1d>;
452		interrupt-parent = <&gpa2>;
453		interrupts = <3 IRQ_TYPE_EDGE_RISING>;
454
455		pinctrl-names = "default";
456		pinctrl-0 = <&accel_irq>;
457
458		mount-matrix = "1",  "0",  "0",
459			       "0", "-1",  "0",
460			       "0",  "0", "-1";
461
462		st,drdy-int-pin = <1>;
463	};
464};
465
466&i2c8 {
467	#address-cells = <1>;
468	#size-cells = <0>;
469
470	samsung,i2c-sda-delay = <100>;
471	samsung,i2c-max-bus-freq = <400000>;
472
473	status = "okay";
474
475	proximity@48 {
476		compatible = "sensortek,stk3013", "sensortek,stk3310";
477		reg = <0x48>;
478		interrupt-parent = <&gpa0>;
479		interrupts = <5 IRQ_TYPE_EDGE_BOTH>;
480
481		pinctrl-names = "default";
482		pinctrl-0 = <&proxm_irq>;
483
484		proximity-near-level = <25>;
485	};
486};
487
488&mmc0 {
489	pinctrl-names = "default";
490	pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_rdqs &sd0_bus1 &sd0_bus4 &sd0_bus8>;
491
492	vmmc-supply = <&vdd_ldo26>;
493	vqmmc-supply = <&vdd_ldo27>;
494
495	bus-width = <8>;
496	fifo-depth = <64>;
497	samsung,dw-mshc-ciu-div = <3>;
498	samsung,dw-mshc-sdr-timing = <0 4>;
499	samsung,dw-mshc-ddr-timing = <2 4>;
500	non-removable;
501
502	status = "okay";
503};
504
505&mmc1 {
506	#address-cells = <1>;
507	#size-cells = <0>;
508
509	pinctrl-names = "default";
510	pinctrl-0 = <&sd1_clk &sd1_cmd &sd1_bus1 &sd1_bus4>;
511
512	mmc-pwrseq = <&pwrseq_mmc1>;
513
514	bus-width = <4>;
515	fifo-depth = <64>;
516	samsung,dw-mshc-ciu-div = <3>;
517	samsung,dw-mshc-sdr-timing = <0 3>;
518	samsung,dw-mshc-ddr-timing = <1 2>;
519	non-removable;
520	cap-sd-highspeed;
521	cap-sdio-irq;
522
523	status = "okay";
524
525	wifi@1 {
526		compatible = "brcm,bcm43430a1-fmac", "brcm,bcm4329-fmac";
527		reg = <0x1>;
528		interrupt-names = "host-wake";
529		interrupt-parent = <&gpa2>;
530		interrupts = <2 IRQ_TYPE_LEVEL_LOW>;
531
532		reset-gpios = <&gpd3 6 GPIO_ACTIVE_LOW>;
533	};
534};
535
536&mmc2 {
537	pinctrl-names = "default";
538	pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_bus1 &sd2_bus4 &dwmmc2_irq>;
539
540	vmmc-supply = <&vdd_fixed_mmc2>;
541	vqmmc-supply = <&vdd_ldo2>;
542
543	bus-width = <4>;
544	card-detect-delay = <200>;
545	fifo-depth = <64>;
546	samsung,dw-mshc-ciu-div = <3>;
547	samsung,dw-mshc-sdr-timing = <0 3>;
548	samsung,dw-mshc-ddr-timing = <1 2>;
549	sd-uhs-sdr50;
550	sd-uhs-sdr104;
551	broken-cd;
552	disable-wp;
553
554	status = "okay";
555};
556
557&oscclk {
558	clock-frequency = <26000000>;
559};
560
561&pinctrl_alive {
562	accel_irq: accel-irq-pins {
563		samsung,pins = "gpa2-3";
564		samsung,pin-function = <EXYNOS_PIN_FUNC_EINT>;
565		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
566		samsung,pin-drv = <EXYNOS5433_PIN_DRV_FAST_SR1>;
567	};
568
569	dwmmc2_irq: dwmmc2-irq-pins {
570		samsung,pins = "gpa0-1";
571		samsung,pin-function = <EXYNOS_PIN_FUNC_EINT>;
572		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
573		samsung,pin-drv = <EXYNOS5433_PIN_DRV_FAST_SR1>;
574	};
575
576	fuel_irq: fuel-irq-pins {
577		samsung,pins = "gpa0-3";
578		samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
579		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
580		samsung,pin-drv = <EXYNOS5433_PIN_DRV_FAST_SR1>;
581	};
582
583	key_home: key-home-pins {
584		samsung,pins = "gpa1-7";
585		samsung,pin-function = <EXYNOS_PIN_FUNC_EINT>;
586		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
587		samsung,pin-drv = <EXYNOS5433_PIN_DRV_FAST_SR1>;
588	};
589
590	key_power: key-power-pins {
591		samsung,pins = "gpa0-0";
592		samsung,pin-function = <EXYNOS_PIN_FUNC_EINT>;
593		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
594		samsung,pin-drv = <EXYNOS5433_PIN_DRV_FAST_SR1>;
595	};
596
597	key_voldown: key-voldown-pins {
598		samsung,pins = "gpa2-1";
599		samsung,pin-function = <EXYNOS_PIN_FUNC_EINT>;
600		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
601		samsung,pin-drv = <EXYNOS5433_PIN_DRV_FAST_SR1>;
602	};
603
604	key_volup: key-volup-pins {
605		samsung,pins = "gpa2-0";
606		samsung,pin-function = <EXYNOS_PIN_FUNC_EINT>;
607		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
608		samsung,pin-drv = <EXYNOS5433_PIN_DRV_FAST_SR1>;
609	};
610
611	pmic_irq: pmic-irq-pins {
612		samsung,pins = "gpa0-2";
613		samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
614		samsung,pin-drv = <EXYNOS5433_PIN_DRV_FAST_SR4>;
615	};
616
617	proxm_irq: proxm-irq-pins {
618		samsung,pins = "gpa0-5";
619		samsung,pin-function = <EXYNOS_PIN_FUNC_EINT>;
620		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
621		samsung,pin-drv = <EXYNOS5433_PIN_DRV_FAST_SR1>;
622	};
623
624	tkey_irq: tkey-irq-pins {
625		samsung,pins = "gpa1-4";
626		samsung,pin-function = <EXYNOS_PIN_FUNC_EINT>;
627		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
628		samsung,pin-drv = <EXYNOS5433_PIN_DRV_FAST_SR1>;
629	};
630
631	wlan_hostwake: wlan-hostwake-pins {
632		samsung,pins = "gpa2-2";
633		samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
634		samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
635	};
636};
637
638&pinctrl_top {
639	bt_enable: bt-enable-pins {
640		samsung,pins = "gpd4-1";
641		samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
642		samsung,pin-con-pdn = <EXYNOS_PIN_PDN_PREV>;
643		samsung,pin-pud-pdn = <EXYNOS_PIN_PULL_NONE>;
644		samsung,pin-pud = <EXYNOS_PIN_PULL_DOWN>;
645	};
646
647	wlan_enable: wlan-enable-pins {
648		samsung,pins = "gpd3-6";
649		samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
650		samsung,pin-con-pdn = <EXYNOS_PIN_PDN_PREV>;
651		samsung,pin-pud-pdn = <EXYNOS_PIN_PULL_NONE>;
652		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
653		samsung,pin-drv = <EXYNOS5433_PIN_DRV_FAST_SR4>;
654		samsung,pin-val = <0>;
655	};
656};
657
658&pinctrl_touch {
659	touch_irq: touch-irq-pins {
660		samsung,pins = "gpc3-2";
661		samsung,pin-function = <EXYNOS_PIN_FUNC_EINT>;
662		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
663		samsung,pin-drv = <EXYNOS5433_PIN_DRV_FAST_SR1>;
664	};
665};
666
667&serial1 {
668	status = "okay";
669
670	bluetooth {
671		compatible = "brcm,bcm43430a1-bt";
672
673		pinctrl-names = "default";
674		pinctrl-0 = <&bt_btwake &bt_hostwake &bt_enable>;
675
676		device-wakeup-gpios = <&gpa1 2 GPIO_ACTIVE_HIGH>;
677		host-wakeup-gpios = <&gpa1 6 GPIO_ACTIVE_HIGH>;
678		shutdown-gpios = <&gpd4 1 GPIO_ACTIVE_HIGH>;
679
680		max-speed = <3000000>;
681	};
682};
683
684&serial2 {
685	status = "okay";
686};
687
688&usbdrd {
689	vdd33-supply = <&vdd_ldo8>;
690
691	status = "okay";
692};
693