1// SPDX-License-Identifier: BSD-3-Clause
2/*
3 * Copyright (c) 2022, Eugene Lepshy <fekz115@gmail.com>
4 * Copyright (c) 2022, Gianluca Boiano <morf3089@gmail.com>
5 */
6/dts-v1/;
7
8#include "msm8953.dtsi"
9#include "pm8953.dtsi"
10#include "pmi8950.dtsi"
11#include <dt-bindings/leds/common.h>
12
13/delete-node/ &adsp_fw_mem;
14/delete-node/ &cont_splash_mem;
15/delete-node/ &qseecom_mem;
16/delete-node/ &wcnss_fw_mem;
17
18/ {
19	model = "Xiaomi Redmi 5 Plus";
20	compatible = "xiaomi,vince", "qcom,msm8953";
21	chassis-type = "handset";
22	qcom,msm-id = <293 0>;
23	qcom,board-id = <0x1000b 0x08>;
24
25	gpio-keys {
26		compatible = "gpio-keys";
27
28		pinctrl-names = "default";
29		pinctrl-0 = <&gpio_key_default>;
30
31		key-volume-up {
32			label = "volume_up";
33			linux,code = <KEY_VOLUMEUP>;
34			gpios = <&tlmm 85 GPIO_ACTIVE_LOW>;
35		};
36	};
37
38	reserved-memory {
39		qseecom_mem: qseecom@84a00000 {
40			reg = <0x0 0x84a00000 0x0 0x1900000>;
41			no-map;
42		};
43
44		cont_splash_mem: cont-splash@90001000 {
45			reg = <0x0 0x90001000 0x0 (1080 * 2160 * 3)>;
46			no-map;
47		};
48
49		adsp_fw_mem: adsp@8d600000 {
50			reg = <0x0 0x8d600000 0x0 0x1200000>;
51			no-map;
52		};
53
54		wcnss_fw_mem: wcnss@8e800000 {
55			reg = <0x0 0x8e800000 0x0 0x700000>;
56			no-map;
57		};
58
59		ramoops@9ff00000 {
60			compatible = "ramoops";
61			reg = <0x0 0x9ff00000 0x0 0x100000>;
62			record-size = <0x1000>;
63			console-size = <0x80000>;
64			ftrace-size = <0x1000>;
65			pmsg-size = <0x8000>;
66		};
67	};
68
69	/*
70	 * We bitbang on &i2c_4 because BLSP is protected by TZ as sensors are
71	 * normally proxied via ADSP firmware. GPIOs aren't protected.
72	 */
73	i2c-sensors {
74		compatible = "i2c-gpio";
75		sda-gpios = <&tlmm 14 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
76		scl-gpios = <&tlmm 15 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
77		i2c-gpio,delay-us = <2>; /* ~100 kHz */
78		#address-cells = <1>;
79		#size-cells = <0>;
80
81		imu@6a {
82			compatible = "st,lsm6dsl";
83			reg = <0x6a>;
84			vdd-supply = <&pm8953_l10>;
85			vddio-supply = <&pm8953_l6>;
86			mount-matrix = "1", "0", "0",
87					"0", "-1", "0",
88					"0", "0", "1";
89		};
90	};
91
92	vph_pwr: vph-pwr-regulator {
93		compatible = "regulator-fixed";
94		regulator-name = "vph_pwr";
95		regulator-always-on;
96		regulator-boot-on;
97	};
98};
99
100&hsusb_phy {
101	vdd-supply = <&pm8953_l3>;
102	vdda-pll-supply = <&pm8953_l7>;
103	vdda-phy-dpdm-supply = <&pm8953_l13>;
104
105	status = "okay";
106};
107
108&i2c_2 {
109	status = "okay";
110
111	led-controller@45 {
112		compatible = "awinic,aw2013";
113		reg = <0x45>;
114
115		vcc-supply = <&pm8953_l10>;
116
117		#address-cells = <1>;
118		#size-cells = <0>;
119
120		led@0 {
121			reg = <0>;
122			led-max-microamp = <5000>;
123			function = LED_FUNCTION_INDICATOR;
124			color = <LED_COLOR_ID_WHITE>;
125		};
126	};
127};
128
129&i2c_3 {
130	status = "okay";
131
132	touchscreen@20 {
133		reg = <0x20>;
134		compatible = "syna,rmi4-i2c";
135		interrupts-extended = <&tlmm 65 IRQ_TYPE_EDGE_FALLING>;
136
137		#address-cells = <1>;
138		#size-cells = <0>;
139
140		vdd-supply = <&pm8953_l10>;
141		vio-supply = <&pm8953_l6>;
142
143		pinctrl-names = "init", "suspend";
144		pinctrl-0 = <&ts_reset_active &ts_int_active>;
145		pinctrl-1 = <&ts_reset_suspend &ts_int_suspend>;
146		syna,reset-delay-ms = <200>;
147		syna,startup-delay-ms = <500>;
148
149		rmi4-f01@1 {
150			reg = <0x01>;
151			syna,nosleep-mode = <1>;
152		};
153
154		rmi4-f12@12 {
155			reg = <0x12>;
156			syna,rezero-wait-ms = <20>;
157			syna,sensor-type = <1>;
158			touchscreen-x-mm = <68>;
159			touchscreen-y-mm = <122>;
160		};
161	};
162};
163
164&pm8953_resin {
165	linux,code = <KEY_VOLUMEDOWN>;
166	status = "okay";
167};
168
169&pmi8950_wled {
170	qcom,current-limit-microamp = <20000>;
171	qcom,ovp-millivolt = <29600>;
172	qcom,num-strings = <2>;
173	qcom,external-pfet;
174	qcom,cabc;
175
176	status = "okay";
177};
178
179&rpm_requests {
180	regulators {
181		compatible = "qcom,rpm-pm8953-regulators";
182		vdd_s1-supply = <&vph_pwr>;
183		vdd_s2-supply = <&vph_pwr>;
184		vdd_s3-supply = <&vph_pwr>;
185		vdd_s4-supply = <&vph_pwr>;
186		vdd_s5-supply = <&vph_pwr>;
187		vdd_s6-supply = <&vph_pwr>;
188		vdd_s7-supply = <&vph_pwr>;
189		vdd_l1-supply = <&pm8953_s3>;
190		vdd_l2_l3-supply = <&pm8953_s3>;
191		vdd_l4_l5_l6_l7_l16_l19-supply = <&pm8953_s4>;
192		vdd_l8_l11_l12_l13_l14_l15-supply = <&vph_pwr>;
193		vdd_l9_l10_l17_l18_l22-supply = <&vph_pwr>;
194
195		pm8953_s1: s1 {
196			regulator-min-microvolt = <870000>;
197			regulator-max-microvolt = <1156000>;
198		};
199
200		pm8953_s3: s3 {
201			regulator-min-microvolt = <984000>;
202			regulator-max-microvolt = <1224000>;
203		};
204
205		pm8953_s4: s4 {
206			regulator-min-microvolt = <1900000>;
207			regulator-max-microvolt = <2050000>;
208		};
209
210		pm8953_l1: l1 {
211			regulator-min-microvolt = <1000000>;
212			regulator-max-microvolt = <1100000>;
213		};
214
215		pm8953_l2: l2 {
216			regulator-min-microvolt = <1200000>;
217			regulator-max-microvolt = <1225000>;
218		};
219
220		pm8953_l3: l3 {
221			regulator-min-microvolt = <925000>;
222			regulator-max-microvolt = <925000>;
223		};
224
225		pm8953_l5: l5 {
226			regulator-min-microvolt = <1800000>;
227			regulator-max-microvolt = <1800000>;
228		};
229
230		pm8953_l6: l6 {
231			regulator-min-microvolt = <1800000>;
232			regulator-max-microvolt = <1800000>;
233		};
234
235		pm8953_l7: l7 {
236			regulator-min-microvolt = <1800000>;
237			regulator-max-microvolt = <1900000>;
238		};
239
240		pm8953_l8: l8 {
241			regulator-min-microvolt = <2900000>;
242			regulator-max-microvolt = <2900000>;
243		};
244
245		pm8953_l9: l9 {
246			regulator-min-microvolt = <3000000>;
247			regulator-max-microvolt = <3300000>;
248		};
249
250		pm8953_l10: l10 {
251			regulator-min-microvolt = <2850000>;
252			regulator-max-microvolt = <2850000>;
253		};
254
255		pm8953_l11: l11 {
256			regulator-min-microvolt = <2950000>;
257			regulator-max-microvolt = <2950000>;
258		};
259
260		pm8953_l12: l12 {
261			regulator-min-microvolt = <1800000>;
262			regulator-max-microvolt = <2950000>;
263		};
264
265		pm8953_l13: l13 {
266			regulator-min-microvolt = <3125000>;
267			regulator-max-microvolt = <3125000>;
268		};
269
270		pm8953_l16: l16 {
271			regulator-min-microvolt = <1800000>;
272			regulator-max-microvolt = <1800000>;
273		};
274
275		pm8953_l17: l17 {
276			regulator-min-microvolt = <2750000>;
277			regulator-max-microvolt = <2850000>;
278		};
279
280		pm8953_l19: l19 {
281			regulator-min-microvolt = <1200000>;
282			regulator-max-microvolt = <1380000>;
283		};
284
285		pm8953_l22: l22 {
286			regulator-min-microvolt = <2800000>;
287			regulator-max-microvolt = <2800000>;
288		};
289
290		pm8953_l23: l23 {
291			regulator-min-microvolt = <1200000>;
292			regulator-max-microvolt = <1225000>;
293		};
294	};
295};
296
297&sdhc_1 {
298	vmmc-supply = <&pm8953_l8>;
299	vqmmc-supply = <&pm8953_l5>;
300
301	status = "okay";
302};
303
304&sdhc_2 {
305	vmmc-supply = <&pm8953_l11>;
306	vqmmc-supply = <&pm8953_l12>;
307
308	pinctrl-names = "default", "sleep";
309	pinctrl-0 = <&sdc2_clk_on &sdc2_cmd_on &sdc2_data_on &sdc2_cd_on>;
310	pinctrl-1 = <&sdc2_clk_off &sdc2_cmd_off &sdc2_data_off &sdc2_cd_off>;
311
312	status = "okay";
313};
314
315&tlmm {
316	gpio-reserved-ranges = <0 4>, <16 4>, <135 4>;
317
318	ts_reset_active: ts-reset-active-state {
319		pins = "gpio64";
320		function = "gpio";
321		drive-strength = <8>;
322		bias-pull-up;
323	};
324
325	ts_reset_suspend: ts-reset-suspend-state {
326		pins = "gpio64";
327		function = "gpio";
328		drive-strength = <2>;
329		bias-pull-up;
330	};
331
332	ts_int_active: ts-int-active-state {
333		pins = "gpio65";
334		function = "gpio";
335		drive-strength = <8>;
336		bias-pull-up;
337	};
338
339	ts_int_suspend: ts-int-suspend-state {
340		pins = "gpio65";
341		function = "gpio";
342		drive-strength = <2>;
343		bias-pull-down;
344	};
345};
346
347&uart_0 {
348	pinctrl-names = "default";
349	pinctrl-0 = <&uart_console_active>;
350
351	status = "okay";
352};
353
354&usb3 {
355	status = "okay";
356};
357
358&usb3_dwc3 {
359	dr_mode = "peripheral";
360};
361