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