]>
Commit | Line | Data |
---|---|---|
53633a89 TR |
1 | // SPDX-License-Identifier: GPL-2.0-only |
2 | ||
3 | /dts-v1/; | |
4 | ||
5 | #include "msm8916-pm8916.dtsi" | |
93743d24 TR |
6 | #include "msm8916-modem-qdsp6.dtsi" |
7 | ||
53633a89 TR |
8 | #include <dt-bindings/gpio/gpio.h> |
9 | #include <dt-bindings/input/input.h> | |
10 | #include <dt-bindings/leds/common.h> | |
11 | ||
12 | / { | |
13 | model = "Alcatel OneTouch Idol 3 (4.7)"; | |
14 | compatible = "alcatel,idol347", "qcom,msm8916"; | |
15 | chassis-type = "handset"; | |
16 | ||
17 | aliases { | |
18 | mmc0 = &sdhc_1; /* eMMC */ | |
19 | mmc1 = &sdhc_2; /* SD card */ | |
20 | serial0 = &blsp_uart2; | |
21 | }; | |
22 | ||
23 | chosen { | |
24 | stdout-path = "serial0"; | |
25 | }; | |
26 | ||
93743d24 TR |
27 | reserved-memory { |
28 | /delete-node/ reserved@86680000; | |
29 | /delete-node/ rmtfs@86700000; | |
30 | ||
31 | rmtfs: rmtfs@86680000 { | |
32 | compatible = "qcom,rmtfs-mem"; | |
33 | reg = <0x0 0x86680000 0x0 0x160000>; | |
34 | no-map; | |
35 | ||
36 | qcom,client-id = <1>; | |
37 | }; | |
38 | }; | |
39 | ||
53633a89 TR |
40 | gpio-keys { |
41 | compatible = "gpio-keys"; | |
42 | ||
43 | pinctrl-names = "default"; | |
44 | pinctrl-0 = <&gpio_keys_default>; | |
45 | ||
46 | label = "GPIO Buttons"; | |
47 | ||
48 | button-volume-up { | |
49 | label = "Volume Up"; | |
50 | gpios = <&tlmm 107 GPIO_ACTIVE_LOW>; | |
51 | linux,code = <KEY_VOLUMEUP>; | |
52 | }; | |
53 | }; | |
54 | ||
55 | gpio-leds { | |
56 | compatible = "gpio-leds"; | |
57 | ||
58 | pinctrl-names = "default"; | |
59 | pinctrl-0 = <&gpio_leds_default>; | |
60 | ||
61 | led-0 { | |
62 | gpios = <&tlmm 32 GPIO_ACTIVE_HIGH>; | |
63 | linux,default-trigger = "torch"; | |
64 | function = LED_FUNCTION_TORCH; | |
65 | }; | |
66 | }; | |
67 | ||
93743d24 TR |
68 | reg_headphones_avdd: regulator-headphones-avdd { |
69 | compatible = "regulator-fixed"; | |
70 | regulator-name = "headphones_avdd"; | |
71 | regulator-min-microvolt = <1800000>; | |
72 | regulator-max-microvolt = <1800000>; | |
73 | gpio = <&tlmm 121 GPIO_ACTIVE_HIGH>; | |
74 | enable-active-high; | |
75 | pinctrl-0 = <&headphones_avdd_default>; | |
76 | pinctrl-names = "default"; | |
77 | }; | |
78 | ||
53633a89 TR |
79 | usb_id: usb-id { |
80 | compatible = "linux,extcon-usb-gpio"; | |
81 | id-gpios = <&tlmm 69 GPIO_ACTIVE_HIGH>; | |
82 | pinctrl-names = "default"; | |
83 | pinctrl-0 = <&usb_id_default>; | |
84 | }; | |
85 | }; | |
86 | ||
93743d24 | 87 | &blsp_i2c3 { |
53633a89 | 88 | status = "okay"; |
93743d24 TR |
89 | |
90 | headphones: audio-codec@10 { | |
91 | compatible = "asahi-kasei,ak4375"; | |
92 | reg = <0x10>; | |
93 | avdd-supply = <®_headphones_avdd>; | |
94 | tvdd-supply = <&pm8916_l6>; | |
95 | pdn-gpios = <&tlmm 114 GPIO_ACTIVE_HIGH>; | |
96 | pinctrl-0 = <&headphones_pdn_default>; | |
97 | pinctrl-names = "default"; | |
98 | #sound-dai-cells = <0>; | |
99 | }; | |
100 | ||
101 | speaker_codec_top: audio-codec@34 { | |
102 | compatible = "nxp,tfa9897"; | |
103 | reg = <0x34>; | |
104 | vddd-supply = <&pm8916_l6>; | |
105 | rcv-gpios = <&tlmm 50 GPIO_ACTIVE_HIGH>; | |
106 | pinctrl-0 = <&speaker_top_default>; | |
107 | pinctrl-names = "default"; | |
108 | sound-name-prefix = "Speaker Top"; | |
109 | #sound-dai-cells = <0>; | |
110 | }; | |
111 | ||
112 | speaker_codec_bottom: audio-codec@36 { | |
113 | compatible = "nxp,tfa9897"; | |
114 | reg = <0x36>; | |
115 | vddd-supply = <&pm8916_l6>; | |
116 | rcv-gpios = <&tlmm 111 GPIO_ACTIVE_HIGH>; | |
117 | pinctrl-0 = <&speaker_bottom_default>; | |
118 | pinctrl-names = "default"; | |
119 | sound-name-prefix = "Speaker Bottom"; | |
120 | #sound-dai-cells = <0>; | |
121 | }; | |
53633a89 TR |
122 | }; |
123 | ||
124 | &blsp_i2c4 { | |
125 | status = "okay"; | |
126 | ||
127 | touchscreen@26 { | |
128 | compatible = "mstar,msg2638"; | |
129 | reg = <0x26>; | |
130 | interrupt-parent = <&tlmm>; | |
131 | interrupts = <13 IRQ_TYPE_EDGE_FALLING>; | |
132 | reset-gpios = <&tlmm 100 GPIO_ACTIVE_LOW>; | |
133 | pinctrl-names = "default"; | |
134 | pinctrl-0 = <&ts_int_reset_default>; | |
135 | vdd-supply = <&pm8916_l17>; | |
136 | vddio-supply = <&pm8916_l5>; | |
137 | touchscreen-size-x = <2048>; | |
138 | touchscreen-size-y = <2048>; | |
139 | }; | |
140 | }; | |
141 | ||
142 | &blsp_i2c5 { | |
143 | status = "okay"; | |
144 | ||
145 | magnetometer@c { | |
146 | compatible = "asahi-kasei,ak09911"; | |
147 | reg = <0x0c>; | |
148 | vdd-supply = <&pm8916_l17>; | |
149 | vid-supply = <&pm8916_l6>; | |
150 | reset-gpios = <&tlmm 8 GPIO_ACTIVE_LOW>; | |
151 | pinctrl-names = "default"; | |
152 | pinctrl-0 = <&mag_reset_default>; | |
153 | mount-matrix = "0", "1", "0", | |
154 | "-1", "0", "0", | |
155 | "0", "0", "1"; | |
156 | }; | |
157 | ||
158 | accelerometer@f { | |
159 | compatible = "kionix,kxtj21009"; | |
160 | reg = <0x0f>; | |
161 | vdd-supply = <&pm8916_l17>; | |
162 | vddio-supply = <&pm8916_l6>; | |
163 | interrupt-parent = <&tlmm>; | |
164 | interrupts = <31 IRQ_TYPE_EDGE_RISING>; | |
165 | pinctrl-names = "default"; | |
166 | pinctrl-0 = <&accel_int_default>; | |
167 | mount-matrix = "-1", "0", "0", | |
168 | "0", "1", "0", | |
169 | "0", "0", "-1"; | |
170 | }; | |
171 | ||
172 | proximity@48 { | |
173 | compatible = "sensortek,stk3310"; | |
174 | reg = <0x48>; | |
175 | interrupt-parent = <&tlmm>; | |
176 | interrupts = <12 IRQ_TYPE_EDGE_FALLING>; | |
177 | pinctrl-names = "default"; | |
178 | pinctrl-0 = <&proximity_int_default>; | |
179 | }; | |
180 | ||
181 | gyroscope@68 { | |
182 | compatible = "bosch,bmg160"; | |
183 | reg = <0x68>; | |
184 | vdd-supply = <&pm8916_l17>; | |
185 | vddio-supply = <&pm8916_l6>; | |
186 | interrupt-parent = <&tlmm>; | |
187 | interrupts = <97 IRQ_TYPE_EDGE_RISING>, | |
188 | <98 IRQ_TYPE_EDGE_RISING>; | |
189 | pinctrl-names = "default"; | |
190 | pinctrl-0 = <&gyro_int_default>; | |
191 | }; | |
192 | }; | |
193 | ||
194 | &blsp_i2c6 { | |
195 | status = "okay"; | |
196 | ||
197 | led-controller@68 { | |
198 | compatible = "si-en,sn3190"; | |
199 | reg = <0x68>; | |
200 | shutdown-gpios = <&tlmm 89 GPIO_ACTIVE_HIGH>; | |
201 | pinctrl-names = "default"; | |
202 | pinctrl-0 = <&led_enable_default &led_shutdown_default>; | |
203 | #address-cells = <1>; | |
204 | #size-cells = <0>; | |
205 | ||
206 | led@1 { | |
207 | reg = <1>; | |
208 | led-max-microamp = <5000>; | |
209 | function = LED_FUNCTION_INDICATOR; | |
210 | color = <LED_COLOR_ID_WHITE>; | |
211 | }; | |
212 | }; | |
213 | }; | |
214 | ||
93743d24 TR |
215 | &blsp_uart2 { |
216 | status = "okay"; | |
217 | }; | |
218 | ||
219 | &mpss_mem { | |
220 | reg = <0x0 0x86800000 0x0 0x5000000>; | |
221 | }; | |
222 | ||
223 | &pm8916_codec { | |
224 | qcom,micbias1-ext-cap; | |
225 | qcom,micbias-lvl = <2800>; | |
226 | qcom,mbhc-vthreshold-low = <75 100 120 180 500>; | |
227 | qcom,mbhc-vthreshold-high = <75 100 120 180 500>; | |
228 | qcom,hphl-jack-type-normally-open; | |
229 | }; | |
230 | ||
53633a89 TR |
231 | &pm8916_resin { |
232 | status = "okay"; | |
233 | linux,code = <KEY_VOLUMEDOWN>; | |
234 | }; | |
235 | ||
236 | &pm8916_rpm_regulators { | |
237 | pm8916_l17: l17 { | |
238 | regulator-min-microvolt = <2850000>; | |
239 | regulator-max-microvolt = <2850000>; | |
240 | }; | |
241 | }; | |
242 | ||
243 | &pm8916_vib { | |
244 | status = "okay"; | |
245 | }; | |
246 | ||
93743d24 TR |
247 | &q6afedai { |
248 | dai@18 { | |
249 | reg = <SECONDARY_MI2S_RX>; | |
250 | qcom,sd-lines = <0>; | |
251 | }; | |
252 | dai@22 { | |
253 | reg = <QUATERNARY_MI2S_RX>; | |
254 | qcom,sd-lines = <0>; | |
255 | }; | |
256 | }; | |
257 | ||
53633a89 TR |
258 | &sdhc_1 { |
259 | status = "okay"; | |
260 | }; | |
261 | ||
262 | &sdhc_2 { | |
263 | status = "okay"; | |
264 | ||
265 | pinctrl-names = "default", "sleep"; | |
266 | pinctrl-0 = <&sdc2_default &sdc2_cd_default>; | |
267 | pinctrl-1 = <&sdc2_sleep &sdc2_cd_default>; | |
268 | ||
269 | cd-gpios = <&tlmm 38 GPIO_ACTIVE_LOW>; | |
270 | }; | |
271 | ||
93743d24 TR |
272 | &sound { |
273 | /* Add pin switches for speakers to allow disabling them individually */ | |
274 | model = "alcatel-idol3"; | |
275 | widgets = | |
276 | "Speaker", "Speaker Top", | |
277 | "Speaker", "Speaker Bottom"; | |
278 | pin-switches = "Speaker Top", "Speaker Bottom"; | |
279 | audio-routing = | |
280 | "Speaker Top", "Speaker Top OUT", | |
281 | "Speaker Bottom", "Speaker Bottom OUT", | |
282 | "AMIC1", "MIC BIAS External1", | |
283 | "AMIC2", "MIC BIAS Internal2", | |
284 | "AMIC3", "MIC BIAS External1"; | |
285 | ||
286 | pinctrl-0 = <&cdc_pdm_default &pri_mi2s_default &pri_mi2s_ws_default &sec_mi2s_default>; | |
287 | pinctrl-1 = <&cdc_pdm_sleep &pri_mi2s_sleep &pri_mi2s_ws_sleep &sec_mi2s_sleep>; | |
288 | pinctrl-names = "default", "sleep"; | |
289 | ||
290 | sound_link_backend2: backend2-dai-link { | |
291 | link-name = "Quaternary MI2S"; | |
292 | ||
293 | cpu { | |
294 | sound-dai = <&q6afedai QUATERNARY_MI2S_RX>; | |
295 | }; | |
296 | platform { | |
297 | sound-dai = <&q6routing>; | |
298 | }; | |
299 | codec { | |
300 | sound-dai = <&speaker_codec_top>, <&speaker_codec_bottom>; | |
301 | }; | |
302 | }; | |
303 | }; | |
304 | ||
305 | &sound_link_backend0 { | |
306 | /* Primary MI2S is not used, replace with Secondary MI2S for headphones */ | |
307 | link-name = "Secondary MI2S"; | |
308 | ||
309 | cpu { | |
310 | sound-dai = <&q6afedai SECONDARY_MI2S_RX>; | |
311 | }; | |
312 | platform { | |
313 | sound-dai = <&q6routing>; | |
314 | }; | |
315 | codec { | |
316 | sound-dai = <&headphones>; | |
317 | }; | |
318 | }; | |
319 | ||
53633a89 TR |
320 | &usb { |
321 | status = "okay"; | |
322 | extcon = <&usb_id>, <&usb_id>; | |
323 | }; | |
324 | ||
325 | &usb_hs_phy { | |
326 | extcon = <&usb_id>; | |
327 | }; | |
328 | ||
329 | &venus { | |
330 | status = "okay"; | |
331 | }; | |
332 | ||
333 | &venus_mem { | |
334 | status = "okay"; | |
335 | }; | |
336 | ||
337 | &wcnss { | |
338 | status = "okay"; | |
339 | }; | |
340 | ||
341 | &wcnss_iris { | |
342 | compatible = "qcom,wcn3620"; | |
343 | }; | |
344 | ||
345 | &wcnss_mem { | |
346 | status = "okay"; | |
347 | }; | |
348 | ||
93743d24 TR |
349 | /* Only some of the pins are used */ |
350 | &pri_mi2s_default { | |
351 | pins = "gpio113", "gpio115"; | |
352 | }; | |
353 | ||
354 | &pri_mi2s_sleep { | |
355 | pins = "gpio113", "gpio115"; | |
356 | }; | |
357 | ||
53633a89 TR |
358 | &tlmm { |
359 | accel_int_default: accel-int-default-state { | |
360 | pins = "gpio31"; | |
361 | function = "gpio"; | |
362 | ||
363 | drive-strength = <2>; | |
364 | bias-disable; | |
365 | }; | |
366 | ||
367 | gpio_keys_default: gpio-keys-default-state { | |
368 | pins = "gpio107"; | |
369 | function = "gpio"; | |
370 | ||
371 | drive-strength = <2>; | |
372 | bias-pull-up; | |
373 | }; | |
374 | ||
375 | gpio_leds_default: gpio-leds-default-state { | |
376 | pins = "gpio32"; | |
377 | function = "gpio"; | |
378 | ||
379 | drive-strength = <2>; | |
380 | bias-disable; | |
381 | }; | |
382 | ||
383 | gyro_int_default: gyro-int-default-state { | |
384 | pins = "gpio97", "gpio98"; | |
385 | function = "gpio"; | |
386 | ||
387 | drive-strength = <2>; | |
388 | bias-disable; | |
389 | }; | |
390 | ||
93743d24 TR |
391 | headphones_avdd_default: headphones-avdd-default-state { |
392 | pins = "gpio121"; | |
393 | function = "gpio"; | |
394 | drive-strength = <2>; | |
395 | bias-disable; | |
396 | }; | |
397 | ||
398 | headphones_pdn_default: headphones-pdn-default-state { | |
399 | pins = "gpio114"; | |
400 | function = "gpio"; | |
401 | drive-strength = <2>; | |
402 | bias-disable; | |
403 | }; | |
404 | ||
53633a89 TR |
405 | /* |
406 | * The OEM wired an additional GPIO to be asserted so that | |
407 | * the si-en,sn3190 LED IC works. Since this GPIO is not | |
408 | * part of the IC datasheet nor supported by the driver, | |
409 | * force it asserted here. | |
410 | */ | |
411 | led_enable_default: led-enable-default-state { | |
412 | pins = "gpio102"; | |
413 | function = "gpio"; | |
414 | ||
415 | drive-strength = <2>; | |
416 | bias-disable; | |
417 | output-high; | |
418 | }; | |
419 | ||
420 | led_shutdown_default: led-shutdown-default-state { | |
421 | pins = "gpio89"; | |
422 | function = "gpio"; | |
423 | ||
424 | drive-strength = <2>; | |
425 | bias-disable; | |
426 | }; | |
427 | ||
428 | mag_reset_default: mag-reset-default-state { | |
429 | pins = "gpio8"; | |
430 | function = "gpio"; | |
431 | ||
432 | drive-strength = <2>; | |
433 | bias-disable; | |
434 | }; | |
435 | ||
436 | proximity_int_default: proximity-int-default-state { | |
437 | pins = "gpio12"; | |
438 | function = "gpio"; | |
439 | ||
440 | drive-strength = <6>; | |
441 | bias-pull-up; | |
442 | }; | |
443 | ||
444 | sdc2_cd_default: sdc2-cd-default-state { | |
445 | pins = "gpio38"; | |
446 | function = "gpio"; | |
447 | drive-strength = <2>; | |
448 | bias-disable; | |
449 | }; | |
450 | ||
93743d24 TR |
451 | speaker_bottom_default: speaker-bottom-default-state { |
452 | pins = "gpio111"; | |
453 | function = "gpio"; | |
454 | drive-strength = <2>; | |
455 | bias-disable; | |
456 | }; | |
457 | ||
458 | speaker_top_default: speaker-top-default-state { | |
459 | pins = "gpio50"; | |
460 | function = "gpio"; | |
461 | drive-strength = <2>; | |
462 | bias-disable; | |
463 | }; | |
464 | ||
53633a89 TR |
465 | ts_int_reset_default: ts-int-reset-default-state { |
466 | pins = "gpio13", "gpio100"; | |
467 | function = "gpio"; | |
468 | ||
469 | drive-strength = <2>; | |
470 | bias-disable; | |
471 | }; | |
472 | ||
473 | usb_id_default: usb-id-default-state { | |
474 | pins = "gpio69"; | |
475 | function = "gpio"; | |
476 | ||
477 | drive-strength = <8>; | |
478 | bias-pull-up; | |
479 | }; | |
480 | }; |