blob: b35be553d6653d4f28d8bb1e0acdf474f597145c [file] [log] [blame]
Shantanu Jain55d277a2013-03-08 11:37:29 +05301/* Copyright (c) 2011-2013, The Linux Foundation. All rights reserved.
Stepan Moskovchenko3b09bf52011-12-06 20:40:53 -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
Steve Mucklef132c6c2012-06-06 18:30:57 -070014#include <linux/gpio.h>
Stepan Moskovchenko3b09bf52011-12-06 20:40:53 -080015#include <asm/mach-types.h>
Stepan Moskovchenko3b09bf52011-12-06 20:40:53 -080016#include <mach/gpiomux.h>
17#include <mach/socinfo.h>
18#include "devices.h"
Stepan Moskovchenko5a83dba2011-12-05 17:30:17 -080019#include "board-8930.h"
Stepan Moskovchenko3b09bf52011-12-06 20:40:53 -080020
Saket Saurabhc6cdc292013-02-13 10:54:53 +053021/* GSBI10 UART configurations */
22static struct gpiomux_setting gsbi10_uart_cfg = {
23 .func = GPIOMUX_FUNC_2,
24 .drv = GPIOMUX_DRV_8MA,
25 .pull = GPIOMUX_PULL_NONE,
26};
27
28static struct msm_gpiomux_config msm8930_gsbi10_uart_configs[] __initdata = {
29 {
30 .gpio = 71, /* GSBI10 UART TX */
31 .settings = {
32 [GPIOMUX_SUSPENDED] = &gsbi10_uart_cfg,
33 },
34 },
35 {
36 .gpio = 72, /* GSBI10 UART RX */
37 .settings = {
38 [GPIOMUX_SUSPENDED] = &gsbi10_uart_cfg,
39 },
40 },
41};
42
Stepan Moskovchenko3b09bf52011-12-06 20:40:53 -080043/* The SPI configurations apply to GSBI 1*/
44static struct gpiomux_setting spi_active = {
45 .func = GPIOMUX_FUNC_1,
46 .drv = GPIOMUX_DRV_12MA,
47 .pull = GPIOMUX_PULL_NONE,
48};
49
50static struct gpiomux_setting spi_suspended_config = {
51 .func = GPIOMUX_FUNC_GPIO,
52 .drv = GPIOMUX_DRV_2MA,
53 .pull = GPIOMUX_PULL_DOWN,
54};
55
Stepan Moskovchenko3b09bf52011-12-06 20:40:53 -080056static struct gpiomux_setting gsbi3_suspended_cfg = {
57 .func = GPIOMUX_FUNC_1,
58 .drv = GPIOMUX_DRV_2MA,
59 .pull = GPIOMUX_PULL_KEEPER,
60};
61
62static struct gpiomux_setting gsbi3_active_cfg = {
63 .func = GPIOMUX_FUNC_1,
64 .drv = GPIOMUX_DRV_8MA,
65 .pull = GPIOMUX_PULL_NONE,
66};
67
Taniya Das75596f92013-03-06 11:47:34 +053068static struct gpiomux_setting gsbi9_active_cfg = {
69 .func = GPIOMUX_FUNC_2,
70 .drv = GPIOMUX_DRV_8MA,
71 .pull = GPIOMUX_PULL_DOWN,
72};
73
74static struct gpiomux_setting gsbi9_suspended_cfg = {
75 .func = GPIOMUX_FUNC_2,
76 .drv = GPIOMUX_DRV_2MA,
77 .pull = GPIOMUX_PULL_DOWN,
78};
79
Stepan Moskovchenko3b09bf52011-12-06 20:40:53 -080080static struct gpiomux_setting gsbi5 = {
81 .func = GPIOMUX_FUNC_1,
82 .drv = GPIOMUX_DRV_8MA,
83 .pull = GPIOMUX_PULL_NONE,
84};
85
Harini Jayaramanfe6ff4162012-03-14 11:25:40 -060086static struct gpiomux_setting gsbi9 = {
87 .func = GPIOMUX_FUNC_2,
88 .drv = GPIOMUX_DRV_8MA,
89 .pull = GPIOMUX_PULL_NONE,
90};
91
Stepan Moskovchenko3b09bf52011-12-06 20:40:53 -080092static struct gpiomux_setting gsbi10 = {
93 .func = GPIOMUX_FUNC_2,
94 .drv = GPIOMUX_DRV_8MA,
95 .pull = GPIOMUX_PULL_NONE,
96};
97
98static struct gpiomux_setting gsbi12 = {
99 .func = GPIOMUX_FUNC_1,
100 .drv = GPIOMUX_DRV_8MA,
101 .pull = GPIOMUX_PULL_NONE,
102};
103
Taniya Das75596f92013-03-06 11:47:34 +0530104static struct gpiomux_setting external_vfr[] = {
105 /* Suspended state */
106 {
107 .func = GPIOMUX_FUNC_3,
108 .drv = GPIOMUX_DRV_2MA,
109 .pull = GPIOMUX_PULL_KEEPER,
110 },
111 /* Active state */
112 {
113 .func = GPIOMUX_FUNC_3,
114 .drv = GPIOMUX_DRV_2MA,
115 .pull = GPIOMUX_PULL_KEEPER,
116 },
117};
118
Stepan Moskovchenko3b09bf52011-12-06 20:40:53 -0800119static struct gpiomux_setting cdc_mclk = {
120 .func = GPIOMUX_FUNC_1,
Rohit Vaswani47e6c142012-09-19 16:11:06 -0700121 .drv = GPIOMUX_DRV_2MA,
Stepan Moskovchenko3b09bf52011-12-06 20:40:53 -0800122 .pull = GPIOMUX_PULL_NONE,
123};
124
125static struct gpiomux_setting audio_auxpcm[] = {
126 /* Suspended state */
127 {
128 .func = GPIOMUX_FUNC_GPIO,
129 .drv = GPIOMUX_DRV_2MA,
130 .pull = GPIOMUX_PULL_NONE,
131 },
132 /* Active state */
133 {
134 .func = GPIOMUX_FUNC_1,
135 .drv = GPIOMUX_DRV_2MA,
136 .pull = GPIOMUX_PULL_NONE,
137 },
138};
139
Bhalchandra Gajaredd00a9b2012-05-02 16:44:36 -0700140static struct gpiomux_setting audio_mbhc = {
141 .func = GPIOMUX_FUNC_GPIO,
142 .drv = GPIOMUX_DRV_8MA,
143 .pull = GPIOMUX_PULL_NONE,
144};
145
Bhalchandra Gajarec0ac7d82012-05-16 11:28:59 -0700146static struct gpiomux_setting audio_spkr_boost = {
147 .func = GPIOMUX_FUNC_GPIO,
148 .drv = GPIOMUX_DRV_8MA,
149 .pull = GPIOMUX_PULL_NONE,
150};
151
Laxminath Kasam46cf4b02013-03-20 23:28:26 +0530152static struct gpiomux_setting audio_useuro_switch = {
153 .func = GPIOMUX_FUNC_GPIO,
154 .drv = GPIOMUX_DRV_2MA,
155 .pull = GPIOMUX_PULL_NONE,
156};
157
Stepan Moskovchenko3b09bf52011-12-06 20:40:53 -0800158#if defined(CONFIG_KS8851) || defined(CONFIG_KS8851_MODULE)
159static struct gpiomux_setting gpio_eth_config = {
160 .pull = GPIOMUX_PULL_NONE,
161 .drv = GPIOMUX_DRV_8MA,
162 .func = GPIOMUX_FUNC_GPIO,
163};
164#endif
165
166static struct gpiomux_setting slimbus = {
167 .func = GPIOMUX_FUNC_1,
168 .drv = GPIOMUX_DRV_8MA,
169 .pull = GPIOMUX_PULL_KEEPER,
170};
171
172static struct gpiomux_setting wcnss_5wire_suspend_cfg = {
173 .func = GPIOMUX_FUNC_GPIO,
174 .drv = GPIOMUX_DRV_2MA,
175 .pull = GPIOMUX_PULL_UP,
176};
177
178static struct gpiomux_setting wcnss_5wire_active_cfg = {
179 .func = GPIOMUX_FUNC_1,
180 .drv = GPIOMUX_DRV_6MA,
181 .pull = GPIOMUX_PULL_DOWN,
182};
183
Amy Malochef3c9db42011-12-08 15:17:35 -0800184static struct gpiomux_setting atmel_resout_sus_cfg = {
Stepan Moskovchenko3b09bf52011-12-06 20:40:53 -0800185 .func = GPIOMUX_FUNC_GPIO,
186 .drv = GPIOMUX_DRV_6MA,
187 .pull = GPIOMUX_PULL_DOWN,
188};
189
Amy Malochef3c9db42011-12-08 15:17:35 -0800190static struct gpiomux_setting atmel_resout_act_cfg = {
191 .func = GPIOMUX_FUNC_GPIO,
192 .drv = GPIOMUX_DRV_6MA,
193 .pull = GPIOMUX_PULL_UP,
194};
195
196static struct gpiomux_setting atmel_ldo_en_sus_cfg = {
Stepan Moskovchenko3b09bf52011-12-06 20:40:53 -0800197 .func = GPIOMUX_FUNC_GPIO,
198 .drv = GPIOMUX_DRV_6MA,
199 .pull = GPIOMUX_PULL_DOWN,
200};
201
Amy Malochef3c9db42011-12-08 15:17:35 -0800202static struct gpiomux_setting atmel_ldo_en_act_cfg = {
203 .func = GPIOMUX_FUNC_GPIO,
204 .drv = GPIOMUX_DRV_6MA,
205 .pull = GPIOMUX_PULL_DOWN,
206};
207
208static struct gpiomux_setting atmel_int_act_cfg = {
Stepan Moskovchenko3b09bf52011-12-06 20:40:53 -0800209 .func = GPIOMUX_FUNC_GPIO,
210 .drv = GPIOMUX_DRV_8MA,
211 .pull = GPIOMUX_PULL_UP,
212};
213
Amy Malochef3c9db42011-12-08 15:17:35 -0800214static struct gpiomux_setting atmel_int_sus_cfg = {
Stepan Moskovchenko3b09bf52011-12-06 20:40:53 -0800215 .func = GPIOMUX_FUNC_GPIO,
216 .drv = GPIOMUX_DRV_2MA,
217 .pull = GPIOMUX_PULL_DOWN,
218};
Shantanu Jain55d277a2013-03-08 11:37:29 +0530219
220static struct gpiomux_setting synaptic_rmi4_resout_sus_cfg = {
221 .func = GPIOMUX_FUNC_GPIO,
222 .drv = GPIOMUX_DRV_6MA,
223 .pull = GPIOMUX_PULL_DOWN,
224};
225
226static struct gpiomux_setting synaptic_rmi4_resout_act_cfg = {
227 .func = GPIOMUX_FUNC_GPIO,
228 .drv = GPIOMUX_DRV_6MA,
229 .pull = GPIOMUX_PULL_UP,
230};
231
232static struct gpiomux_setting synaptic_rmi4_attn_act_cfg = {
233 .func = GPIOMUX_FUNC_GPIO,
234 .drv = GPIOMUX_DRV_8MA,
235 .pull = GPIOMUX_PULL_UP,
236};
237
238static struct gpiomux_setting synaptic_rmi4_attn_sus_cfg = {
239 .func = GPIOMUX_FUNC_GPIO,
240 .drv = GPIOMUX_DRV_2MA,
241 .pull = GPIOMUX_PULL_DOWN,
242};
243
Mayank Ranabf5084a2011-12-12 17:06:54 +0530244#ifdef MSM8930_PHASE_2
Mayank Ranabf5084a2011-12-12 17:06:54 +0530245static struct gpiomux_setting hsusb_sus_cfg = {
246 .func = GPIOMUX_FUNC_GPIO,
247 .drv = GPIOMUX_DRV_2MA,
David Keitelc72d8192012-01-09 11:33:55 -0800248 .pull = GPIOMUX_PULL_NONE,
249 .dir = GPIOMUX_OUT_LOW,
Mayank Ranabf5084a2011-12-12 17:06:54 +0530250};
251static struct msm_gpiomux_config msm8930_hsusb_configs[] = {
252 {
253 .gpio = 63, /* HSUSB_EXTERNAL_5V_LDO_EN */
254 .settings = {
Mayank Ranabf5084a2011-12-12 17:06:54 +0530255 [GPIOMUX_SUSPENDED] = &hsusb_sus_cfg,
256 },
257 },
258 {
259 .gpio = 97, /* HSUSB_5V_EN */
260 .settings = {
Mayank Ranabf5084a2011-12-12 17:06:54 +0530261 [GPIOMUX_SUSPENDED] = &hsusb_sus_cfg,
262 },
263 },
264};
265#endif
Stepan Moskovchenko3b09bf52011-12-06 20:40:53 -0800266
267static struct gpiomux_setting hap_lvl_shft_suspended_config = {
268 .func = GPIOMUX_FUNC_GPIO,
269 .drv = GPIOMUX_DRV_2MA,
270 .pull = GPIOMUX_PULL_DOWN,
271};
272
273static struct gpiomux_setting hap_lvl_shft_active_config = {
274 .func = GPIOMUX_FUNC_GPIO,
275 .drv = GPIOMUX_DRV_8MA,
276 .pull = GPIOMUX_PULL_UP,
277};
278
279static struct gpiomux_setting ap2mdm_cfg = {
280 .func = GPIOMUX_FUNC_GPIO,
281 .drv = GPIOMUX_DRV_8MA,
282 .pull = GPIOMUX_PULL_DOWN,
283};
284
285static struct gpiomux_setting mdm2ap_status_cfg = {
286 .func = GPIOMUX_FUNC_GPIO,
287 .drv = GPIOMUX_DRV_8MA,
288 .pull = GPIOMUX_PULL_NONE,
289};
290
291static struct gpiomux_setting mdm2ap_errfatal_cfg = {
292 .func = GPIOMUX_FUNC_GPIO,
293 .drv = GPIOMUX_DRV_16MA,
294 .pull = GPIOMUX_PULL_DOWN,
295};
296
297static struct gpiomux_setting ap2mdm_kpdpwr_n_cfg = {
298 .func = GPIOMUX_FUNC_GPIO,
299 .drv = GPIOMUX_DRV_8MA,
300 .pull = GPIOMUX_PULL_NONE,
301};
302
303static struct gpiomux_setting mdp_vsync_suspend_cfg = {
304 .func = GPIOMUX_FUNC_GPIO,
305 .drv = GPIOMUX_DRV_2MA,
306 .pull = GPIOMUX_PULL_DOWN,
307};
308
309static struct gpiomux_setting mdp_vsync_active_cfg = {
310 .func = GPIOMUX_FUNC_1,
311 .drv = GPIOMUX_DRV_2MA,
312 .pull = GPIOMUX_PULL_DOWN,
313};
314
315#ifdef CONFIG_FB_MSM_HDMI_MSM_PANEL
316static struct gpiomux_setting hdmi_suspend_cfg = {
317 .func = GPIOMUX_FUNC_GPIO,
318 .drv = GPIOMUX_DRV_2MA,
319 .pull = GPIOMUX_PULL_DOWN,
320};
321
322static struct gpiomux_setting hdmi_active_1_cfg = {
323 .func = GPIOMUX_FUNC_1,
324 .drv = GPIOMUX_DRV_2MA,
325 .pull = GPIOMUX_PULL_UP,
326};
327
328static struct gpiomux_setting hdmi_active_2_cfg = {
329 .func = GPIOMUX_FUNC_1,
330 .drv = GPIOMUX_DRV_2MA,
331 .pull = GPIOMUX_PULL_DOWN,
332};
Manoj Raoc6d904c2012-06-22 00:32:14 -0700333
334static struct gpiomux_setting hdmi_active_3_cfg = {
335 .func = GPIOMUX_FUNC_GPIO,
336 .drv = GPIOMUX_DRV_2MA,
337 .pull = GPIOMUX_PULL_UP,
338 .dir = GPIOMUX_IN,
339};
340
341static struct gpiomux_setting hdmi_active_4_cfg = {
342 .func = GPIOMUX_FUNC_GPIO,
343 .drv = GPIOMUX_DRV_2MA,
344 .pull = GPIOMUX_PULL_UP,
345 .dir = GPIOMUX_OUT_HIGH,
346};
347
348static struct gpiomux_setting hdmi_active_5_cfg = {
349 .func = GPIOMUX_FUNC_GPIO,
350 .drv = GPIOMUX_DRV_2MA,
351 .pull = GPIOMUX_PULL_UP,
352 .dir = GPIOMUX_OUT_HIGH,
353};
354
Stepan Moskovchenko3b09bf52011-12-06 20:40:53 -0800355#endif
356
Joonwoo Parkb0795e12012-08-24 22:47:53 -0700357static struct gpiomux_setting sitar_reset = {
358 .func = GPIOMUX_FUNC_GPIO,
359 .drv = GPIOMUX_DRV_6MA,
360 .pull = GPIOMUX_PULL_NONE,
361 .dir = GPIOMUX_OUT_LOW,
362};
363
Taniya Das75596f92013-03-06 11:47:34 +0530364static struct gpiomux_setting usbsw_cfg = {
365 .func = GPIOMUX_FUNC_GPIO,
366 .drv = GPIOMUX_DRV_8MA,
367 .pull = GPIOMUX_PULL_DOWN,
368};
369
Stepan Moskovchenko3b09bf52011-12-06 20:40:53 -0800370#if defined(CONFIG_KS8851) || defined(CONFIG_KS8851_MODULE)
371static struct msm_gpiomux_config msm8960_ethernet_configs[] = {
372 {
373 .gpio = 90,
374 .settings = {
375 [GPIOMUX_SUSPENDED] = &gpio_eth_config,
376 }
377 },
378 {
379 .gpio = 89,
380 .settings = {
381 [GPIOMUX_SUSPENDED] = &gpio_eth_config,
382 }
383 },
384};
385#endif
386
387static struct msm_gpiomux_config msm8960_gsbi_configs[] __initdata = {
388 {
389 .gpio = 6, /* GSBI1 QUP SPI_DATA_MOSI */
390 .settings = {
391 [GPIOMUX_SUSPENDED] = &spi_suspended_config,
392 [GPIOMUX_ACTIVE] = &spi_active,
393 },
394 },
395 {
396 .gpio = 7, /* GSBI1 QUP SPI_DATA_MISO */
397 .settings = {
398 [GPIOMUX_SUSPENDED] = &spi_suspended_config,
399 [GPIOMUX_ACTIVE] = &spi_active,
400 },
401 },
402 {
403 .gpio = 8, /* GSBI1 QUP SPI_CS_N */
404 .settings = {
405 [GPIOMUX_SUSPENDED] = &spi_suspended_config,
406 [GPIOMUX_ACTIVE] = &spi_active,
407 },
408 },
409 {
410 .gpio = 9, /* GSBI1 QUP SPI_CLK */
411 .settings = {
412 [GPIOMUX_SUSPENDED] = &spi_suspended_config,
413 [GPIOMUX_ACTIVE] = &spi_active,
414 },
415 },
416 {
Stepan Moskovchenko3b09bf52011-12-06 20:40:53 -0800417 .gpio = 16, /* GSBI3 I2C QUP SDA */
418 .settings = {
419 [GPIOMUX_SUSPENDED] = &gsbi3_suspended_cfg,
420 [GPIOMUX_ACTIVE] = &gsbi3_active_cfg,
421 },
422 },
423 {
424 .gpio = 17, /* GSBI3 I2C QUP SCL */
425 .settings = {
426 [GPIOMUX_SUSPENDED] = &gsbi3_suspended_cfg,
427 [GPIOMUX_ACTIVE] = &gsbi3_active_cfg,
428 },
429 },
430 {
431 .gpio = 22, /* GSBI5 UART2 */
432 .settings = {
433 [GPIOMUX_SUSPENDED] = &gsbi5,
434 },
435 },
436 {
437 .gpio = 23, /* GSBI5 UART2 */
438 .settings = {
439 [GPIOMUX_SUSPENDED] = &gsbi5,
440 },
441 },
442 {
Stepan Moskovchenko3b09bf52011-12-06 20:40:53 -0800443 .gpio = 44, /* GSBI12 I2C QUP SDA */
444 .settings = {
445 [GPIOMUX_SUSPENDED] = &gsbi12,
446 },
447 },
448 {
Harini Jayaramanfe6ff4162012-03-14 11:25:40 -0600449 .gpio = 95, /* GSBI9 I2C QUP SDA */
450 .settings = {
451 [GPIOMUX_SUSPENDED] = &gsbi9,
452 },
453 },
454 {
455 .gpio = 96, /* GSBI12 I2C QUP SCL */
456 .settings = {
457 [GPIOMUX_SUSPENDED] = &gsbi9,
458 },
459 },
460 {
Stepan Moskovchenko3b09bf52011-12-06 20:40:53 -0800461 .gpio = 45, /* GSBI12 I2C QUP SCL */
462 .settings = {
463 [GPIOMUX_SUSPENDED] = &gsbi12,
464 },
465 },
466 {
467 .gpio = 73, /* GSBI10 I2C QUP SDA */
468 .settings = {
469 [GPIOMUX_SUSPENDED] = &gsbi10,
470 },
471 },
472 {
473 .gpio = 74, /* GSBI10 I2C QUP SCL */
474 .settings = {
475 [GPIOMUX_SUSPENDED] = &gsbi10,
476 },
477 },
478};
479
Kiran Gunda484442e2013-03-11 19:14:44 +0530480static struct msm_gpiomux_config msm8930_sglte_gsbi_configs[] __initdata = {
481 /* Add the I2C/SPI GPIOs Here */
482 {
483 .gpio = 6, /* GSBI1 TX */
484 .settings = {
485 [GPIOMUX_SUSPENDED] = &spi_suspended_config,
486 [GPIOMUX_ACTIVE] = &spi_active,
487 },
488 },
489 {
490 .gpio = 7, /* GSBI1 RX */
491 .settings = {
492 [GPIOMUX_SUSPENDED] = &spi_suspended_config,
493 [GPIOMUX_ACTIVE] = &spi_active,
494 },
495 },
496 {
497 .gpio = 8, /* GSBI1 CTS_N */
498 .settings = {
499 [GPIOMUX_SUSPENDED] = &spi_suspended_config,
500 [GPIOMUX_ACTIVE] = &spi_active,
501 },
502 },
503 {
504 .gpio = 9, /* GSBI1 RFR_N */
505 .settings = {
506 [GPIOMUX_SUSPENDED] = &spi_suspended_config,
507 [GPIOMUX_ACTIVE] = &spi_active,
508 },
509 },
510 {
511 .gpio = 16, /* GSBI3 I2C QUP SDA */
512 .settings = {
513 [GPIOMUX_SUSPENDED] = &gsbi3_suspended_cfg,
514 [GPIOMUX_ACTIVE] = &gsbi3_active_cfg,
515 },
516 },
517 {
518 .gpio = 17, /* GSBI3 I2C QUP SCL */
519 .settings = {
520 [GPIOMUX_SUSPENDED] = &gsbi3_suspended_cfg,
521 [GPIOMUX_ACTIVE] = &gsbi3_active_cfg,
522 },
523 },
524 {
525 .gpio = 44, /* GSBI12 I2C QUP SDA */
526 .settings = {
527 [GPIOMUX_SUSPENDED] = &gsbi12,
528 },
529 },
530 {
531 .gpio = 45, /* GSBI12 I2C QUP SCL */
532 .settings = {
533 [GPIOMUX_SUSPENDED] = &gsbi12,
534 },
535 },
536 {
537 .gpio = 73, /* GSBI10 I2C QUP SDA */
538 .settings = {
539 [GPIOMUX_SUSPENDED] = &gsbi10,
540 },
541 },
542 {
543 .gpio = 74, /* GSBI10 I2C QUP SCL */
544 .settings = {
545 [GPIOMUX_SUSPENDED] = &gsbi10,
546 },
547 },
548
549};
550
551
Stepan Moskovchenko3b09bf52011-12-06 20:40:53 -0800552static struct msm_gpiomux_config msm8960_slimbus_config[] __initdata = {
553 {
554 .gpio = 60, /* slimbus data */
555 .settings = {
556 [GPIOMUX_SUSPENDED] = &slimbus,
557 },
558 },
559 {
560 .gpio = 61, /* slimbus clk */
561 .settings = {
562 [GPIOMUX_SUSPENDED] = &slimbus,
563 },
564 },
565};
566
567static struct msm_gpiomux_config msm8960_audio_codec_configs[] __initdata = {
568 {
569 .gpio = 59,
570 .settings = {
571 [GPIOMUX_SUSPENDED] = &cdc_mclk,
572 },
573 },
574};
575
Bhalchandra Gajaredd00a9b2012-05-02 16:44:36 -0700576static struct msm_gpiomux_config msm8960_audio_mbhc_configs[] __initdata = {
577 {
578 .gpio = 37,
579 .settings = {
580 [GPIOMUX_SUSPENDED] = &audio_mbhc,
581 },
582 },
Laxminath Kasam46cf4b02013-03-20 23:28:26 +0530583 {
584 .gpio = 80,
585 .settings = {
586 [GPIOMUX_SUSPENDED] = &audio_useuro_switch,
587 },
588 },
589};
590
591static struct msm_gpiomux_config msm8960_audio_mbhc_configs_sglte[] __initdata = {
592 {
593 .gpio = 50,
594 .settings = {
595 [GPIOMUX_SUSPENDED] = &audio_mbhc,
596 },
597 },
598 {
599 .gpio = 66,
600 .settings = {
601 [GPIOMUX_SUSPENDED] = &audio_useuro_switch,
602 },
603 },
Bhalchandra Gajaredd00a9b2012-05-02 16:44:36 -0700604};
605
Bhalchandra Gajarec0ac7d82012-05-16 11:28:59 -0700606static struct msm_gpiomux_config msm8960_audio_spkr_configs[] __initdata = {
607 {
608 .gpio = 15,
609 .settings = {
610 [GPIOMUX_SUSPENDED] = &audio_spkr_boost,
611 },
612 },
613};
614
Stepan Moskovchenko3b09bf52011-12-06 20:40:53 -0800615static struct msm_gpiomux_config msm8960_audio_auxpcm_configs[] __initdata = {
616 {
617 .gpio = 63,
618 .settings = {
619 [GPIOMUX_SUSPENDED] = &audio_auxpcm[0],
620 [GPIOMUX_ACTIVE] = &audio_auxpcm[1],
621 },
622 },
623 {
624 .gpio = 64,
625 .settings = {
626 [GPIOMUX_SUSPENDED] = &audio_auxpcm[0],
627 [GPIOMUX_ACTIVE] = &audio_auxpcm[1],
628 },
629 },
630 {
631 .gpio = 65,
632 .settings = {
633 [GPIOMUX_SUSPENDED] = &audio_auxpcm[0],
634 [GPIOMUX_ACTIVE] = &audio_auxpcm[1],
635 },
636 },
637 {
638 .gpio = 66,
639 .settings = {
640 [GPIOMUX_SUSPENDED] = &audio_auxpcm[0],
641 [GPIOMUX_ACTIVE] = &audio_auxpcm[1],
642 },
643 },
644};
645
646static struct msm_gpiomux_config wcnss_5wire_interface[] = {
647 {
648 .gpio = 84,
649 .settings = {
650 [GPIOMUX_ACTIVE] = &wcnss_5wire_active_cfg,
651 [GPIOMUX_SUSPENDED] = &wcnss_5wire_suspend_cfg,
652 },
653 },
654 {
655 .gpio = 85,
656 .settings = {
657 [GPIOMUX_ACTIVE] = &wcnss_5wire_active_cfg,
658 [GPIOMUX_SUSPENDED] = &wcnss_5wire_suspend_cfg,
659 },
660 },
661 {
662 .gpio = 86,
663 .settings = {
664 [GPIOMUX_ACTIVE] = &wcnss_5wire_active_cfg,
665 [GPIOMUX_SUSPENDED] = &wcnss_5wire_suspend_cfg,
666 },
667 },
668 {
669 .gpio = 87,
670 .settings = {
671 [GPIOMUX_ACTIVE] = &wcnss_5wire_active_cfg,
672 [GPIOMUX_SUSPENDED] = &wcnss_5wire_suspend_cfg,
673 },
674 },
675 {
676 .gpio = 88,
677 .settings = {
678 [GPIOMUX_ACTIVE] = &wcnss_5wire_active_cfg,
679 [GPIOMUX_SUSPENDED] = &wcnss_5wire_suspend_cfg,
680 },
681 },
682};
683
Amy Malochef3c9db42011-12-08 15:17:35 -0800684static struct msm_gpiomux_config msm8960_atmel_configs[] __initdata = {
Stepan Moskovchenko3b09bf52011-12-06 20:40:53 -0800685 { /* TS INTERRUPT */
686 .gpio = 11,
687 .settings = {
Amy Malochef3c9db42011-12-08 15:17:35 -0800688 [GPIOMUX_ACTIVE] = &atmel_int_act_cfg,
689 [GPIOMUX_SUSPENDED] = &atmel_int_sus_cfg,
Stepan Moskovchenko3b09bf52011-12-06 20:40:53 -0800690 },
691 },
Amy Malochef3c9db42011-12-08 15:17:35 -0800692 { /* TS LDO ENABLE */
Stepan Moskovchenko3b09bf52011-12-06 20:40:53 -0800693 .gpio = 50,
694 .settings = {
Amy Malochef3c9db42011-12-08 15:17:35 -0800695 [GPIOMUX_ACTIVE] = &atmel_ldo_en_act_cfg,
696 [GPIOMUX_SUSPENDED] = &atmel_ldo_en_sus_cfg,
Stepan Moskovchenko3b09bf52011-12-06 20:40:53 -0800697 },
698 },
699 { /* TS RESOUT */
700 .gpio = 52,
701 .settings = {
Amy Malochef3c9db42011-12-08 15:17:35 -0800702 [GPIOMUX_ACTIVE] = &atmel_resout_act_cfg,
703 [GPIOMUX_SUSPENDED] = &atmel_resout_sus_cfg,
Stepan Moskovchenko3b09bf52011-12-06 20:40:53 -0800704 },
705 },
706};
707
Shantanu Jain55d277a2013-03-08 11:37:29 +0530708static struct msm_gpiomux_config msm8960_synaptic_rmi4_configs[] __initdata = {
709 { /* TS INTERRUPT */
710 .gpio = 11,
711 .settings = {
712 [GPIOMUX_ACTIVE] = &synaptic_rmi4_attn_act_cfg,
713 [GPIOMUX_SUSPENDED] = &synaptic_rmi4_attn_sus_cfg,
714 },
715 },
716 { /* TS RESOUT */
717 .gpio = 52,
718 .settings = {
719 [GPIOMUX_ACTIVE] = &synaptic_rmi4_resout_act_cfg,
720 [GPIOMUX_SUSPENDED] = &synaptic_rmi4_resout_sus_cfg,
721 },
722 },
723};
724
Stepan Moskovchenko3b09bf52011-12-06 20:40:53 -0800725static struct msm_gpiomux_config hap_lvl_shft_config[] __initdata = {
726 {
727 .gpio = 47,
728 .settings = {
729 [GPIOMUX_SUSPENDED] = &hap_lvl_shft_suspended_config,
730 [GPIOMUX_ACTIVE] = &hap_lvl_shft_active_config,
731 },
732 },
733};
734
735static struct msm_gpiomux_config mdm_configs[] __initdata = {
736 /* AP2MDM_STATUS */
737 {
738 .gpio = 94,
739 .settings = {
740 [GPIOMUX_SUSPENDED] = &ap2mdm_cfg,
741 }
742 },
743 /* MDM2AP_STATUS */
744 {
745 .gpio = 69,
746 .settings = {
747 [GPIOMUX_SUSPENDED] = &mdm2ap_status_cfg,
748 }
749 },
750 /* MDM2AP_ERRFATAL */
751 {
752 .gpio = 70,
753 .settings = {
754 [GPIOMUX_SUSPENDED] = &mdm2ap_errfatal_cfg,
755 }
756 },
757 /* AP2MDM_ERRFATAL */
758 {
759 .gpio = 95,
760 .settings = {
761 [GPIOMUX_SUSPENDED] = &ap2mdm_cfg,
762 }
763 },
764 /* AP2MDM_KPDPWR_N */
765 {
766 .gpio = 81,
767 .settings = {
768 [GPIOMUX_SUSPENDED] = &ap2mdm_kpdpwr_n_cfg,
769 }
770 },
771 /* AP2MDM_PMIC_RESET_N */
772 {
773 .gpio = 80,
774 .settings = {
775 [GPIOMUX_SUSPENDED] = &ap2mdm_kpdpwr_n_cfg,
776 }
777 }
778};
779
780static struct msm_gpiomux_config msm8960_mdp_vsync_configs[] __initdata = {
781 {
782 .gpio = 0,
783 .settings = {
784 [GPIOMUX_ACTIVE] = &mdp_vsync_active_cfg,
785 [GPIOMUX_SUSPENDED] = &mdp_vsync_suspend_cfg,
786 },
787 }
788};
789
790#ifdef CONFIG_FB_MSM_HDMI_MSM_PANEL
791static struct msm_gpiomux_config msm8960_hdmi_configs[] __initdata = {
792 {
793 .gpio = 99,
794 .settings = {
795 [GPIOMUX_ACTIVE] = &hdmi_active_1_cfg,
796 [GPIOMUX_SUSPENDED] = &hdmi_suspend_cfg,
797 },
798 },
799 {
800 .gpio = 100,
801 .settings = {
802 [GPIOMUX_ACTIVE] = &hdmi_active_1_cfg,
803 [GPIOMUX_SUSPENDED] = &hdmi_suspend_cfg,
804 },
805 },
806 {
807 .gpio = 101,
808 .settings = {
809 [GPIOMUX_ACTIVE] = &hdmi_active_1_cfg,
810 [GPIOMUX_SUSPENDED] = &hdmi_suspend_cfg,
811 },
812 },
813 {
814 .gpio = 102,
815 .settings = {
816 [GPIOMUX_ACTIVE] = &hdmi_active_2_cfg,
817 [GPIOMUX_SUSPENDED] = &hdmi_suspend_cfg,
818 },
819 },
Manoj Raoc6d904c2012-06-22 00:32:14 -0700820
821};
822
823static struct msm_gpiomux_config msm8930_mhl_configs[] __initdata = {
824 {
825 .gpio = 72,
826 .settings = {
827 [GPIOMUX_ACTIVE] = &hdmi_active_3_cfg,
828 [GPIOMUX_SUSPENDED] = &hdmi_suspend_cfg,
829 },
830 },
831 {
832 .gpio = 71,
833 .settings = {
834 [GPIOMUX_ACTIVE] = &hdmi_active_4_cfg,
835 [GPIOMUX_SUSPENDED] = &hdmi_suspend_cfg,
836 },
837 },
838 {
839 .gpio = 73,
840 .settings = {
841 [GPIOMUX_ACTIVE] = &hdmi_active_5_cfg,
842 [GPIOMUX_SUSPENDED] = &hdmi_suspend_cfg,
843 },
844 },
845
Stepan Moskovchenko3b09bf52011-12-06 20:40:53 -0800846};
847#endif
848
Amy Malochee8de95d2012-02-23 10:40:25 -0800849static struct gpiomux_setting haptics_active_cfg = {
850 .func = GPIOMUX_FUNC_GPIO,
851 .drv = GPIOMUX_DRV_8MA,
852 .pull = GPIOMUX_PULL_UP,
853};
Anirudh Ghayal8c15f7f2012-01-09 14:04:02 +0530854static struct gpiomux_setting haptics_suspend_cfg = {
855 .func = GPIOMUX_FUNC_GPIO,
856 .drv = GPIOMUX_DRV_8MA,
857 .pull = GPIOMUX_PULL_DOWN,
858};
859
860static struct msm_gpiomux_config msm8930_haptics_configs[] __initdata = {
861 {
862 .gpio = 77,
863 .settings = {
Amy Malochee8de95d2012-02-23 10:40:25 -0800864 [GPIOMUX_ACTIVE] = &haptics_active_cfg,
Anirudh Ghayal8c15f7f2012-01-09 14:04:02 +0530865 [GPIOMUX_SUSPENDED] = &haptics_suspend_cfg,
866 },
867 },
868 {
869 .gpio = 78,
870 .settings = {
Amy Malochee8de95d2012-02-23 10:40:25 -0800871 [GPIOMUX_ACTIVE] = &haptics_active_cfg,
Anirudh Ghayal8c15f7f2012-01-09 14:04:02 +0530872 [GPIOMUX_SUSPENDED] = &haptics_suspend_cfg,
873 },
874 },
875};
Anirudh Ghayal8c15f7f2012-01-09 14:04:02 +0530876
Krishna Konda41b6ab02012-05-16 15:08:03 -0700877static struct gpiomux_setting sd_det_line = {
878 .func = GPIOMUX_FUNC_GPIO,
879 .drv = GPIOMUX_DRV_2MA,
880 .pull = GPIOMUX_PULL_NONE,
881};
882
883static struct msm_gpiomux_config msm8930_sd_det_config[] __initdata = {
884 {
885 .gpio = 94, /* SD Card Detect Line */
886 .settings = {
887 [GPIOMUX_SUSPENDED] = &sd_det_line,
888 [GPIOMUX_ACTIVE] = &sd_det_line,
889 },
890 },
891};
892
Subhash Jadavaniaea501c2013-03-01 21:38:36 +0530893static struct msm_gpiomux_config msm8930_sd_det_config_evt[] __initdata = {
894 {
895 .gpio = 90, /* SD Card Detect Line */
896 .settings = {
897 [GPIOMUX_SUSPENDED] = &sd_det_line,
898 [GPIOMUX_ACTIVE] = &sd_det_line,
899 },
900 },
901};
902
Wentao Xuc7769c02012-08-03 15:06:41 -0400903static struct gpiomux_setting gyro_int_line = {
904 .func = GPIOMUX_FUNC_GPIO,
905 .drv = GPIOMUX_DRV_2MA,
906 .pull = GPIOMUX_PULL_NONE,
907};
908
909static struct msm_gpiomux_config msm8930_gyro_int_config[] __initdata = {
910 {
911 .gpio = 69, /* Gyro Interrupt Line */
912 .settings = {
913 [GPIOMUX_SUSPENDED] = &gyro_int_line,
914 [GPIOMUX_ACTIVE] = &gyro_int_line,
915 },
916 },
917};
918
Joonwoo Parkb0795e12012-08-24 22:47:53 -0700919static struct msm_gpiomux_config msm_sitar_config[] __initdata = {
920 {
921 .gpio = 42, /* SYS_RST_N */
922 .settings = {
923 [GPIOMUX_SUSPENDED] = &sitar_reset,
924 },
925 }
926};
927
Taniya Das75596f92013-03-06 11:47:34 +0530928static struct msm_gpiomux_config sglte_8930_configs[] __initdata = {
929 /* AP2MDM_STATUS */
930 {
931 .gpio = 77,
932 .settings = {
933 [GPIOMUX_SUSPENDED] = &ap2mdm_cfg,
934 }
935 },
936 /* MDM2AP_STATUS */
937 {
938 .gpio = 24,
939 .settings = {
940 [GPIOMUX_SUSPENDED] = &mdm2ap_status_cfg,
941 }
942 },
943 /* MDM2AP_ERRFATAL */
944 {
945 .gpio = 40,
946 .settings = {
947 [GPIOMUX_SUSPENDED] = &mdm2ap_errfatal_cfg,
948 }
949 },
950 /* AP2MDM_ERRFATAL */
951 {
952 .gpio = 80,
953 .settings = {
954 [GPIOMUX_SUSPENDED] = &ap2mdm_cfg,
955 }
956 },
957 /* AP2MDM_KPDPWR_N */
958 {
959 .gpio = 79,
960 .settings = {
961 [GPIOMUX_SUSPENDED] = &ap2mdm_kpdpwr_n_cfg,
962 }
963 },
964 /* AP2MDM_PMIC_PWR_EN */
965 {
966 .gpio = 22,
967 .settings = {
968 [GPIOMUX_SUSPENDED] = &ap2mdm_kpdpwr_n_cfg,
969 }
970 },
971 /* AP2MDM_SOFT_RESET */
972 {
973 .gpio = 78,
974 .settings = {
975 [GPIOMUX_SUSPENDED] = &ap2mdm_cfg,
976 }
977 },
978 /* USB_SW */
979 {
980 .gpio = 25,
981 .settings = {
982 [GPIOMUX_SUSPENDED] = &usbsw_cfg,
983 }
984 }
985};
986
987static struct msm_gpiomux_config msm8930_fusion_gsbi_configs[] = {
988 {
989 .gpio = 93,
990 .settings = {
991 [GPIOMUX_SUSPENDED] = &gsbi9_suspended_cfg,
992 [GPIOMUX_ACTIVE] = &gsbi9_active_cfg,
993 }
994 },
995 {
996 .gpio = 94,
997 .settings = {
998 [GPIOMUX_SUSPENDED] = &gsbi9_suspended_cfg,
999 [GPIOMUX_ACTIVE] = &gsbi9_active_cfg,
1000 }
1001 },
1002 {
1003 .gpio = 95,
1004 .settings = {
1005 [GPIOMUX_SUSPENDED] = &gsbi9_suspended_cfg,
1006 [GPIOMUX_ACTIVE] = &gsbi9_active_cfg,
1007 }
1008 },
1009 {
1010 .gpio = 96,
1011 .settings = {
1012 [GPIOMUX_SUSPENDED] = &gsbi9_suspended_cfg,
1013 [GPIOMUX_ACTIVE] = &gsbi9_active_cfg,
1014 }
1015 },
1016};
1017
1018static struct msm_gpiomux_config msm8930_external_vfr_configs[] __initdata = {
1019 {
1020 .gpio = 23, /* EXTERNAL VFR */
1021 .settings = {
1022 [GPIOMUX_SUSPENDED] = &external_vfr[0],
1023 [GPIOMUX_ACTIVE] = &external_vfr[1],
1024 },
1025 },
1026};
1027
1028int __init sglte8930_init_gpiomux(void)
1029{
Saket Saurabhc6cdc292013-02-13 10:54:53 +05301030 int minor_ver = SOCINFO_VERSION_MINOR(socinfo_get_platform_version());
1031 int major_ver = SOCINFO_VERSION_MAJOR(socinfo_get_platform_version());
1032
Taniya Das75596f92013-03-06 11:47:34 +05301033 /* For 8960 Fusion 2.2 Primary IPC */
1034 msm_gpiomux_install(msm8930_fusion_gsbi_configs,
1035 ARRAY_SIZE(msm8930_fusion_gsbi_configs));
Saket Saurabhc6cdc292013-02-13 10:54:53 +05301036 /* For 8930 SGLTE Serial Console */
1037 if (machine_is_msm8930_evt() && major_ver == 1) {
1038 if (minor_ver == 0)
1039 msm_gpiomux_install(msm8930_gsbi10_uart_configs,
1040 ARRAY_SIZE(msm8930_gsbi10_uart_configs));
1041 }
1042
Taniya Das75596f92013-03-06 11:47:34 +05301043 /* For SGLTE 8960 Fusion External VFR */
1044 msm_gpiomux_install(msm8930_external_vfr_configs,
1045 ARRAY_SIZE(msm8930_external_vfr_configs));
1046 msm_gpiomux_install(sglte_8930_configs,
1047 ARRAY_SIZE(sglte_8930_configs));
1048
Kiran Gunda484442e2013-03-11 19:14:44 +05301049 msm_gpiomux_install(msm8930_sglte_gsbi_configs,
1050 ARRAY_SIZE(msm8930_sglte_gsbi_configs));
1051
Taniya Das75596f92013-03-06 11:47:34 +05301052 msm_gpiomux_install(msm8960_slimbus_config,
1053 ARRAY_SIZE(msm8960_slimbus_config));
1054
1055 msm_gpiomux_install(msm8960_audio_codec_configs,
1056 ARRAY_SIZE(msm8960_audio_codec_configs));
1057
1058 msm_gpiomux_install(wcnss_5wire_interface,
1059 ARRAY_SIZE(wcnss_5wire_interface));
1060
1061 msm_gpiomux_install(msm8960_mdp_vsync_configs,
1062 ARRAY_SIZE(msm8960_mdp_vsync_configs));
1063
1064 msm_gpiomux_install(msm_sitar_config, ARRAY_SIZE(msm_sitar_config));
1065
Shantanu Jain55d277a2013-03-08 11:37:29 +05301066 msm_gpiomux_install(msm8960_synaptic_rmi4_configs,
1067 ARRAY_SIZE(msm8960_synaptic_rmi4_configs));
1068
Subhash Jadavaniaea501c2013-03-01 21:38:36 +05301069 msm_gpiomux_install(msm8930_sd_det_config_evt,
1070 ARRAY_SIZE(msm8930_sd_det_config_evt));
1071
Laxminath Kasam46cf4b02013-03-20 23:28:26 +05301072 msm_gpiomux_install(msm8960_audio_mbhc_configs_sglte,
1073 ARRAY_SIZE(msm8960_audio_mbhc_configs_sglte));
1074
Taniya Das75596f92013-03-06 11:47:34 +05301075 return 0;
1076}
1077
Stepan Moskovchenko3b09bf52011-12-06 20:40:53 -08001078int __init msm8930_init_gpiomux(void)
1079{
1080 int rc = msm_gpiomux_init(NR_GPIO_IRQS);
1081 if (rc) {
1082 pr_err(KERN_ERR "msm_gpiomux_init failed %d\n", rc);
1083 return rc;
1084 }
1085
Taniya Das75596f92013-03-06 11:47:34 +05301086 if (socinfo_get_platform_subtype() == PLATFORM_SUBTYPE_SGLTE)
1087 return sglte8930_init_gpiomux();
1088
Stepan Moskovchenko3b09bf52011-12-06 20:40:53 -08001089#if defined(CONFIG_KS8851) || defined(CONFIG_KS8851_MODULE)
1090 msm_gpiomux_install(msm8960_ethernet_configs,
1091 ARRAY_SIZE(msm8960_ethernet_configs));
1092#endif
1093
1094 msm_gpiomux_install(msm8960_gsbi_configs,
1095 ARRAY_SIZE(msm8960_gsbi_configs));
1096
Amy Malochef3c9db42011-12-08 15:17:35 -08001097 msm_gpiomux_install(msm8960_atmel_configs,
1098 ARRAY_SIZE(msm8960_atmel_configs));
Stepan Moskovchenko3b09bf52011-12-06 20:40:53 -08001099
1100 msm_gpiomux_install(msm8960_slimbus_config,
1101 ARRAY_SIZE(msm8960_slimbus_config));
1102
1103 msm_gpiomux_install(msm8960_audio_codec_configs,
1104 ARRAY_SIZE(msm8960_audio_codec_configs));
1105
Bhalchandra Gajaredd00a9b2012-05-02 16:44:36 -07001106 msm_gpiomux_install(msm8960_audio_mbhc_configs,
1107 ARRAY_SIZE(msm8960_audio_mbhc_configs));
1108
Bhalchandra Gajarec0ac7d82012-05-16 11:28:59 -07001109 msm_gpiomux_install(msm8960_audio_spkr_configs,
1110 ARRAY_SIZE(msm8960_audio_spkr_configs));
1111
Stepan Moskovchenko3b09bf52011-12-06 20:40:53 -08001112 msm_gpiomux_install(msm8960_audio_auxpcm_configs,
1113 ARRAY_SIZE(msm8960_audio_auxpcm_configs));
1114
1115 msm_gpiomux_install(wcnss_5wire_interface,
1116 ARRAY_SIZE(wcnss_5wire_interface));
1117
1118 if (machine_is_msm8930_mtp() || machine_is_msm8930_fluid() ||
Mayank Ranabf5084a2011-12-12 17:06:54 +05301119 machine_is_msm8930_cdp()) {
Stepan Moskovchenko3b09bf52011-12-06 20:40:53 -08001120 msm_gpiomux_install(hap_lvl_shft_config,
1121 ARRAY_SIZE(hap_lvl_shft_config));
Mayank Ranabf5084a2011-12-12 17:06:54 +05301122#ifdef MSM8930_PHASE_2
1123 msm_gpiomux_install(msm8930_hsusb_configs,
1124 ARRAY_SIZE(msm8930_hsusb_configs));
1125#endif
1126 }
Stepan Moskovchenko3b09bf52011-12-06 20:40:53 -08001127
1128 if (PLATFORM_IS_CHARM25())
1129 msm_gpiomux_install(mdm_configs,
1130 ARRAY_SIZE(mdm_configs));
1131
Amy Malochee8de95d2012-02-23 10:40:25 -08001132 if (machine_is_msm8930_cdp() || machine_is_msm8930_mtp()
1133 || machine_is_msm8930_fluid())
Anirudh Ghayal8c15f7f2012-01-09 14:04:02 +05301134 msm_gpiomux_install(msm8930_haptics_configs,
1135 ARRAY_SIZE(msm8930_haptics_configs));
Anirudh Ghayal8c15f7f2012-01-09 14:04:02 +05301136
Stepan Moskovchenko3b09bf52011-12-06 20:40:53 -08001137#ifdef CONFIG_FB_MSM_HDMI_MSM_PANEL
1138 msm_gpiomux_install(msm8960_hdmi_configs,
1139 ARRAY_SIZE(msm8960_hdmi_configs));
Manoj Raoc6d904c2012-06-22 00:32:14 -07001140 if (machine_is_msm8930_fluid())
1141 msm_gpiomux_install(msm8930_mhl_configs,
1142 ARRAY_SIZE(msm8930_mhl_configs));
Stepan Moskovchenko3b09bf52011-12-06 20:40:53 -08001143#endif
1144
1145 msm_gpiomux_install(msm8960_mdp_vsync_configs,
1146 ARRAY_SIZE(msm8960_mdp_vsync_configs));
Krishna Konda41b6ab02012-05-16 15:08:03 -07001147
1148 msm_gpiomux_install(msm8930_sd_det_config,
1149 ARRAY_SIZE(msm8930_sd_det_config));
1150
Wentao Xuc7769c02012-08-03 15:06:41 -04001151 if (machine_is_msm8930_fluid() || machine_is_msm8930_mtp())
1152 msm_gpiomux_install(msm8930_gyro_int_config,
1153 ARRAY_SIZE(msm8930_gyro_int_config));
1154
Joonwoo Parkb0795e12012-08-24 22:47:53 -07001155 msm_gpiomux_install(msm_sitar_config, ARRAY_SIZE(msm_sitar_config));
1156
Stepan Moskovchenko3b09bf52011-12-06 20:40:53 -08001157 return 0;
1158}