1// SPDX-License-Identifier: GPL-2.0-only
2// Copyright (C) 2020 Stephan Gerhold
3
4/dts-v1/;
5
6#include "msm8916-pm8916.dtsi"
7#include <dt-bindings/gpio/gpio.h>
8#include <dt-bindings/input/input.h>
9#include <dt-bindings/leds/common.h>
10
11/ {
12	model = "Xiaomi Redmi 2 (Wingtech WT88047)";
13	compatible = "wingtech,wt88047", "qcom,msm8916";
14	chassis-type = "handset";
15
16	aliases {
17		serial0 = &blsp1_uart2;
18	};
19
20	chosen {
21		stdout-path = "serial0";
22	};
23
24	gpio-keys {
25		compatible = "gpio-keys";
26
27		pinctrl-names = "default";
28		pinctrl-0 = <&gpio_keys_default>;
29
30		label = "GPIO Buttons";
31
32		button-volume-up {
33			label = "Volume Up";
34			gpios = <&msmgpio 107 GPIO_ACTIVE_LOW>;
35			linux,code = <KEY_VOLUMEUP>;
36		};
37	};
38
39	usb_id: usb-id {
40		compatible = "linux,extcon-usb-gpio";
41		id-gpio = <&msmgpio 110 GPIO_ACTIVE_HIGH>;
42		pinctrl-names = "default";
43		pinctrl-0 = <&usb_id_default>;
44	};
45};
46
47&blsp_i2c2 {
48	status = "okay";
49
50	imu@68 {
51		compatible = "invensense,mpu6880";
52		reg = <0x68>;
53
54		interrupt-parent = <&msmgpio>;
55		interrupts = <115 IRQ_TYPE_EDGE_RISING>;
56
57		vdd-supply = <&pm8916_l17>;
58		vddio-supply = <&pm8916_l6>;
59
60		pinctrl-names = "default";
61		pinctrl-0 = <&imu_default>;
62
63		mount-matrix = "1",  "0", "0",
64			       "0", "-1", "0",
65			       "0",  "0", "1";
66	};
67};
68
69&blsp_i2c5 {
70	status = "okay";
71
72	touchscreen@38 {
73		/* Likely some other model but works just fine with this one */
74		compatible = "edt,edt-ft5506";
75		reg = <0x38>;
76
77		interrupt-parent = <&msmgpio>;
78		interrupts = <13 IRQ_TYPE_EDGE_FALLING>;
79
80		reset-gpios = <&msmgpio 12 GPIO_ACTIVE_LOW>;
81
82		vcc-supply = <&pm8916_l17>;
83		iovcc-supply = <&pm8916_l6>;
84
85		touchscreen-size-x = <720>;
86		touchscreen-size-y = <1280>;
87
88		pinctrl-names = "default";
89		pinctrl-0 = <&touchscreen_default>;
90	};
91};
92
93&blsp_i2c6 {
94	status = "okay";
95
96	led-controller@45 {
97		compatible = "awinic,aw2013";
98		reg = <0x45>;
99		#address-cells = <1>;
100		#size-cells = <0>;
101
102		vcc-supply = <&pm8916_l16>;
103
104		led@0 {
105			reg = <0>;
106			led-max-microamp = <15000>;
107			function = LED_FUNCTION_INDICATOR;
108			color = <LED_COLOR_ID_RED>;
109		};
110
111		led@1 {
112			reg = <1>;
113			led-max-microamp = <15000>;
114			function = LED_FUNCTION_INDICATOR;
115			color = <LED_COLOR_ID_GREEN>;
116		};
117
118		led@2 {
119			reg = <2>;
120			led-max-microamp = <15000>;
121			function = LED_FUNCTION_INDICATOR;
122			color = <LED_COLOR_ID_BLUE>;
123		};
124	};
125};
126
127&blsp1_uart2 {
128	status = "okay";
129};
130
131&pm8916_resin {
132	status = "okay";
133	linux,code = <KEY_VOLUMEDOWN>;
134};
135
136&pm8916_vib {
137	status = "okay";
138};
139
140&pronto {
141	status = "okay";
142};
143
144&sdhc_1 {
145	status = "okay";
146
147	pinctrl-names = "default", "sleep";
148	pinctrl-0 = <&sdc1_clk_on &sdc1_cmd_on &sdc1_data_on>;
149	pinctrl-1 = <&sdc1_clk_off &sdc1_cmd_off &sdc1_data_off>;
150};
151
152&sdhc_2 {
153	status = "okay";
154
155	pinctrl-names = "default", "sleep";
156	pinctrl-0 = <&sdc2_clk_on &sdc2_cmd_on &sdc2_data_on>;
157	pinctrl-1 = <&sdc2_clk_off &sdc2_cmd_off &sdc2_data_off>;
158
159	non-removable;
160};
161
162&usb {
163	status = "okay";
164	extcon = <&usb_id>, <&usb_id>;
165};
166
167&usb_hs_phy {
168	extcon = <&usb_id>;
169};
170
171&smd_rpm_regulators {
172	vdd_l1_l2_l3-supply = <&pm8916_s3>;
173	vdd_l4_l5_l6-supply = <&pm8916_s4>;
174	vdd_l7-supply = <&pm8916_s4>;
175
176	s3 {
177		regulator-min-microvolt = <1200000>;
178		regulator-max-microvolt = <1300000>;
179	};
180
181	s4 {
182		regulator-min-microvolt = <1800000>;
183		regulator-max-microvolt = <2100000>;
184	};
185
186	l1 {
187		regulator-min-microvolt = <1225000>;
188		regulator-max-microvolt = <1225000>;
189	};
190
191	l2 {
192		regulator-min-microvolt = <1200000>;
193		regulator-max-microvolt = <1200000>;
194	};
195
196	l4 {
197		regulator-min-microvolt = <2050000>;
198		regulator-max-microvolt = <2050000>;
199	};
200
201	l5 {
202		regulator-min-microvolt = <1800000>;
203		regulator-max-microvolt = <1800000>;
204	};
205
206	l6 {
207		regulator-min-microvolt = <1800000>;
208		regulator-max-microvolt = <1800000>;
209	};
210
211	l7 {
212		regulator-min-microvolt = <1800000>;
213		regulator-max-microvolt = <1800000>;
214	};
215
216	l8 {
217		regulator-min-microvolt = <2850000>;
218		regulator-max-microvolt = <2900000>;
219	};
220
221	l9 {
222		regulator-min-microvolt = <3300000>;
223		regulator-max-microvolt = <3300000>;
224	};
225
226	l10 {
227		regulator-min-microvolt = <2700000>;
228		regulator-max-microvolt = <2800000>;
229	};
230
231	l11 {
232		regulator-min-microvolt = <2950000>;
233		regulator-max-microvolt = <2950000>;
234		regulator-allow-set-load;
235		regulator-system-load = <200000>;
236	};
237
238	l12 {
239		regulator-min-microvolt = <1800000>;
240		regulator-max-microvolt = <2950000>;
241	};
242
243	l13 {
244		regulator-min-microvolt = <3075000>;
245		regulator-max-microvolt = <3075000>;
246	};
247
248	l14 {
249		regulator-min-microvolt = <1800000>;
250		regulator-max-microvolt = <3300000>;
251	};
252
253	l15 {
254		regulator-min-microvolt = <1800000>;
255		regulator-max-microvolt = <3300000>;
256	};
257
258	l16 {
259		regulator-min-microvolt = <2800000>;
260		regulator-max-microvolt = <3300000>;
261	};
262
263	l17 {
264		regulator-min-microvolt = <2850000>;
265		regulator-max-microvolt = <2850000>;
266	};
267
268	l18 {
269		regulator-min-microvolt = <2700000>;
270		regulator-max-microvolt = <2700000>;
271	};
272};
273
274&msmgpio {
275	gpio_keys_default: gpio-keys-default {
276		pins = "gpio107";
277		function = "gpio";
278
279		drive-strength = <2>;
280		bias-pull-up;
281	};
282
283	imu_default: imu-default {
284		pins = "gpio115";
285		function = "gpio";
286
287		drive-strength = <2>;
288		bias-disable;
289	};
290
291	touchscreen_default: touchscreen-default {
292		pins = "gpio13";
293		function = "gpio";
294
295		drive-strength = <2>;
296		bias-pull-up;
297
298		reset {
299			pins = "gpio12";
300			function = "gpio";
301
302			drive-strength = <2>;
303			bias-disable;
304		};
305	};
306
307	usb_id_default: usb-id-default {
308		pins = "gpio110";
309		function = "gpio";
310
311		drive-strength = <8>;
312		bias-pull-up;
313	};
314};
315