blob: c3cc9eb08151d0f3926b53d8a030de340b794524 [file] [log] [blame]
Stepan Moskovchenko5ea3c312012-01-31 18:19:40 -08001/* Copyright (c) 2011-2012, Code Aurora Forum. All rights reserved.
Stepan Moskovchenko2327a952011-12-14 16:31:28 -08002 *
3 * This program is free software; you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License version 2 and
5 * only version 2 as published by the Free Software Foundation.
6 *
7 * This program is distributed in the hope that it will be useful,
8 * but WITHOUT ANY WARRANTY; without even the implied warranty of
9 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10 * GNU General Public License for more details.
11 *
12 */
13
14#include <linux/init.h>
15#include <linux/ioport.h>
16#include <linux/platform_device.h>
17#include <linux/bootmem.h>
18#include <asm/mach-types.h>
19#include <asm/mach/mmc.h>
20#include <mach/msm_bus_board.h>
21#include <mach/board.h>
22#include <mach/gpio.h>
23#include <mach/gpiomux.h>
Joel Kingdacbc822012-01-25 13:30:57 -080024#include <mach/socinfo.h>
Stepan Moskovchenko2327a952011-12-14 16:31:28 -080025#include "devices.h"
26#include "board-8064.h"
27
28#if defined(CONFIG_KS8851) || defined(CONFIG_KS8851_MODULE)
29static struct gpiomux_setting gpio_eth_config = {
30 .pull = GPIOMUX_PULL_NONE,
31 .drv = GPIOMUX_DRV_8MA,
32 .func = GPIOMUX_FUNC_GPIO,
33};
34
35/* The SPI configurations apply to GSBI 5*/
36static struct gpiomux_setting gpio_spi_config = {
37 .func = GPIOMUX_FUNC_2,
Stepan Moskovchenkoc71c9792012-01-31 18:12:44 -080038 .drv = GPIOMUX_DRV_12MA,
Stepan Moskovchenko2327a952011-12-14 16:31:28 -080039 .pull = GPIOMUX_PULL_NONE,
40};
41
42/* The SPI configurations apply to GSBI 5 chip select 2*/
43static struct gpiomux_setting gpio_spi_cs2_config = {
44 .func = GPIOMUX_FUNC_3,
Stepan Moskovchenkoc71c9792012-01-31 18:12:44 -080045 .drv = GPIOMUX_DRV_12MA,
Stepan Moskovchenko2327a952011-12-14 16:31:28 -080046 .pull = GPIOMUX_PULL_NONE,
47};
48
Stepan Moskovchenkoc71c9792012-01-31 18:12:44 -080049/* Chip selects for SPI clients */
50static struct gpiomux_setting gpio_spi_cs_config = {
51 .func = GPIOMUX_FUNC_GPIO,
52 .drv = GPIOMUX_DRV_12MA,
53 .pull = GPIOMUX_PULL_UP,
54};
55
Stepan Moskovchenko2327a952011-12-14 16:31:28 -080056struct msm_gpiomux_config apq8064_ethernet_configs[] = {
57 {
58 .gpio = 43,
59 .settings = {
60 [GPIOMUX_SUSPENDED] = &gpio_eth_config,
61 [GPIOMUX_ACTIVE] = &gpio_eth_config,
62 }
63 },
64};
65#endif
66
Swaminathan Sathappancef966d2011-12-15 17:27:04 -080067static struct gpiomux_setting cdc_mclk = {
68 .func = GPIOMUX_FUNC_1,
69 .drv = GPIOMUX_DRV_8MA,
70 .pull = GPIOMUX_PULL_NONE,
71};
72
Stepan Moskovchenko2327a952011-12-14 16:31:28 -080073static struct gpiomux_setting audio_auxpcm[] = {
74 /* Suspended state */
75 {
76 .func = GPIOMUX_FUNC_GPIO,
77 .drv = GPIOMUX_DRV_2MA,
78 .pull = GPIOMUX_PULL_NONE,
79 },
80 /* Active state */
81 {
82 .func = GPIOMUX_FUNC_1,
83 .drv = GPIOMUX_DRV_2MA,
84 .pull = GPIOMUX_PULL_NONE,
85 },
86};
87
Ankit Verma6b7e2ba2012-01-26 15:48:54 -080088
89static struct gpiomux_setting wcnss_5wire_suspend_cfg = {
90 .func = GPIOMUX_FUNC_GPIO,
91 .drv = GPIOMUX_DRV_2MA,
92 .pull = GPIOMUX_PULL_UP,
93};
94
95static struct gpiomux_setting wcnss_5wire_active_cfg = {
96 .func = GPIOMUX_FUNC_1,
97 .drv = GPIOMUX_DRV_6MA,
98 .pull = GPIOMUX_PULL_DOWN,
99};
100
101
Swaminathan Sathappancef966d2011-12-15 17:27:04 -0800102static struct gpiomux_setting slimbus = {
103 .func = GPIOMUX_FUNC_1,
104 .drv = GPIOMUX_DRV_8MA,
105 .pull = GPIOMUX_PULL_KEEPER,
106};
107
Stepan Moskovchenko5ea3c312012-01-31 18:19:40 -0800108static struct gpiomux_setting gsbi1_uart_config = {
109 .func = GPIOMUX_FUNC_1,
110 .drv = GPIOMUX_DRV_16MA,
111 .pull = GPIOMUX_PULL_NONE,
112};
113
David Collinsf0d00732012-01-25 15:46:50 -0800114static struct gpiomux_setting ext_regulator_config = {
115 .func = GPIOMUX_FUNC_GPIO,
116 .drv = GPIOMUX_DRV_8MA,
117 .pull = GPIOMUX_PULL_NONE,
118 .dir = GPIOMUX_OUT_LOW,
119};
120
Jin Hong4bbbfba2012-02-02 21:48:07 -0800121static struct gpiomux_setting gsbi7_func1_cfg = {
122 .func = GPIOMUX_FUNC_1,
123 .drv = GPIOMUX_DRV_8MA,
124 .pull = GPIOMUX_PULL_NONE,
125};
126
127static struct gpiomux_setting gsbi7_func2_cfg = {
128 .func = GPIOMUX_FUNC_2,
129 .drv = GPIOMUX_DRV_8MA,
130 .pull = GPIOMUX_PULL_NONE,
131};
132
Jing Lin04601f92012-02-05 15:36:07 -0800133static struct gpiomux_setting gsbi3_suspended_cfg = {
134 .func = GPIOMUX_FUNC_1,
135 .drv = GPIOMUX_DRV_2MA,
136 .pull = GPIOMUX_PULL_KEEPER,
137};
138
139static struct gpiomux_setting gsbi3_active_cfg = {
140 .func = GPIOMUX_FUNC_1,
141 .drv = GPIOMUX_DRV_8MA,
142 .pull = GPIOMUX_PULL_NONE,
143};
144
Hemant Kumara945b472012-01-25 15:08:06 -0800145#ifdef CONFIG_USB_EHCI_MSM_HSIC
146static struct gpiomux_setting hsic_act_cfg = {
147 .func = GPIOMUX_FUNC_1,
148 .drv = GPIOMUX_DRV_8MA,
149 .pull = GPIOMUX_PULL_NONE,
150};
151
152static struct gpiomux_setting hsic_sus_cfg = {
153 .func = GPIOMUX_FUNC_GPIO,
154 .drv = GPIOMUX_DRV_2MA,
155 .pull = GPIOMUX_PULL_DOWN,
156 .dir = GPIOMUX_OUT_LOW,
157};
158
Anirudh Ghayal2917a5a2012-02-05 19:51:07 -0800159static struct gpiomux_setting cyts_resout_sus_cfg = {
160 .func = GPIOMUX_FUNC_GPIO,
161 .drv = GPIOMUX_DRV_6MA,
162 .pull = GPIOMUX_PULL_UP,
163};
164
165static struct gpiomux_setting cyts_resout_act_cfg = {
166 .func = GPIOMUX_FUNC_GPIO,
167 .drv = GPIOMUX_DRV_6MA,
168 .pull = GPIOMUX_PULL_UP,
169};
170
171static struct gpiomux_setting cyts_sleep_sus_cfg = {
172 .func = GPIOMUX_FUNC_GPIO,
173 .drv = GPIOMUX_DRV_6MA,
174 .pull = GPIOMUX_PULL_DOWN,
175};
176
177static struct gpiomux_setting cyts_sleep_act_cfg = {
178 .func = GPIOMUX_FUNC_GPIO,
179 .drv = GPIOMUX_DRV_6MA,
180 .pull = GPIOMUX_PULL_DOWN,
181};
182
183static struct gpiomux_setting cyts_int_act_cfg = {
184 .func = GPIOMUX_FUNC_GPIO,
185 .drv = GPIOMUX_DRV_8MA,
186 .pull = GPIOMUX_PULL_UP,
187};
188
189static struct gpiomux_setting cyts_int_sus_cfg = {
190 .func = GPIOMUX_FUNC_GPIO,
191 .drv = GPIOMUX_DRV_2MA,
192 .pull = GPIOMUX_PULL_DOWN,
193};
194
195static struct msm_gpiomux_config cyts_gpio_configs[] __initdata = {
196 { /* TS INTERRUPT */
197 .gpio = 6,
198 .settings = {
199 [GPIOMUX_ACTIVE] = &cyts_int_act_cfg,
200 [GPIOMUX_SUSPENDED] = &cyts_int_sus_cfg,
201 },
202 },
203 { /* TS SLEEP */
204 .gpio = 33,
205 .settings = {
206 [GPIOMUX_ACTIVE] = &cyts_sleep_act_cfg,
207 [GPIOMUX_SUSPENDED] = &cyts_sleep_sus_cfg,
208 },
209 },
210 { /* TS RESOUT */
211 .gpio = 7,
212 .settings = {
213 [GPIOMUX_ACTIVE] = &cyts_resout_act_cfg,
214 [GPIOMUX_SUSPENDED] = &cyts_resout_sus_cfg,
215 },
216 },
217};
218
Hemant Kumara945b472012-01-25 15:08:06 -0800219static struct msm_gpiomux_config apq8064_hsic_configs[] = {
220 {
221 .gpio = 88, /*HSIC_STROBE */
222 .settings = {
223 [GPIOMUX_ACTIVE] = &hsic_act_cfg,
224 [GPIOMUX_SUSPENDED] = &hsic_sus_cfg,
225 },
226 },
227 {
228 .gpio = 89, /* HSIC_DATA */
229 .settings = {
230 [GPIOMUX_ACTIVE] = &hsic_act_cfg,
231 [GPIOMUX_SUSPENDED] = &hsic_sus_cfg,
232 },
233 },
234};
235#endif
236
Jing Lin21ed4de2012-02-05 15:53:28 -0800237static struct gpiomux_setting mxt_reset_sus_cfg = {
238 .func = GPIOMUX_FUNC_GPIO,
239 .drv = GPIOMUX_DRV_6MA,
240 .pull = GPIOMUX_PULL_DOWN,
241};
242
243static struct gpiomux_setting mxt_reset_act_cfg = {
244 .func = GPIOMUX_FUNC_GPIO,
245 .drv = GPIOMUX_DRV_6MA,
246 .pull = GPIOMUX_PULL_UP,
247};
248
249static struct gpiomux_setting mxt_int_sus_cfg = {
250 .func = GPIOMUX_FUNC_GPIO,
251 .drv = GPIOMUX_DRV_2MA,
252 .pull = GPIOMUX_PULL_DOWN,
253};
254
255static struct gpiomux_setting mxt_int_act_cfg = {
256 .func = GPIOMUX_FUNC_GPIO,
257 .drv = GPIOMUX_DRV_8MA,
258 .pull = GPIOMUX_PULL_UP,
259};
260
Stepan Moskovchenko2327a952011-12-14 16:31:28 -0800261static struct msm_gpiomux_config apq8064_gsbi_configs[] __initdata = {
Stepan Moskovchenko5ea3c312012-01-31 18:19:40 -0800262 {
Jing Lin04601f92012-02-05 15:36:07 -0800263 .gpio = 8, /* GSBI3 I2C QUP SDA */
264 .settings = {
265 [GPIOMUX_SUSPENDED] = &gsbi3_suspended_cfg,
266 [GPIOMUX_ACTIVE] = &gsbi3_active_cfg,
267 },
268 },
269 {
270 .gpio = 9, /* GSBI3 I2C QUP SCL */
271 .settings = {
272 [GPIOMUX_SUSPENDED] = &gsbi3_suspended_cfg,
273 [GPIOMUX_ACTIVE] = &gsbi3_active_cfg,
274 },
275 },
276 {
Stepan Moskovchenko5ea3c312012-01-31 18:19:40 -0800277 .gpio = 18, /* GSBI1 UART TX */
278 .settings = {
279 [GPIOMUX_SUSPENDED] = &gsbi1_uart_config,
280 },
281 },
282 {
283 .gpio = 19, /* GSBI1 UART RX */
284 .settings = {
285 [GPIOMUX_SUSPENDED] = &gsbi1_uart_config,
286 },
287 },
Stepan Moskovchenko2327a952011-12-14 16:31:28 -0800288#if defined(CONFIG_KS8851) || defined(CONFIG_KS8851_MODULE)
289 {
290 .gpio = 51, /* GSBI5 QUP SPI_DATA_MOSI */
291 .settings = {
292 [GPIOMUX_SUSPENDED] = &gpio_spi_config,
293 },
294 },
295 {
296 .gpio = 52, /* GSBI5 QUP SPI_DATA_MISO */
297 .settings = {
298 [GPIOMUX_SUSPENDED] = &gpio_spi_config,
299 },
300 },
301 {
Stepan Moskovchenkoc71c9792012-01-31 18:12:44 -0800302 .gpio = 53, /* Funny CS0 */
303 .settings = {
304 [GPIOMUX_SUSPENDED] = &gpio_spi_config,
305 },
306 },
307 {
Stepan Moskovchenko2327a952011-12-14 16:31:28 -0800308 .gpio = 31, /* GSBI5 QUP SPI_CS2_N */
309 .settings = {
310 [GPIOMUX_SUSPENDED] = &gpio_spi_cs2_config,
311 },
312 },
313 {
314 .gpio = 54, /* GSBI5 QUP SPI_CLK */
315 .settings = {
316 [GPIOMUX_SUSPENDED] = &gpio_spi_config,
317 },
318 },
319#endif
Stepan Moskovchenkoc71c9792012-01-31 18:12:44 -0800320 {
321 .gpio = 30, /* FP CS */
322 .settings = {
323 [GPIOMUX_SUSPENDED] = &gpio_spi_cs_config,
324 },
325 },
326 {
327 .gpio = 32, /* EPM CS */
328 .settings = {
329 [GPIOMUX_SUSPENDED] = &gpio_spi_cs_config,
330 },
331 },
332 {
333 .gpio = 53, /* NOR CS */
334 .settings = {
335 [GPIOMUX_SUSPENDED] = &gpio_spi_cs_config,
336 },
337 },
Jin Hong4bbbfba2012-02-02 21:48:07 -0800338 {
339 .gpio = 82, /* GSBI7 UART2 TX */
340 .settings = {
341 [GPIOMUX_SUSPENDED] = &gsbi7_func2_cfg,
342 },
343 },
344 {
345 .gpio = 83, /* GSBI7 UART2 RX */
346 .settings = {
347 [GPIOMUX_SUSPENDED] = &gsbi7_func1_cfg,
348 },
349 },
Stepan Moskovchenko2327a952011-12-14 16:31:28 -0800350};
351
Swaminathan Sathappancef966d2011-12-15 17:27:04 -0800352static struct msm_gpiomux_config apq8064_slimbus_config[] __initdata = {
353 {
354 .gpio = 40, /* slimbus clk */
355 .settings = {
356 [GPIOMUX_SUSPENDED] = &slimbus,
357 },
358 },
359 {
360 .gpio = 41, /* slimbus data */
361 .settings = {
362 [GPIOMUX_SUSPENDED] = &slimbus,
363 },
364 },
365};
366
367static struct msm_gpiomux_config apq8064_audio_codec_configs[] __initdata = {
368 {
369 .gpio = 39,
370 .settings = {
371 [GPIOMUX_SUSPENDED] = &cdc_mclk,
372 },
373 },
374};
375
Stepan Moskovchenko2327a952011-12-14 16:31:28 -0800376static struct msm_gpiomux_config apq8064_audio_auxpcm_configs[] __initdata = {
377 {
378 .gpio = 43,
379 .settings = {
380 [GPIOMUX_SUSPENDED] = &audio_auxpcm[0],
381 [GPIOMUX_ACTIVE] = &audio_auxpcm[1],
382 },
383 },
384 {
385 .gpio = 44,
386 .settings = {
387 [GPIOMUX_SUSPENDED] = &audio_auxpcm[0],
388 [GPIOMUX_ACTIVE] = &audio_auxpcm[1],
389 },
390 },
391 {
392 .gpio = 45,
393 .settings = {
394 [GPIOMUX_SUSPENDED] = &audio_auxpcm[0],
395 [GPIOMUX_ACTIVE] = &audio_auxpcm[1],
396 },
397 },
398 {
399 .gpio = 46,
400 .settings = {
401 [GPIOMUX_SUSPENDED] = &audio_auxpcm[0],
402 [GPIOMUX_ACTIVE] = &audio_auxpcm[1],
403 },
404 },
405};
406
David Collinsf0d00732012-01-25 15:46:50 -0800407/* External 3.3 V regulator enable */
408static struct msm_gpiomux_config apq8064_ext_regulator_configs[] __initdata = {
409 {
410 .gpio = APQ8064_EXT_3P3V_REG_EN_GPIO,
411 .settings = {
412 [GPIOMUX_SUSPENDED] = &ext_regulator_config,
413 },
414 },
415};
416
Joel Kingdacbc822012-01-25 13:30:57 -0800417static struct gpiomux_setting ap2mdm_cfg = {
418 .func = GPIOMUX_FUNC_GPIO,
419 .drv = GPIOMUX_DRV_8MA,
420 .pull = GPIOMUX_PULL_DOWN,
421};
422
423static struct gpiomux_setting mdm2ap_status_cfg = {
424 .func = GPIOMUX_FUNC_GPIO,
425 .drv = GPIOMUX_DRV_8MA,
426 .pull = GPIOMUX_PULL_NONE,
427};
428
429static struct gpiomux_setting mdm2ap_errfatal_cfg = {
430 .func = GPIOMUX_FUNC_GPIO,
431 .drv = GPIOMUX_DRV_16MA,
432 .pull = GPIOMUX_PULL_DOWN,
433};
434
435static struct gpiomux_setting ap2mdm_pon_reset_n_cfg = {
436 .func = GPIOMUX_FUNC_GPIO,
437 .drv = GPIOMUX_DRV_8MA,
438 .pull = GPIOMUX_PULL_DOWN,
439};
440
441static struct msm_gpiomux_config mdm_configs[] __initdata = {
442 /* AP2MDM_STATUS */
443 {
444 .gpio = 48,
445 .settings = {
446 [GPIOMUX_SUSPENDED] = &ap2mdm_cfg,
447 }
448 },
449 /* MDM2AP_STATUS */
450 {
451 .gpio = 49,
452 .settings = {
453 [GPIOMUX_SUSPENDED] = &mdm2ap_status_cfg,
454 }
455 },
456 /* MDM2AP_ERRFATAL */
457 {
458 .gpio = 19,
459 .settings = {
460 [GPIOMUX_SUSPENDED] = &mdm2ap_errfatal_cfg,
461 }
462 },
463 /* AP2MDM_ERRFATAL */
464 {
465 .gpio = 18,
466 .settings = {
467 [GPIOMUX_SUSPENDED] = &ap2mdm_cfg,
468 }
469 },
470 /* AP2MDM_PON_RESET_N */
471 {
472 .gpio = 27,
473 .settings = {
474 [GPIOMUX_SUSPENDED] = &ap2mdm_pon_reset_n_cfg,
475 }
476 }
477};
478
Jing Lin21ed4de2012-02-05 15:53:28 -0800479static struct msm_gpiomux_config apq8064_mxt_configs[] __initdata = {
480 { /* TS INTERRUPT */
481 .gpio = 6,
482 .settings = {
483 [GPIOMUX_ACTIVE] = &mxt_int_act_cfg,
484 [GPIOMUX_SUSPENDED] = &mxt_int_sus_cfg,
485 },
486 },
487 { /* TS RESET */
488 .gpio = 33,
489 .settings = {
490 [GPIOMUX_ACTIVE] = &mxt_reset_act_cfg,
491 [GPIOMUX_SUSPENDED] = &mxt_reset_sus_cfg,
492 },
493 },
494};
495
Ankit Verma6b7e2ba2012-01-26 15:48:54 -0800496static struct msm_gpiomux_config wcnss_5wire_interface[] = {
497 {
498 .gpio = 64,
499 .settings = {
500 [GPIOMUX_ACTIVE] = &wcnss_5wire_active_cfg,
501 [GPIOMUX_SUSPENDED] = &wcnss_5wire_suspend_cfg,
502 },
503 },
504 {
505 .gpio = 65,
506 .settings = {
507 [GPIOMUX_ACTIVE] = &wcnss_5wire_active_cfg,
508 [GPIOMUX_SUSPENDED] = &wcnss_5wire_suspend_cfg,
509 },
510 },
511 {
512 .gpio = 66,
513 .settings = {
514 [GPIOMUX_ACTIVE] = &wcnss_5wire_active_cfg,
515 [GPIOMUX_SUSPENDED] = &wcnss_5wire_suspend_cfg,
516 },
517 },
518 {
519 .gpio = 67,
520 .settings = {
521 [GPIOMUX_ACTIVE] = &wcnss_5wire_active_cfg,
522 [GPIOMUX_SUSPENDED] = &wcnss_5wire_suspend_cfg,
523 },
524 },
525 {
526 .gpio = 68,
527 .settings = {
528 [GPIOMUX_ACTIVE] = &wcnss_5wire_active_cfg,
529 [GPIOMUX_SUSPENDED] = &wcnss_5wire_suspend_cfg,
530 },
531 },
532};
533
Stepan Moskovchenko2327a952011-12-14 16:31:28 -0800534void __init apq8064_init_gpiomux(void)
535{
536 int rc;
537
538 rc = msm_gpiomux_init(NR_GPIO_IRQS);
539 if (rc) {
540 pr_err(KERN_ERR "msm_gpiomux_init failed %d\n", rc);
541 return;
542 }
543
544#if defined(CONFIG_KS8851) || defined(CONFIG_KS8851_MODULE)
545 msm_gpiomux_install(apq8064_ethernet_configs,
546 ARRAY_SIZE(apq8064_ethernet_configs));
547#endif
548
Ankit Verma6b7e2ba2012-01-26 15:48:54 -0800549 msm_gpiomux_install(wcnss_5wire_interface,
550 ARRAY_SIZE(wcnss_5wire_interface));
551
Stepan Moskovchenko2327a952011-12-14 16:31:28 -0800552 msm_gpiomux_install(apq8064_gsbi_configs,
553 ARRAY_SIZE(apq8064_gsbi_configs));
554
Swaminathan Sathappancef966d2011-12-15 17:27:04 -0800555 msm_gpiomux_install(apq8064_slimbus_config,
556 ARRAY_SIZE(apq8064_slimbus_config));
557
558 msm_gpiomux_install(apq8064_audio_codec_configs,
559 ARRAY_SIZE(apq8064_audio_codec_configs));
560
Stepan Moskovchenko2327a952011-12-14 16:31:28 -0800561 msm_gpiomux_install(apq8064_audio_auxpcm_configs,
562 ARRAY_SIZE(apq8064_audio_auxpcm_configs));
David Collinsf0d00732012-01-25 15:46:50 -0800563
564 msm_gpiomux_install(apq8064_ext_regulator_configs,
565 ARRAY_SIZE(apq8064_ext_regulator_configs));
Joel Kingdacbc822012-01-25 13:30:57 -0800566
567 if (machine_is_apq8064_mtp())
568 msm_gpiomux_install(mdm_configs,
569 ARRAY_SIZE(mdm_configs));
Hemant Kumara945b472012-01-25 15:08:06 -0800570
Anirudh Ghayal2917a5a2012-02-05 19:51:07 -0800571 if (machine_is_apq8064_mtp())
572 msm_gpiomux_install(cyts_gpio_configs,
573 ARRAY_SIZE(cyts_gpio_configs));
574
Hemant Kumara945b472012-01-25 15:08:06 -0800575#ifdef CONFIG_USB_EHCI_MSM_HSIC
576 msm_gpiomux_install(apq8064_hsic_configs,
577 ARRAY_SIZE(apq8064_hsic_configs));
578#endif
Jing Lin21ed4de2012-02-05 15:53:28 -0800579
580 if (machine_is_apq8064_cdp() || machine_is_apq8064_liquid())
581 msm_gpiomux_install(apq8064_mxt_configs,
582 ARRAY_SIZE(apq8064_mxt_configs));
Stepan Moskovchenko2327a952011-12-14 16:31:28 -0800583}