blob: 2f9406982fe7fb797708a1979633eb5e08739b76 [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
Siddartha Mohanadossb9df4942012-02-08 09:58:21 -080056/* Chip selects for EPM SPI clients */
57static struct gpiomux_setting gpio_epm_spi_cs_config = {
58 .func = GPIOMUX_FUNC_3,
59 .drv = GPIOMUX_DRV_12MA,
60 .pull = GPIOMUX_PULL_UP,
61};
62
Stepan Moskovchenko2327a952011-12-14 16:31:28 -080063struct msm_gpiomux_config apq8064_ethernet_configs[] = {
64 {
65 .gpio = 43,
66 .settings = {
67 [GPIOMUX_SUSPENDED] = &gpio_eth_config,
68 [GPIOMUX_ACTIVE] = &gpio_eth_config,
69 }
70 },
71};
72#endif
73
David Keitel3c40fc52012-02-09 17:53:52 -080074static struct gpiomux_setting gpio_i2c_config = {
75 .func = GPIOMUX_FUNC_1,
76 .drv = GPIOMUX_DRV_8MA,
77 .pull = GPIOMUX_PULL_NONE,
78};
79
80static struct gpiomux_setting gpio_i2c_config_sus = {
81 .func = GPIOMUX_FUNC_1,
82 .drv = GPIOMUX_DRV_2MA,
83 .pull = GPIOMUX_PULL_KEEPER,
84};
85
Swaminathan Sathappancef966d2011-12-15 17:27:04 -080086static struct gpiomux_setting cdc_mclk = {
87 .func = GPIOMUX_FUNC_1,
88 .drv = GPIOMUX_DRV_8MA,
89 .pull = GPIOMUX_PULL_NONE,
90};
91
Ankit Verma6b7e2ba2012-01-26 15:48:54 -080092static struct gpiomux_setting wcnss_5wire_suspend_cfg = {
93 .func = GPIOMUX_FUNC_GPIO,
94 .drv = GPIOMUX_DRV_2MA,
95 .pull = GPIOMUX_PULL_UP,
96};
97
98static struct gpiomux_setting wcnss_5wire_active_cfg = {
99 .func = GPIOMUX_FUNC_1,
100 .drv = GPIOMUX_DRV_6MA,
101 .pull = GPIOMUX_PULL_DOWN,
102};
103
104
Swaminathan Sathappancef966d2011-12-15 17:27:04 -0800105static struct gpiomux_setting slimbus = {
106 .func = GPIOMUX_FUNC_1,
107 .drv = GPIOMUX_DRV_8MA,
108 .pull = GPIOMUX_PULL_KEEPER,
109};
110
Stepan Moskovchenko5ea3c312012-01-31 18:19:40 -0800111static struct gpiomux_setting gsbi1_uart_config = {
112 .func = GPIOMUX_FUNC_1,
113 .drv = GPIOMUX_DRV_16MA,
114 .pull = GPIOMUX_PULL_NONE,
115};
116
David Collinsf0d00732012-01-25 15:46:50 -0800117static struct gpiomux_setting ext_regulator_config = {
118 .func = GPIOMUX_FUNC_GPIO,
119 .drv = GPIOMUX_DRV_8MA,
120 .pull = GPIOMUX_PULL_NONE,
121 .dir = GPIOMUX_OUT_LOW,
122};
123
Jin Hong4bbbfba2012-02-02 21:48:07 -0800124static struct gpiomux_setting gsbi7_func1_cfg = {
125 .func = GPIOMUX_FUNC_1,
126 .drv = GPIOMUX_DRV_8MA,
127 .pull = GPIOMUX_PULL_NONE,
128};
129
130static struct gpiomux_setting gsbi7_func2_cfg = {
131 .func = GPIOMUX_FUNC_2,
132 .drv = GPIOMUX_DRV_8MA,
133 .pull = GPIOMUX_PULL_NONE,
134};
135
Jing Lin04601f92012-02-05 15:36:07 -0800136static struct gpiomux_setting gsbi3_suspended_cfg = {
137 .func = GPIOMUX_FUNC_1,
138 .drv = GPIOMUX_DRV_2MA,
139 .pull = GPIOMUX_PULL_KEEPER,
140};
141
142static struct gpiomux_setting gsbi3_active_cfg = {
143 .func = GPIOMUX_FUNC_1,
144 .drv = GPIOMUX_DRV_8MA,
145 .pull = GPIOMUX_PULL_NONE,
146};
147
Aravind Venkateswaran0507c8c2012-02-16 17:16:05 -0800148static struct gpiomux_setting hdmi_suspend_cfg = {
149 .func = GPIOMUX_FUNC_GPIO,
150 .drv = GPIOMUX_DRV_2MA,
151 .pull = GPIOMUX_PULL_DOWN,
152};
153
154static struct gpiomux_setting hdmi_active_1_cfg = {
155 .func = GPIOMUX_FUNC_1,
156 .drv = GPIOMUX_DRV_2MA,
157 .pull = GPIOMUX_PULL_UP,
158};
159
160static struct gpiomux_setting hdmi_active_2_cfg = {
161 .func = GPIOMUX_FUNC_1,
162 .drv = GPIOMUX_DRV_16MA,
163 .pull = GPIOMUX_PULL_DOWN,
164};
165
Hemant Kumara945b472012-01-25 15:08:06 -0800166#ifdef CONFIG_USB_EHCI_MSM_HSIC
167static struct gpiomux_setting hsic_act_cfg = {
168 .func = GPIOMUX_FUNC_1,
169 .drv = GPIOMUX_DRV_8MA,
170 .pull = GPIOMUX_PULL_NONE,
171};
172
173static struct gpiomux_setting hsic_sus_cfg = {
174 .func = GPIOMUX_FUNC_GPIO,
175 .drv = GPIOMUX_DRV_2MA,
176 .pull = GPIOMUX_PULL_DOWN,
177 .dir = GPIOMUX_OUT_LOW,
178};
179
Anirudh Ghayal2917a5a2012-02-05 19:51:07 -0800180static struct gpiomux_setting cyts_resout_sus_cfg = {
181 .func = GPIOMUX_FUNC_GPIO,
182 .drv = GPIOMUX_DRV_6MA,
183 .pull = GPIOMUX_PULL_UP,
184};
185
186static struct gpiomux_setting cyts_resout_act_cfg = {
187 .func = GPIOMUX_FUNC_GPIO,
188 .drv = GPIOMUX_DRV_6MA,
189 .pull = GPIOMUX_PULL_UP,
190};
191
192static struct gpiomux_setting cyts_sleep_sus_cfg = {
193 .func = GPIOMUX_FUNC_GPIO,
194 .drv = GPIOMUX_DRV_6MA,
195 .pull = GPIOMUX_PULL_DOWN,
196};
197
198static struct gpiomux_setting cyts_sleep_act_cfg = {
199 .func = GPIOMUX_FUNC_GPIO,
200 .drv = GPIOMUX_DRV_6MA,
201 .pull = GPIOMUX_PULL_DOWN,
202};
203
204static struct gpiomux_setting cyts_int_act_cfg = {
205 .func = GPIOMUX_FUNC_GPIO,
206 .drv = GPIOMUX_DRV_8MA,
207 .pull = GPIOMUX_PULL_UP,
208};
209
210static struct gpiomux_setting cyts_int_sus_cfg = {
211 .func = GPIOMUX_FUNC_GPIO,
212 .drv = GPIOMUX_DRV_2MA,
213 .pull = GPIOMUX_PULL_DOWN,
214};
215
216static struct msm_gpiomux_config cyts_gpio_configs[] __initdata = {
217 { /* TS INTERRUPT */
218 .gpio = 6,
219 .settings = {
220 [GPIOMUX_ACTIVE] = &cyts_int_act_cfg,
221 [GPIOMUX_SUSPENDED] = &cyts_int_sus_cfg,
222 },
223 },
224 { /* TS SLEEP */
225 .gpio = 33,
226 .settings = {
227 [GPIOMUX_ACTIVE] = &cyts_sleep_act_cfg,
228 [GPIOMUX_SUSPENDED] = &cyts_sleep_sus_cfg,
229 },
230 },
231 { /* TS RESOUT */
232 .gpio = 7,
233 .settings = {
234 [GPIOMUX_ACTIVE] = &cyts_resout_act_cfg,
235 [GPIOMUX_SUSPENDED] = &cyts_resout_sus_cfg,
236 },
237 },
238};
239
Hemant Kumara945b472012-01-25 15:08:06 -0800240static struct msm_gpiomux_config apq8064_hsic_configs[] = {
241 {
242 .gpio = 88, /*HSIC_STROBE */
243 .settings = {
244 [GPIOMUX_ACTIVE] = &hsic_act_cfg,
245 [GPIOMUX_SUSPENDED] = &hsic_sus_cfg,
246 },
247 },
248 {
249 .gpio = 89, /* HSIC_DATA */
250 .settings = {
251 [GPIOMUX_ACTIVE] = &hsic_act_cfg,
252 [GPIOMUX_SUSPENDED] = &hsic_sus_cfg,
253 },
254 },
255};
256#endif
257
Jing Lin21ed4de2012-02-05 15:53:28 -0800258static struct gpiomux_setting mxt_reset_sus_cfg = {
259 .func = GPIOMUX_FUNC_GPIO,
260 .drv = GPIOMUX_DRV_6MA,
261 .pull = GPIOMUX_PULL_DOWN,
262};
263
264static struct gpiomux_setting mxt_reset_act_cfg = {
265 .func = GPIOMUX_FUNC_GPIO,
266 .drv = GPIOMUX_DRV_6MA,
267 .pull = GPIOMUX_PULL_UP,
268};
269
270static struct gpiomux_setting mxt_int_sus_cfg = {
271 .func = GPIOMUX_FUNC_GPIO,
272 .drv = GPIOMUX_DRV_2MA,
273 .pull = GPIOMUX_PULL_DOWN,
274};
275
276static struct gpiomux_setting mxt_int_act_cfg = {
277 .func = GPIOMUX_FUNC_GPIO,
278 .drv = GPIOMUX_DRV_8MA,
279 .pull = GPIOMUX_PULL_UP,
280};
281
Aravind Venkateswaran0507c8c2012-02-16 17:16:05 -0800282static struct msm_gpiomux_config apq8064_hdmi_configs[] __initdata = {
283 {
284 .gpio = 69,
285 .settings = {
286 [GPIOMUX_ACTIVE] = &hdmi_active_1_cfg,
287 [GPIOMUX_SUSPENDED] = &hdmi_suspend_cfg,
288 },
289 },
290 {
291 .gpio = 70,
292 .settings = {
293 [GPIOMUX_ACTIVE] = &hdmi_active_1_cfg,
294 [GPIOMUX_SUSPENDED] = &hdmi_suspend_cfg,
295 },
296 },
297 {
298 .gpio = 71,
299 .settings = {
300 [GPIOMUX_ACTIVE] = &hdmi_active_1_cfg,
301 [GPIOMUX_SUSPENDED] = &hdmi_suspend_cfg,
302 },
303 },
304 {
305 .gpio = 72,
306 .settings = {
307 [GPIOMUX_ACTIVE] = &hdmi_active_2_cfg,
308 [GPIOMUX_SUSPENDED] = &hdmi_suspend_cfg,
309 },
310 },
311};
312
Stepan Moskovchenko2327a952011-12-14 16:31:28 -0800313static struct msm_gpiomux_config apq8064_gsbi_configs[] __initdata = {
Stepan Moskovchenko5ea3c312012-01-31 18:19:40 -0800314 {
Jing Lin04601f92012-02-05 15:36:07 -0800315 .gpio = 8, /* GSBI3 I2C QUP SDA */
316 .settings = {
317 [GPIOMUX_SUSPENDED] = &gsbi3_suspended_cfg,
318 [GPIOMUX_ACTIVE] = &gsbi3_active_cfg,
319 },
320 },
321 {
322 .gpio = 9, /* GSBI3 I2C QUP SCL */
323 .settings = {
324 [GPIOMUX_SUSPENDED] = &gsbi3_suspended_cfg,
325 [GPIOMUX_ACTIVE] = &gsbi3_active_cfg,
326 },
327 },
328 {
Stepan Moskovchenko5ea3c312012-01-31 18:19:40 -0800329 .gpio = 18, /* GSBI1 UART TX */
330 .settings = {
331 [GPIOMUX_SUSPENDED] = &gsbi1_uart_config,
332 },
333 },
334 {
335 .gpio = 19, /* GSBI1 UART RX */
336 .settings = {
337 [GPIOMUX_SUSPENDED] = &gsbi1_uart_config,
338 },
339 },
Stepan Moskovchenko2327a952011-12-14 16:31:28 -0800340#if defined(CONFIG_KS8851) || defined(CONFIG_KS8851_MODULE)
341 {
342 .gpio = 51, /* GSBI5 QUP SPI_DATA_MOSI */
343 .settings = {
344 [GPIOMUX_SUSPENDED] = &gpio_spi_config,
345 },
346 },
347 {
348 .gpio = 52, /* GSBI5 QUP SPI_DATA_MISO */
349 .settings = {
350 [GPIOMUX_SUSPENDED] = &gpio_spi_config,
351 },
352 },
353 {
Stepan Moskovchenkoc71c9792012-01-31 18:12:44 -0800354 .gpio = 53, /* Funny CS0 */
355 .settings = {
356 [GPIOMUX_SUSPENDED] = &gpio_spi_config,
357 },
358 },
359 {
Stepan Moskovchenko2327a952011-12-14 16:31:28 -0800360 .gpio = 31, /* GSBI5 QUP SPI_CS2_N */
361 .settings = {
362 [GPIOMUX_SUSPENDED] = &gpio_spi_cs2_config,
363 },
364 },
365 {
366 .gpio = 54, /* GSBI5 QUP SPI_CLK */
367 .settings = {
368 [GPIOMUX_SUSPENDED] = &gpio_spi_config,
369 },
370 },
371#endif
Stepan Moskovchenkoc71c9792012-01-31 18:12:44 -0800372 {
373 .gpio = 30, /* FP CS */
374 .settings = {
375 [GPIOMUX_SUSPENDED] = &gpio_spi_cs_config,
376 },
377 },
378 {
379 .gpio = 32, /* EPM CS */
380 .settings = {
Siddartha Mohanadossb9df4942012-02-08 09:58:21 -0800381 [GPIOMUX_SUSPENDED] = &gpio_epm_spi_cs_config,
Stepan Moskovchenkoc71c9792012-01-31 18:12:44 -0800382 },
383 },
384 {
385 .gpio = 53, /* NOR CS */
386 .settings = {
387 [GPIOMUX_SUSPENDED] = &gpio_spi_cs_config,
388 },
389 },
Jin Hong4bbbfba2012-02-02 21:48:07 -0800390 {
391 .gpio = 82, /* GSBI7 UART2 TX */
392 .settings = {
393 [GPIOMUX_SUSPENDED] = &gsbi7_func2_cfg,
394 },
395 },
396 {
397 .gpio = 83, /* GSBI7 UART2 RX */
398 .settings = {
399 [GPIOMUX_SUSPENDED] = &gsbi7_func1_cfg,
400 },
401 },
David Keitel3c40fc52012-02-09 17:53:52 -0800402 {
403 .gpio = 21, /* GSBI1 QUP I2C_CLK */
404 .settings = {
405 [GPIOMUX_SUSPENDED] = &gpio_i2c_config_sus,
406 [GPIOMUX_ACTIVE] = &gpio_i2c_config,
407 },
408 },
409 {
410 .gpio = 20, /* GSBI1 QUP I2C_DATA */
411 .settings = {
412 [GPIOMUX_SUSPENDED] = &gpio_i2c_config_sus,
413 [GPIOMUX_ACTIVE] = &gpio_i2c_config,
414 },
415 },
Stepan Moskovchenko2327a952011-12-14 16:31:28 -0800416};
417
Swaminathan Sathappancef966d2011-12-15 17:27:04 -0800418static struct msm_gpiomux_config apq8064_slimbus_config[] __initdata = {
419 {
420 .gpio = 40, /* slimbus clk */
421 .settings = {
422 [GPIOMUX_SUSPENDED] = &slimbus,
423 },
424 },
425 {
426 .gpio = 41, /* slimbus data */
427 .settings = {
428 [GPIOMUX_SUSPENDED] = &slimbus,
429 },
430 },
431};
432
433static struct msm_gpiomux_config apq8064_audio_codec_configs[] __initdata = {
434 {
435 .gpio = 39,
436 .settings = {
437 [GPIOMUX_SUSPENDED] = &cdc_mclk,
438 },
439 },
440};
441
David Collinsf0d00732012-01-25 15:46:50 -0800442/* External 3.3 V regulator enable */
443static struct msm_gpiomux_config apq8064_ext_regulator_configs[] __initdata = {
444 {
445 .gpio = APQ8064_EXT_3P3V_REG_EN_GPIO,
446 .settings = {
447 [GPIOMUX_SUSPENDED] = &ext_regulator_config,
448 },
449 },
450};
451
Joel Kingdacbc822012-01-25 13:30:57 -0800452static struct gpiomux_setting ap2mdm_cfg = {
453 .func = GPIOMUX_FUNC_GPIO,
454 .drv = GPIOMUX_DRV_8MA,
455 .pull = GPIOMUX_PULL_DOWN,
456};
457
458static struct gpiomux_setting mdm2ap_status_cfg = {
459 .func = GPIOMUX_FUNC_GPIO,
460 .drv = GPIOMUX_DRV_8MA,
461 .pull = GPIOMUX_PULL_NONE,
462};
463
464static struct gpiomux_setting mdm2ap_errfatal_cfg = {
465 .func = GPIOMUX_FUNC_GPIO,
466 .drv = GPIOMUX_DRV_16MA,
467 .pull = GPIOMUX_PULL_DOWN,
468};
469
470static struct gpiomux_setting ap2mdm_pon_reset_n_cfg = {
471 .func = GPIOMUX_FUNC_GPIO,
472 .drv = GPIOMUX_DRV_8MA,
473 .pull = GPIOMUX_PULL_DOWN,
474};
475
476static struct msm_gpiomux_config mdm_configs[] __initdata = {
477 /* AP2MDM_STATUS */
478 {
479 .gpio = 48,
480 .settings = {
481 [GPIOMUX_SUSPENDED] = &ap2mdm_cfg,
482 }
483 },
484 /* MDM2AP_STATUS */
485 {
486 .gpio = 49,
487 .settings = {
488 [GPIOMUX_SUSPENDED] = &mdm2ap_status_cfg,
489 }
490 },
491 /* MDM2AP_ERRFATAL */
492 {
493 .gpio = 19,
494 .settings = {
495 [GPIOMUX_SUSPENDED] = &mdm2ap_errfatal_cfg,
496 }
497 },
498 /* AP2MDM_ERRFATAL */
499 {
500 .gpio = 18,
501 .settings = {
502 [GPIOMUX_SUSPENDED] = &ap2mdm_cfg,
503 }
504 },
505 /* AP2MDM_PON_RESET_N */
506 {
507 .gpio = 27,
508 .settings = {
509 [GPIOMUX_SUSPENDED] = &ap2mdm_pon_reset_n_cfg,
510 }
Mohan Pallaka474b94b2012-01-25 12:59:58 +0530511 },
512};
513
Jing Lin21ed4de2012-02-05 15:53:28 -0800514static struct msm_gpiomux_config apq8064_mxt_configs[] __initdata = {
515 { /* TS INTERRUPT */
516 .gpio = 6,
517 .settings = {
518 [GPIOMUX_ACTIVE] = &mxt_int_act_cfg,
519 [GPIOMUX_SUSPENDED] = &mxt_int_sus_cfg,
520 },
521 },
522 { /* TS RESET */
523 .gpio = 33,
524 .settings = {
525 [GPIOMUX_ACTIVE] = &mxt_reset_act_cfg,
526 [GPIOMUX_SUSPENDED] = &mxt_reset_sus_cfg,
527 },
528 },
529};
530
Ankit Verma6b7e2ba2012-01-26 15:48:54 -0800531static struct msm_gpiomux_config wcnss_5wire_interface[] = {
532 {
533 .gpio = 64,
534 .settings = {
535 [GPIOMUX_ACTIVE] = &wcnss_5wire_active_cfg,
536 [GPIOMUX_SUSPENDED] = &wcnss_5wire_suspend_cfg,
537 },
538 },
539 {
540 .gpio = 65,
541 .settings = {
542 [GPIOMUX_ACTIVE] = &wcnss_5wire_active_cfg,
543 [GPIOMUX_SUSPENDED] = &wcnss_5wire_suspend_cfg,
544 },
545 },
546 {
547 .gpio = 66,
548 .settings = {
549 [GPIOMUX_ACTIVE] = &wcnss_5wire_active_cfg,
550 [GPIOMUX_SUSPENDED] = &wcnss_5wire_suspend_cfg,
551 },
552 },
553 {
554 .gpio = 67,
555 .settings = {
556 [GPIOMUX_ACTIVE] = &wcnss_5wire_active_cfg,
557 [GPIOMUX_SUSPENDED] = &wcnss_5wire_suspend_cfg,
558 },
559 },
560 {
561 .gpio = 68,
562 .settings = {
563 [GPIOMUX_ACTIVE] = &wcnss_5wire_active_cfg,
564 [GPIOMUX_SUSPENDED] = &wcnss_5wire_suspend_cfg,
565 },
566 },
567};
568
Stepan Moskovchenko2327a952011-12-14 16:31:28 -0800569void __init apq8064_init_gpiomux(void)
570{
571 int rc;
572
573 rc = msm_gpiomux_init(NR_GPIO_IRQS);
574 if (rc) {
575 pr_err(KERN_ERR "msm_gpiomux_init failed %d\n", rc);
576 return;
577 }
578
579#if defined(CONFIG_KS8851) || defined(CONFIG_KS8851_MODULE)
580 msm_gpiomux_install(apq8064_ethernet_configs,
581 ARRAY_SIZE(apq8064_ethernet_configs));
582#endif
583
Ankit Verma6b7e2ba2012-01-26 15:48:54 -0800584 msm_gpiomux_install(wcnss_5wire_interface,
585 ARRAY_SIZE(wcnss_5wire_interface));
586
Stepan Moskovchenko2327a952011-12-14 16:31:28 -0800587 msm_gpiomux_install(apq8064_gsbi_configs,
588 ARRAY_SIZE(apq8064_gsbi_configs));
589
Swaminathan Sathappancef966d2011-12-15 17:27:04 -0800590 msm_gpiomux_install(apq8064_slimbus_config,
591 ARRAY_SIZE(apq8064_slimbus_config));
592
593 msm_gpiomux_install(apq8064_audio_codec_configs,
594 ARRAY_SIZE(apq8064_audio_codec_configs));
595
Swaminathan Sathappan9e07aa92012-02-29 12:07:27 -0800596 pr_debug("%s(): audio-auxpcm: Include GPIO configs"
597 " as audio is not the primary user"
598 " for these GPIO Pins\n", __func__);
David Collinsf0d00732012-01-25 15:46:50 -0800599
600 msm_gpiomux_install(apq8064_ext_regulator_configs,
601 ARRAY_SIZE(apq8064_ext_regulator_configs));
Joel Kingdacbc822012-01-25 13:30:57 -0800602
603 if (machine_is_apq8064_mtp())
604 msm_gpiomux_install(mdm_configs,
605 ARRAY_SIZE(mdm_configs));
Hemant Kumara945b472012-01-25 15:08:06 -0800606
Anirudh Ghayal2917a5a2012-02-05 19:51:07 -0800607 if (machine_is_apq8064_mtp())
608 msm_gpiomux_install(cyts_gpio_configs,
609 ARRAY_SIZE(cyts_gpio_configs));
610
Hemant Kumara945b472012-01-25 15:08:06 -0800611#ifdef CONFIG_USB_EHCI_MSM_HSIC
Hemant Kumarf1ca9192012-02-07 18:59:33 -0800612 if (machine_is_apq8064_mtp())
613 msm_gpiomux_install(apq8064_hsic_configs,
614 ARRAY_SIZE(apq8064_hsic_configs));
Hemant Kumara945b472012-01-25 15:08:06 -0800615#endif
Jing Lin21ed4de2012-02-05 15:53:28 -0800616
617 if (machine_is_apq8064_cdp() || machine_is_apq8064_liquid())
618 msm_gpiomux_install(apq8064_mxt_configs,
619 ARRAY_SIZE(apq8064_mxt_configs));
Aravind Venkateswaran0507c8c2012-02-16 17:16:05 -0800620
621 msm_gpiomux_install(apq8064_hdmi_configs,
622 ARRAY_SIZE(apq8064_hdmi_configs));
Stepan Moskovchenko2327a952011-12-14 16:31:28 -0800623}