xref: /linux/arch/arm64/boot/dts/qcom/msm8992-lg-h815.dts (revision 55d0969c451159cff86949b38c39171cab962069)
1// SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2/*
3 * MSM8992 LG G4 (h815) device tree.
4 *
5 * Copyright (c) 2024, Alexander Reimelt <alexander.reimelt@posteo.de>
6 */
7
8/dts-v1/;
9
10#include "msm8992.dtsi"
11#include "pm8994.dtsi"
12#include "pmi8994.dtsi"
13#include <dt-bindings/leds/common.h>
14
15/* different mapping */
16/delete-node/ &cont_splash_mem;
17
18/* disabled downstream */
19/delete-node/ &dfps_data_mem;
20
21/ {
22	model = "LG G4 (H815)";
23	compatible = "lg,h815", "qcom,msm8992";
24	chassis-type = "handset";
25
26	qcom,msm-id = <0xfb 0x0>;
27	qcom,pmic-id = <0x10009 0x1000a 0x0 0x0>;
28	qcom,board-id = <0xb64 0x0>;
29
30	/* psci is broken */
31	/delete-node/ psci;
32
33	reserved-memory {
34		#address-cells = <2>;
35		#size-cells = <2>;
36		ranges;
37
38		spin-table@6000000 {
39			reg = <0x0 0x06000000 0x0 0x00001000>;
40			no-map;
41		};
42
43		ramoops@ff00000 {
44			compatible = "ramoops";
45			reg = <0x0 0x0ff00000 0x0 0x00100000>;
46			console-size = <0x20000>;
47			pmsg-size = <0x20000>;
48			record-size = <0x10000>;
49			ecc-size = <0x10>;
50		};
51
52		cont_splash_mem: fb@3400000 {
53			reg = <0x0 0x03400000 0x0 0x00c00000>;
54			no-map;
55		};
56
57		crash_fb_mem: crash-fb@4000000 {
58			reg = <0x0 0x04000000 0x0 0x00c00000>;
59			no-map;
60		};
61	};
62
63	gpio-hall-sensor {
64		compatible = "gpio-keys";
65
66		pinctrl-0 = <&hall_sensor_default>;
67		pinctrl-names = "default";
68
69		label = "Hall Effect Sensor";
70
71		event-hall-sensor {
72			gpios = <&tlmm 75 GPIO_ACTIVE_LOW>;
73			label = "hall effect sensor";
74			linux,input-type = <EV_SW>;
75			linux,code = <SW_LID>;
76			linux,can-disable;
77			wakeup-source;
78		};
79	};
80
81	gpio-keys {
82		compatible = "gpio-keys";
83
84		key-vol-up {
85			label = "volume up";
86			gpios = <&pm8994_gpios 3 GPIO_ACTIVE_LOW>;
87			linux,code = <KEY_VOLUMEUP>;
88			wakeup-source;
89			debounce-interval = <15>;
90		};
91	};
92};
93
94&cpu0 {
95	enable-method = "spin-table";
96};
97
98&cpu1 {
99	enable-method = "spin-table";
100};
101
102&cpu2 {
103	enable-method = "spin-table";
104};
105
106&cpu3 {
107	enable-method = "spin-table";
108};
109
110&cpu4 {
111	enable-method = "spin-table";
112};
113
114&cpu5 {
115	enable-method = "spin-table";
116};
117
118&pm8994_resin {
119	linux,code = <KEY_VOLUMEDOWN>;
120	status = "okay";
121};
122
123&rpm_requests {
124	regulators-0 {
125		compatible = "qcom,rpm-pm8994-regulators";
126
127		vdd_s3-supply = <&vph_pwr>;
128		vdd_s4-supply = <&vph_pwr>;
129		vdd_s5-supply = <&vph_pwr>;
130		vdd_s7-supply = <&vph_pwr>;
131		vdd_l1-supply = <&pmi8994_s1>;
132		vdd_l2_26_28-supply = <&pm8994_s3>;
133		vdd_l3_11-supply = <&pm8994_s3>;
134		vdd_l4_27_31-supply = <&pm8994_s3>;
135		vdd_l5_7-supply = <&pm8994_s5>;
136		vdd_l6_12_32-supply = <&pm8994_s5>;
137		vdd_l8_16_30-supply = <&vph_pwr>;
138		vdd_l9_10_18_22-supply = <&pmi8994_bby>;
139		vdd_l13_19_23_24-supply = <&pmi8994_bby>;
140		vdd_l14_15-supply = <&pm8994_s5>;
141		vdd_l17_29-supply = <&pmi8994_bby>;
142		vdd_l20_21-supply = <&pmi8994_bby>;
143		vdd_l25-supply = <&pm8994_s5>;
144		vdd_lvs1_2-supply = <&pm8994_s4>;
145
146		pm8994_s3: s3 {
147			regulator-min-microvolt = <1300000>;
148			regulator-max-microvolt = <1300000>;
149		};
150
151		/* sdhc1 vqmmc and bcm */
152		pm8994_s4: s4 {
153			regulator-min-microvolt = <1800000>;
154			regulator-max-microvolt = <1800000>;
155			regulator-system-load = <325000>;
156			regulator-allow-set-load;
157		};
158
159		pm8994_s5: s5 {
160			regulator-min-microvolt = <2150000>;
161			regulator-max-microvolt = <2150000>;
162		};
163
164		/* sdhc2 vqmmc */
165		pm8994_l13: l13 {
166			regulator-min-microvolt = <1800000>;
167			regulator-max-microvolt = <2950000>;
168			regulator-system-load = <22000>;
169			regulator-allow-set-load;
170		};
171
172		/* sdhc1 vmmc */
173		pm8994_l20: l20 {
174			regulator-min-microvolt = <2950000>;
175			regulator-max-microvolt = <2950000>;
176			regulator-system-load = <570000>;
177			regulator-allow-set-load;
178		};
179
180		/* sdhc2 vmmc */
181		pm8994_l21: l21 {
182			regulator-min-microvolt = <2950000>;
183			regulator-max-microvolt = <2950000>;
184			regulator-system-load = <800000>;
185			regulator-allow-set-load;
186		};
187	};
188
189	regulators-1 {
190		compatible = "qcom,rpm-pmi8994-regulators";
191
192		vdd_s1-supply = <&vph_pwr>;
193		vdd_bst_byp-supply = <&vph_pwr>;
194
195		pmi8994_s1: s1 {
196			regulator-min-microvolt = <1025000>;
197			regulator-max-microvolt = <1025000>;
198		};
199
200		/* S2 & S3 - VDD_GFX */
201
202		pmi8994_bby: boost-bypass {
203			regulator-min-microvolt = <3150000>;
204			regulator-max-microvolt = <3600000>;
205		};
206	};
207};
208
209&sdhc1 {
210	mmc-hs400-1_8v;
211	vmmc-supply = <&pm8994_l20>;
212	vqmmc-supply = <&pm8994_s4>;
213	non-removable;
214	status = "okay";
215};
216
217&sdhc2 {
218	vmmc-supply = <&pm8994_l21>;
219	vqmmc-supply = <&pm8994_l13>;
220	cd-gpios = <&pm8994_gpios 8 GPIO_ACTIVE_LOW>;
221	status = "okay";
222};
223
224&tlmm {
225	hall_sensor_default: hall-sensor-default-state {
226		pins = "gpio75";
227		function = "gpio";
228		drive-strength = <2>;
229		bias-pull-up;
230	};
231};
232