blob: bf82e407e62bcb05974c5e67b6f825b68f2e2a48 [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
David Keitel3c40fc52012-02-09 17:53:52 -080067static struct gpiomux_setting gpio_i2c_config = {
68 .func = GPIOMUX_FUNC_1,
69 .drv = GPIOMUX_DRV_8MA,
70 .pull = GPIOMUX_PULL_NONE,
71};
72
73static struct gpiomux_setting gpio_i2c_config_sus = {
74 .func = GPIOMUX_FUNC_1,
75 .drv = GPIOMUX_DRV_2MA,
76 .pull = GPIOMUX_PULL_KEEPER,
77};
78
Swaminathan Sathappancef966d2011-12-15 17:27:04 -080079static struct gpiomux_setting cdc_mclk = {
80 .func = GPIOMUX_FUNC_1,
81 .drv = GPIOMUX_DRV_8MA,
82 .pull = GPIOMUX_PULL_NONE,
83};
84
Ankit Verma6b7e2ba2012-01-26 15:48:54 -080085static struct gpiomux_setting wcnss_5wire_suspend_cfg = {
86 .func = GPIOMUX_FUNC_GPIO,
87 .drv = GPIOMUX_DRV_2MA,
88 .pull = GPIOMUX_PULL_UP,
89};
90
91static struct gpiomux_setting wcnss_5wire_active_cfg = {
92 .func = GPIOMUX_FUNC_1,
93 .drv = GPIOMUX_DRV_6MA,
94 .pull = GPIOMUX_PULL_DOWN,
95};
96
97
Swaminathan Sathappancef966d2011-12-15 17:27:04 -080098static struct gpiomux_setting slimbus = {
99 .func = GPIOMUX_FUNC_1,
100 .drv = GPIOMUX_DRV_8MA,
101 .pull = GPIOMUX_PULL_KEEPER,
102};
103
Stepan Moskovchenko5ea3c312012-01-31 18:19:40 -0800104static struct gpiomux_setting gsbi1_uart_config = {
105 .func = GPIOMUX_FUNC_1,
106 .drv = GPIOMUX_DRV_16MA,
107 .pull = GPIOMUX_PULL_NONE,
108};
109
David Collinsf0d00732012-01-25 15:46:50 -0800110static struct gpiomux_setting ext_regulator_config = {
111 .func = GPIOMUX_FUNC_GPIO,
112 .drv = GPIOMUX_DRV_8MA,
113 .pull = GPIOMUX_PULL_NONE,
114 .dir = GPIOMUX_OUT_LOW,
115};
116
Jin Hong4bbbfba2012-02-02 21:48:07 -0800117static struct gpiomux_setting gsbi7_func1_cfg = {
118 .func = GPIOMUX_FUNC_1,
119 .drv = GPIOMUX_DRV_8MA,
120 .pull = GPIOMUX_PULL_NONE,
121};
122
123static struct gpiomux_setting gsbi7_func2_cfg = {
124 .func = GPIOMUX_FUNC_2,
125 .drv = GPIOMUX_DRV_8MA,
126 .pull = GPIOMUX_PULL_NONE,
127};
128
Jing Lin04601f92012-02-05 15:36:07 -0800129static struct gpiomux_setting gsbi3_suspended_cfg = {
130 .func = GPIOMUX_FUNC_1,
131 .drv = GPIOMUX_DRV_2MA,
132 .pull = GPIOMUX_PULL_KEEPER,
133};
134
135static struct gpiomux_setting gsbi3_active_cfg = {
136 .func = GPIOMUX_FUNC_1,
137 .drv = GPIOMUX_DRV_8MA,
138 .pull = GPIOMUX_PULL_NONE,
139};
140
Aravind Venkateswaran0507c8c2012-02-16 17:16:05 -0800141static struct gpiomux_setting hdmi_suspend_cfg = {
142 .func = GPIOMUX_FUNC_GPIO,
143 .drv = GPIOMUX_DRV_2MA,
144 .pull = GPIOMUX_PULL_DOWN,
145};
146
147static struct gpiomux_setting hdmi_active_1_cfg = {
148 .func = GPIOMUX_FUNC_1,
149 .drv = GPIOMUX_DRV_2MA,
150 .pull = GPIOMUX_PULL_UP,
151};
152
153static struct gpiomux_setting hdmi_active_2_cfg = {
154 .func = GPIOMUX_FUNC_1,
155 .drv = GPIOMUX_DRV_16MA,
156 .pull = GPIOMUX_PULL_DOWN,
157};
158
Hemant Kumara945b472012-01-25 15:08:06 -0800159#ifdef CONFIG_USB_EHCI_MSM_HSIC
160static struct gpiomux_setting hsic_act_cfg = {
161 .func = GPIOMUX_FUNC_1,
162 .drv = GPIOMUX_DRV_8MA,
163 .pull = GPIOMUX_PULL_NONE,
164};
165
166static struct gpiomux_setting hsic_sus_cfg = {
167 .func = GPIOMUX_FUNC_GPIO,
168 .drv = GPIOMUX_DRV_2MA,
169 .pull = GPIOMUX_PULL_DOWN,
170 .dir = GPIOMUX_OUT_LOW,
171};
172
Anirudh Ghayal2917a5a2012-02-05 19:51:07 -0800173static struct gpiomux_setting cyts_resout_sus_cfg = {
174 .func = GPIOMUX_FUNC_GPIO,
175 .drv = GPIOMUX_DRV_6MA,
176 .pull = GPIOMUX_PULL_UP,
177};
178
179static struct gpiomux_setting cyts_resout_act_cfg = {
180 .func = GPIOMUX_FUNC_GPIO,
181 .drv = GPIOMUX_DRV_6MA,
182 .pull = GPIOMUX_PULL_UP,
183};
184
185static struct gpiomux_setting cyts_sleep_sus_cfg = {
186 .func = GPIOMUX_FUNC_GPIO,
187 .drv = GPIOMUX_DRV_6MA,
188 .pull = GPIOMUX_PULL_DOWN,
189};
190
191static struct gpiomux_setting cyts_sleep_act_cfg = {
192 .func = GPIOMUX_FUNC_GPIO,
193 .drv = GPIOMUX_DRV_6MA,
194 .pull = GPIOMUX_PULL_DOWN,
195};
196
197static struct gpiomux_setting cyts_int_act_cfg = {
198 .func = GPIOMUX_FUNC_GPIO,
199 .drv = GPIOMUX_DRV_8MA,
200 .pull = GPIOMUX_PULL_UP,
201};
202
203static struct gpiomux_setting cyts_int_sus_cfg = {
204 .func = GPIOMUX_FUNC_GPIO,
205 .drv = GPIOMUX_DRV_2MA,
206 .pull = GPIOMUX_PULL_DOWN,
207};
208
209static struct msm_gpiomux_config cyts_gpio_configs[] __initdata = {
210 { /* TS INTERRUPT */
211 .gpio = 6,
212 .settings = {
213 [GPIOMUX_ACTIVE] = &cyts_int_act_cfg,
214 [GPIOMUX_SUSPENDED] = &cyts_int_sus_cfg,
215 },
216 },
217 { /* TS SLEEP */
218 .gpio = 33,
219 .settings = {
220 [GPIOMUX_ACTIVE] = &cyts_sleep_act_cfg,
221 [GPIOMUX_SUSPENDED] = &cyts_sleep_sus_cfg,
222 },
223 },
224 { /* TS RESOUT */
225 .gpio = 7,
226 .settings = {
227 [GPIOMUX_ACTIVE] = &cyts_resout_act_cfg,
228 [GPIOMUX_SUSPENDED] = &cyts_resout_sus_cfg,
229 },
230 },
231};
232
Hemant Kumara945b472012-01-25 15:08:06 -0800233static struct msm_gpiomux_config apq8064_hsic_configs[] = {
234 {
235 .gpio = 88, /*HSIC_STROBE */
236 .settings = {
237 [GPIOMUX_ACTIVE] = &hsic_act_cfg,
238 [GPIOMUX_SUSPENDED] = &hsic_sus_cfg,
239 },
240 },
241 {
242 .gpio = 89, /* HSIC_DATA */
243 .settings = {
244 [GPIOMUX_ACTIVE] = &hsic_act_cfg,
245 [GPIOMUX_SUSPENDED] = &hsic_sus_cfg,
246 },
247 },
248};
249#endif
250
Jing Lin21ed4de2012-02-05 15:53:28 -0800251static struct gpiomux_setting mxt_reset_sus_cfg = {
252 .func = GPIOMUX_FUNC_GPIO,
253 .drv = GPIOMUX_DRV_6MA,
254 .pull = GPIOMUX_PULL_DOWN,
255};
256
257static struct gpiomux_setting mxt_reset_act_cfg = {
258 .func = GPIOMUX_FUNC_GPIO,
259 .drv = GPIOMUX_DRV_6MA,
260 .pull = GPIOMUX_PULL_UP,
261};
262
263static struct gpiomux_setting mxt_int_sus_cfg = {
264 .func = GPIOMUX_FUNC_GPIO,
265 .drv = GPIOMUX_DRV_2MA,
266 .pull = GPIOMUX_PULL_DOWN,
267};
268
269static struct gpiomux_setting mxt_int_act_cfg = {
270 .func = GPIOMUX_FUNC_GPIO,
271 .drv = GPIOMUX_DRV_8MA,
272 .pull = GPIOMUX_PULL_UP,
273};
274
Aravind Venkateswaran0507c8c2012-02-16 17:16:05 -0800275static struct msm_gpiomux_config apq8064_hdmi_configs[] __initdata = {
276 {
277 .gpio = 69,
278 .settings = {
279 [GPIOMUX_ACTIVE] = &hdmi_active_1_cfg,
280 [GPIOMUX_SUSPENDED] = &hdmi_suspend_cfg,
281 },
282 },
283 {
284 .gpio = 70,
285 .settings = {
286 [GPIOMUX_ACTIVE] = &hdmi_active_1_cfg,
287 [GPIOMUX_SUSPENDED] = &hdmi_suspend_cfg,
288 },
289 },
290 {
291 .gpio = 71,
292 .settings = {
293 [GPIOMUX_ACTIVE] = &hdmi_active_1_cfg,
294 [GPIOMUX_SUSPENDED] = &hdmi_suspend_cfg,
295 },
296 },
297 {
298 .gpio = 72,
299 .settings = {
300 [GPIOMUX_ACTIVE] = &hdmi_active_2_cfg,
301 [GPIOMUX_SUSPENDED] = &hdmi_suspend_cfg,
302 },
303 },
304};
305
Stepan Moskovchenko2327a952011-12-14 16:31:28 -0800306static struct msm_gpiomux_config apq8064_gsbi_configs[] __initdata = {
Stepan Moskovchenko5ea3c312012-01-31 18:19:40 -0800307 {
Jing Lin04601f92012-02-05 15:36:07 -0800308 .gpio = 8, /* GSBI3 I2C QUP SDA */
309 .settings = {
310 [GPIOMUX_SUSPENDED] = &gsbi3_suspended_cfg,
311 [GPIOMUX_ACTIVE] = &gsbi3_active_cfg,
312 },
313 },
314 {
315 .gpio = 9, /* GSBI3 I2C QUP SCL */
316 .settings = {
317 [GPIOMUX_SUSPENDED] = &gsbi3_suspended_cfg,
318 [GPIOMUX_ACTIVE] = &gsbi3_active_cfg,
319 },
320 },
321 {
Stepan Moskovchenko5ea3c312012-01-31 18:19:40 -0800322 .gpio = 18, /* GSBI1 UART TX */
323 .settings = {
324 [GPIOMUX_SUSPENDED] = &gsbi1_uart_config,
325 },
326 },
327 {
328 .gpio = 19, /* GSBI1 UART RX */
329 .settings = {
330 [GPIOMUX_SUSPENDED] = &gsbi1_uart_config,
331 },
332 },
Stepan Moskovchenko2327a952011-12-14 16:31:28 -0800333#if defined(CONFIG_KS8851) || defined(CONFIG_KS8851_MODULE)
334 {
335 .gpio = 51, /* GSBI5 QUP SPI_DATA_MOSI */
336 .settings = {
337 [GPIOMUX_SUSPENDED] = &gpio_spi_config,
338 },
339 },
340 {
341 .gpio = 52, /* GSBI5 QUP SPI_DATA_MISO */
342 .settings = {
343 [GPIOMUX_SUSPENDED] = &gpio_spi_config,
344 },
345 },
346 {
Stepan Moskovchenkoc71c9792012-01-31 18:12:44 -0800347 .gpio = 53, /* Funny CS0 */
348 .settings = {
349 [GPIOMUX_SUSPENDED] = &gpio_spi_config,
350 },
351 },
352 {
Stepan Moskovchenko2327a952011-12-14 16:31:28 -0800353 .gpio = 31, /* GSBI5 QUP SPI_CS2_N */
354 .settings = {
355 [GPIOMUX_SUSPENDED] = &gpio_spi_cs2_config,
356 },
357 },
358 {
359 .gpio = 54, /* GSBI5 QUP SPI_CLK */
360 .settings = {
361 [GPIOMUX_SUSPENDED] = &gpio_spi_config,
362 },
363 },
364#endif
Stepan Moskovchenkoc71c9792012-01-31 18:12:44 -0800365 {
366 .gpio = 30, /* FP CS */
367 .settings = {
368 [GPIOMUX_SUSPENDED] = &gpio_spi_cs_config,
369 },
370 },
371 {
372 .gpio = 32, /* EPM CS */
373 .settings = {
374 [GPIOMUX_SUSPENDED] = &gpio_spi_cs_config,
375 },
376 },
377 {
378 .gpio = 53, /* NOR CS */
379 .settings = {
380 [GPIOMUX_SUSPENDED] = &gpio_spi_cs_config,
381 },
382 },
Jin Hong4bbbfba2012-02-02 21:48:07 -0800383 {
384 .gpio = 82, /* GSBI7 UART2 TX */
385 .settings = {
386 [GPIOMUX_SUSPENDED] = &gsbi7_func2_cfg,
387 },
388 },
389 {
390 .gpio = 83, /* GSBI7 UART2 RX */
391 .settings = {
392 [GPIOMUX_SUSPENDED] = &gsbi7_func1_cfg,
393 },
394 },
David Keitel3c40fc52012-02-09 17:53:52 -0800395 {
396 .gpio = 21, /* GSBI1 QUP I2C_CLK */
397 .settings = {
398 [GPIOMUX_SUSPENDED] = &gpio_i2c_config_sus,
399 [GPIOMUX_ACTIVE] = &gpio_i2c_config,
400 },
401 },
402 {
403 .gpio = 20, /* GSBI1 QUP I2C_DATA */
404 .settings = {
405 [GPIOMUX_SUSPENDED] = &gpio_i2c_config_sus,
406 [GPIOMUX_ACTIVE] = &gpio_i2c_config,
407 },
408 },
Stepan Moskovchenko2327a952011-12-14 16:31:28 -0800409};
410
Swaminathan Sathappancef966d2011-12-15 17:27:04 -0800411static struct msm_gpiomux_config apq8064_slimbus_config[] __initdata = {
412 {
413 .gpio = 40, /* slimbus clk */
414 .settings = {
415 [GPIOMUX_SUSPENDED] = &slimbus,
416 },
417 },
418 {
419 .gpio = 41, /* slimbus data */
420 .settings = {
421 [GPIOMUX_SUSPENDED] = &slimbus,
422 },
423 },
424};
425
426static struct msm_gpiomux_config apq8064_audio_codec_configs[] __initdata = {
427 {
428 .gpio = 39,
429 .settings = {
430 [GPIOMUX_SUSPENDED] = &cdc_mclk,
431 },
432 },
433};
434
David Collinsf0d00732012-01-25 15:46:50 -0800435/* External 3.3 V regulator enable */
436static struct msm_gpiomux_config apq8064_ext_regulator_configs[] __initdata = {
437 {
438 .gpio = APQ8064_EXT_3P3V_REG_EN_GPIO,
439 .settings = {
440 [GPIOMUX_SUSPENDED] = &ext_regulator_config,
441 },
442 },
443};
444
Joel Kingdacbc822012-01-25 13:30:57 -0800445static struct gpiomux_setting ap2mdm_cfg = {
446 .func = GPIOMUX_FUNC_GPIO,
447 .drv = GPIOMUX_DRV_8MA,
448 .pull = GPIOMUX_PULL_DOWN,
449};
450
451static struct gpiomux_setting mdm2ap_status_cfg = {
452 .func = GPIOMUX_FUNC_GPIO,
453 .drv = GPIOMUX_DRV_8MA,
454 .pull = GPIOMUX_PULL_NONE,
455};
456
457static struct gpiomux_setting mdm2ap_errfatal_cfg = {
458 .func = GPIOMUX_FUNC_GPIO,
459 .drv = GPIOMUX_DRV_16MA,
460 .pull = GPIOMUX_PULL_DOWN,
461};
462
463static struct gpiomux_setting ap2mdm_pon_reset_n_cfg = {
464 .func = GPIOMUX_FUNC_GPIO,
465 .drv = GPIOMUX_DRV_8MA,
466 .pull = GPIOMUX_PULL_DOWN,
467};
468
469static struct msm_gpiomux_config mdm_configs[] __initdata = {
470 /* AP2MDM_STATUS */
471 {
472 .gpio = 48,
473 .settings = {
474 [GPIOMUX_SUSPENDED] = &ap2mdm_cfg,
475 }
476 },
477 /* MDM2AP_STATUS */
478 {
479 .gpio = 49,
480 .settings = {
481 [GPIOMUX_SUSPENDED] = &mdm2ap_status_cfg,
482 }
483 },
484 /* MDM2AP_ERRFATAL */
485 {
486 .gpio = 19,
487 .settings = {
488 [GPIOMUX_SUSPENDED] = &mdm2ap_errfatal_cfg,
489 }
490 },
491 /* AP2MDM_ERRFATAL */
492 {
493 .gpio = 18,
494 .settings = {
495 [GPIOMUX_SUSPENDED] = &ap2mdm_cfg,
496 }
497 },
498 /* AP2MDM_PON_RESET_N */
499 {
500 .gpio = 27,
501 .settings = {
502 [GPIOMUX_SUSPENDED] = &ap2mdm_pon_reset_n_cfg,
503 }
Mohan Pallaka474b94b2012-01-25 12:59:58 +0530504 },
505};
506
Jing Lin21ed4de2012-02-05 15:53:28 -0800507static struct msm_gpiomux_config apq8064_mxt_configs[] __initdata = {
508 { /* TS INTERRUPT */
509 .gpio = 6,
510 .settings = {
511 [GPIOMUX_ACTIVE] = &mxt_int_act_cfg,
512 [GPIOMUX_SUSPENDED] = &mxt_int_sus_cfg,
513 },
514 },
515 { /* TS RESET */
516 .gpio = 33,
517 .settings = {
518 [GPIOMUX_ACTIVE] = &mxt_reset_act_cfg,
519 [GPIOMUX_SUSPENDED] = &mxt_reset_sus_cfg,
520 },
521 },
522};
523
Ankit Verma6b7e2ba2012-01-26 15:48:54 -0800524static struct msm_gpiomux_config wcnss_5wire_interface[] = {
525 {
526 .gpio = 64,
527 .settings = {
528 [GPIOMUX_ACTIVE] = &wcnss_5wire_active_cfg,
529 [GPIOMUX_SUSPENDED] = &wcnss_5wire_suspend_cfg,
530 },
531 },
532 {
533 .gpio = 65,
534 .settings = {
535 [GPIOMUX_ACTIVE] = &wcnss_5wire_active_cfg,
536 [GPIOMUX_SUSPENDED] = &wcnss_5wire_suspend_cfg,
537 },
538 },
539 {
540 .gpio = 66,
541 .settings = {
542 [GPIOMUX_ACTIVE] = &wcnss_5wire_active_cfg,
543 [GPIOMUX_SUSPENDED] = &wcnss_5wire_suspend_cfg,
544 },
545 },
546 {
547 .gpio = 67,
548 .settings = {
549 [GPIOMUX_ACTIVE] = &wcnss_5wire_active_cfg,
550 [GPIOMUX_SUSPENDED] = &wcnss_5wire_suspend_cfg,
551 },
552 },
553 {
554 .gpio = 68,
555 .settings = {
556 [GPIOMUX_ACTIVE] = &wcnss_5wire_active_cfg,
557 [GPIOMUX_SUSPENDED] = &wcnss_5wire_suspend_cfg,
558 },
559 },
560};
561
Stepan Moskovchenko2327a952011-12-14 16:31:28 -0800562void __init apq8064_init_gpiomux(void)
563{
564 int rc;
565
566 rc = msm_gpiomux_init(NR_GPIO_IRQS);
567 if (rc) {
568 pr_err(KERN_ERR "msm_gpiomux_init failed %d\n", rc);
569 return;
570 }
571
572#if defined(CONFIG_KS8851) || defined(CONFIG_KS8851_MODULE)
573 msm_gpiomux_install(apq8064_ethernet_configs,
574 ARRAY_SIZE(apq8064_ethernet_configs));
575#endif
576
Ankit Verma6b7e2ba2012-01-26 15:48:54 -0800577 msm_gpiomux_install(wcnss_5wire_interface,
578 ARRAY_SIZE(wcnss_5wire_interface));
579
Stepan Moskovchenko2327a952011-12-14 16:31:28 -0800580 msm_gpiomux_install(apq8064_gsbi_configs,
581 ARRAY_SIZE(apq8064_gsbi_configs));
582
Swaminathan Sathappancef966d2011-12-15 17:27:04 -0800583 msm_gpiomux_install(apq8064_slimbus_config,
584 ARRAY_SIZE(apq8064_slimbus_config));
585
586 msm_gpiomux_install(apq8064_audio_codec_configs,
587 ARRAY_SIZE(apq8064_audio_codec_configs));
588
Swaminathan Sathappan9e07aa92012-02-29 12:07:27 -0800589 pr_debug("%s(): audio-auxpcm: Include GPIO configs"
590 " as audio is not the primary user"
591 " for these GPIO Pins\n", __func__);
David Collinsf0d00732012-01-25 15:46:50 -0800592
593 msm_gpiomux_install(apq8064_ext_regulator_configs,
594 ARRAY_SIZE(apq8064_ext_regulator_configs));
Joel Kingdacbc822012-01-25 13:30:57 -0800595
596 if (machine_is_apq8064_mtp())
597 msm_gpiomux_install(mdm_configs,
598 ARRAY_SIZE(mdm_configs));
Hemant Kumara945b472012-01-25 15:08:06 -0800599
Anirudh Ghayal2917a5a2012-02-05 19:51:07 -0800600 if (machine_is_apq8064_mtp())
601 msm_gpiomux_install(cyts_gpio_configs,
602 ARRAY_SIZE(cyts_gpio_configs));
603
Hemant Kumara945b472012-01-25 15:08:06 -0800604#ifdef CONFIG_USB_EHCI_MSM_HSIC
Hemant Kumarf1ca9192012-02-07 18:59:33 -0800605 if (machine_is_apq8064_mtp())
606 msm_gpiomux_install(apq8064_hsic_configs,
607 ARRAY_SIZE(apq8064_hsic_configs));
Hemant Kumara945b472012-01-25 15:08:06 -0800608#endif
Jing Lin21ed4de2012-02-05 15:53:28 -0800609
610 if (machine_is_apq8064_cdp() || machine_is_apq8064_liquid())
611 msm_gpiomux_install(apq8064_mxt_configs,
612 ARRAY_SIZE(apq8064_mxt_configs));
Aravind Venkateswaran0507c8c2012-02-16 17:16:05 -0800613
614 msm_gpiomux_install(apq8064_hdmi_configs,
615 ARRAY_SIZE(apq8064_hdmi_configs));
Stepan Moskovchenko2327a952011-12-14 16:31:28 -0800616}