blob: 688c6f76b697c11fcd702e38ef8bf90018a03494 [file] [log] [blame]
Damir Didjusto93768d12013-01-17 11:30:47 -08001/* Copyright (c) 2012-2013, The Linux Foundation. All rights reserved.
Sathish Ambleyb17ec7e2012-04-03 15:20:03 -07002 *
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 <mach/board.h>
17#include <mach/gpio.h>
18#include <mach/gpiomux.h>
Stepan Moskovchenko95108b82012-11-27 14:28:11 -080019#include <mach/socinfo.h>
Sathish Ambleyb17ec7e2012-04-03 15:20:03 -070020
Subbaraman Narayanamurthy3f93ab12012-08-17 19:39:47 -070021#define KS8851_IRQ_GPIO 94
Sathish Ambleye3154b42012-04-09 10:59:09 -070022
Sathish Ambleyb17ec7e2012-04-03 15:20:03 -070023static struct gpiomux_setting gpio_uart_config = {
24 .func = GPIOMUX_FUNC_2,
25 .drv = GPIOMUX_DRV_16MA,
26 .pull = GPIOMUX_PULL_NONE,
27 .dir = GPIOMUX_OUT_HIGH,
28};
29
Sagar Dhariaa8e6b0a2012-08-10 20:52:30 -060030static struct gpiomux_setting slimbus = {
31 .func = GPIOMUX_FUNC_1,
32 .drv = GPIOMUX_DRV_8MA,
33 .pull = GPIOMUX_PULL_KEEPER,
34};
35
Sathish Ambleye3154b42012-04-09 10:59:09 -070036#if defined(CONFIG_KS8851) || defined(CONFIG_KS8851_MODULE)
37static struct gpiomux_setting gpio_eth_config = {
Subbaraman Narayanamurthy3f93ab12012-08-17 19:39:47 -070038 .pull = GPIOMUX_PULL_UP,
39 .drv = GPIOMUX_DRV_2MA,
Sathish Ambleye3154b42012-04-09 10:59:09 -070040 .func = GPIOMUX_FUNC_GPIO,
41};
42
Subbaraman Narayanamurthy3f93ab12012-08-17 19:39:47 -070043static struct gpiomux_setting gpio_spi_cs2_config = {
Sathish Ambleye3154b42012-04-09 10:59:09 -070044 .func = GPIOMUX_FUNC_4,
Subbaraman Narayanamurthy3f93ab12012-08-17 19:39:47 -070045 .drv = GPIOMUX_DRV_6MA,
46 .pull = GPIOMUX_PULL_DOWN,
Sathish Ambleye3154b42012-04-09 10:59:09 -070047};
48
49static struct gpiomux_setting gpio_spi_config = {
50 .func = GPIOMUX_FUNC_1,
51 .drv = GPIOMUX_DRV_12MA,
52 .pull = GPIOMUX_PULL_NONE,
53};
54
Subbaraman Narayanamurthy3f93ab12012-08-17 19:39:47 -070055static struct gpiomux_setting gpio_spi_cs1_config = {
56 .func = GPIOMUX_FUNC_GPIO,
57 .drv = GPIOMUX_DRV_6MA,
58 .pull = GPIOMUX_PULL_UP,
59};
60
Sathish Ambleye3154b42012-04-09 10:59:09 -070061static struct msm_gpiomux_config msm_eth_configs[] = {
62 {
63 .gpio = KS8851_IRQ_GPIO,
64 .settings = {
65 [GPIOMUX_SUSPENDED] = &gpio_eth_config,
66 }
67 },
68};
69#endif
Sameer Thalappil8d686d42012-08-24 10:07:31 -070070
Pawan Kumar Nimmagaddabefacac2013-01-23 15:36:28 -080071static struct gpiomux_setting gpio_suspend_config[] = {
72 {
73 .func = GPIOMUX_FUNC_GPIO, /* IN-NP */
74 .drv = GPIOMUX_DRV_2MA,
75 .pull = GPIOMUX_PULL_NONE,
76 },
77 {
78 .func = GPIOMUX_FUNC_GPIO, /* O-LOW */
79 .drv = GPIOMUX_DRV_2MA,
80 .pull = GPIOMUX_PULL_NONE,
81 .dir = GPIOMUX_OUT_LOW,
82 },
83};
84
Siddartha Mohanadossc4bc6ae2012-12-06 14:22:22 -080085static struct gpiomux_setting gpio_epm_config = {
86 .func = GPIOMUX_FUNC_GPIO,
87 .drv = GPIOMUX_DRV_2MA,
88 .pull = GPIOMUX_PULL_DOWN,
89};
90
Sameer Thalappil8d686d42012-08-24 10:07:31 -070091static struct gpiomux_setting wcnss_5wire_suspend_cfg = {
92 .func = GPIOMUX_FUNC_GPIO,
93 .drv = GPIOMUX_DRV_2MA,
94 .pull = GPIOMUX_PULL_UP,
95};
96
97static struct gpiomux_setting wcnss_5wire_active_cfg = {
98 .func = GPIOMUX_FUNC_1,
99 .drv = GPIOMUX_DRV_6MA,
100 .pull = GPIOMUX_PULL_DOWN,
101};
102
Jin Honga04caaa2012-05-23 10:28:27 -0700103static struct gpiomux_setting gpio_i2c_config = {
104 .func = GPIOMUX_FUNC_3,
Gilad Avidovb7d8bb12012-11-09 16:30:37 -0700105 /*
106 * Please keep I2C GPIOs drive-strength at minimum (2ma). It is a
107 * workaround for HW issue of glitches caused by rapid GPIO current-
108 * change.
109 */
110 .drv = GPIOMUX_DRV_2MA,
Jin Honga04caaa2012-05-23 10:28:27 -0700111 .pull = GPIOMUX_PULL_NONE,
112};
113
Chandan Uddaraju88b26d72012-08-13 22:28:44 -0700114static struct gpiomux_setting lcd_en_act_cfg = {
115 .func = GPIOMUX_FUNC_GPIO,
116 .drv = GPIOMUX_DRV_8MA,
117 .pull = GPIOMUX_PULL_NONE,
Siddhartha Agrawal6ab3e1c2013-02-22 18:30:37 -0800118 .dir = GPIOMUX_OUT_HIGH,
Chandan Uddaraju88b26d72012-08-13 22:28:44 -0700119};
120
121static struct gpiomux_setting lcd_en_sus_cfg = {
122 .func = GPIOMUX_FUNC_GPIO,
123 .drv = GPIOMUX_DRV_2MA,
124 .pull = GPIOMUX_PULL_DOWN,
125};
Sathish Ambleye3154b42012-04-09 10:59:09 -0700126
Amy Maloche9e99a792012-08-15 23:27:51 -0700127static struct gpiomux_setting atmel_resout_sus_cfg = {
128 .func = GPIOMUX_FUNC_GPIO,
129 .drv = GPIOMUX_DRV_6MA,
130 .pull = GPIOMUX_PULL_DOWN,
131};
132
133static struct gpiomux_setting atmel_resout_act_cfg = {
134 .func = GPIOMUX_FUNC_GPIO,
135 .drv = GPIOMUX_DRV_6MA,
136 .pull = GPIOMUX_PULL_UP,
137};
138
139static struct gpiomux_setting atmel_int_act_cfg = {
140 .func = GPIOMUX_FUNC_GPIO,
141 .drv = GPIOMUX_DRV_8MA,
142 .pull = GPIOMUX_PULL_UP,
143};
144
145static struct gpiomux_setting atmel_int_sus_cfg = {
146 .func = GPIOMUX_FUNC_GPIO,
147 .drv = GPIOMUX_DRV_2MA,
148 .pull = GPIOMUX_PULL_DOWN,
149};
150
Joonwoo Park187e9cb2012-08-24 22:47:53 -0700151static struct gpiomux_setting taiko_reset = {
152 .func = GPIOMUX_FUNC_GPIO,
153 .drv = GPIOMUX_DRV_6MA,
154 .pull = GPIOMUX_PULL_NONE,
155 .dir = GPIOMUX_OUT_LOW,
156};
157
Joonwoo Parkeb84dc72012-09-12 10:22:49 -0700158static struct gpiomux_setting taiko_int = {
159 .func = GPIOMUX_FUNC_GPIO,
160 .drv = GPIOMUX_DRV_2MA,
161 .pull = GPIOMUX_PULL_NONE,
162};
Amy Maloche527acc42012-12-07 18:40:54 -0800163static struct gpiomux_setting hap_lvl_shft_suspended_config = {
164 .func = GPIOMUX_FUNC_GPIO,
165 .drv = GPIOMUX_DRV_2MA,
166 .pull = GPIOMUX_PULL_DOWN,
167};
168
169static struct gpiomux_setting hap_lvl_shft_active_config = {
170 .func = GPIOMUX_FUNC_GPIO,
171 .drv = GPIOMUX_DRV_8MA,
172 .pull = GPIOMUX_PULL_UP,
173};
174static struct msm_gpiomux_config hap_lvl_shft_config[] __initdata = {
175 {
176 .gpio = 86,
177 .settings = {
178 [GPIOMUX_SUSPENDED] = &hap_lvl_shft_suspended_config,
179 [GPIOMUX_ACTIVE] = &hap_lvl_shft_active_config,
180 },
181 },
182};
Joonwoo Parkeb84dc72012-09-12 10:22:49 -0700183
Amy Maloche9e99a792012-08-15 23:27:51 -0700184static struct msm_gpiomux_config msm_touch_configs[] __initdata = {
185 {
186 .gpio = 60, /* TOUCH RESET */
187 .settings = {
188 [GPIOMUX_ACTIVE] = &atmel_resout_act_cfg,
189 [GPIOMUX_SUSPENDED] = &atmel_resout_sus_cfg,
190 },
191 },
192 {
193 .gpio = 61, /* TOUCH IRQ */
194 .settings = {
195 [GPIOMUX_ACTIVE] = &atmel_int_act_cfg,
196 [GPIOMUX_SUSPENDED] = &atmel_int_sus_cfg,
197 },
198 },
199
200};
Ujwal Patel74b5df42012-08-13 22:50:13 -0700201
Manu Gautamac7265b2012-11-21 11:49:15 +0530202static struct gpiomux_setting hsic_sus_cfg = {
203 .func = GPIOMUX_FUNC_GPIO,
204 .drv = GPIOMUX_DRV_2MA,
205 .pull = GPIOMUX_PULL_DOWN,
Manu Gautamac7265b2012-11-21 11:49:15 +0530206};
207
208static struct gpiomux_setting hsic_act_cfg = {
209 .func = GPIOMUX_FUNC_1,
210 .drv = GPIOMUX_DRV_12MA,
211 .pull = GPIOMUX_PULL_NONE,
212};
213
214static struct gpiomux_setting hsic_hub_act_cfg = {
215 .func = GPIOMUX_FUNC_GPIO,
216 .drv = GPIOMUX_DRV_2MA,
217 .pull = GPIOMUX_PULL_UP,
218 .dir = GPIOMUX_IN,
219};
220
Vamsi Krishnac6c16fe2013-03-11 15:54:41 -0700221static struct gpiomux_setting hsic_resume_act_cfg = {
222 .func = GPIOMUX_FUNC_GPIO,
223 .drv = GPIOMUX_DRV_2MA,
224 .pull = GPIOMUX_PULL_DOWN,
225 .dir = GPIOMUX_OUT_LOW,
226};
227
228static struct gpiomux_setting hsic_resume_susp_cfg = {
229 .func = GPIOMUX_FUNC_GPIO,
230 .drv = GPIOMUX_DRV_2MA,
231 .pull = GPIOMUX_PULL_NONE,
232};
233
Manu Gautamac7265b2012-11-21 11:49:15 +0530234static struct msm_gpiomux_config msm_hsic_configs[] = {
235 {
236 .gpio = 144, /*HSIC_STROBE */
237 .settings = {
238 [GPIOMUX_ACTIVE] = &hsic_act_cfg,
239 [GPIOMUX_SUSPENDED] = &hsic_sus_cfg,
240 },
241 },
242 {
243 .gpio = 145, /* HSIC_DATA */
244 .settings = {
245 [GPIOMUX_ACTIVE] = &hsic_act_cfg,
246 [GPIOMUX_SUSPENDED] = &hsic_sus_cfg,
247 },
248 },
Vamsi Krishnac6c16fe2013-03-11 15:54:41 -0700249 {
250 .gpio = 80,
251 .settings = {
252 [GPIOMUX_ACTIVE] = &hsic_resume_act_cfg,
253 [GPIOMUX_SUSPENDED] = &hsic_resume_susp_cfg,
254 },
255 },
Manu Gautamac7265b2012-11-21 11:49:15 +0530256};
257
258static struct msm_gpiomux_config msm_hsic_hub_configs[] = {
259 {
260 .gpio = 50, /* HSIC_HUB_INT_N */
261 .settings = {
262 [GPIOMUX_ACTIVE] = &hsic_hub_act_cfg,
263 [GPIOMUX_SUSPENDED] = &hsic_sus_cfg,
264 },
265 },
266};
267
Manoj Rao5bf2a7e2012-10-29 12:53:27 -0700268static struct gpiomux_setting mhl_suspend_config = {
269 .func = GPIOMUX_FUNC_GPIO,
270 .drv = GPIOMUX_DRV_2MA,
271 .pull = GPIOMUX_PULL_DOWN,
272};
273
274static struct gpiomux_setting mhl_active_1_cfg = {
275 .func = GPIOMUX_FUNC_1,
276 .drv = GPIOMUX_DRV_2MA,
277 .pull = GPIOMUX_PULL_UP,
278 .dir = GPIOMUX_OUT_HIGH,
279};
280
Ujwal Patel74b5df42012-08-13 22:50:13 -0700281static struct gpiomux_setting hdmi_suspend_cfg = {
282 .func = GPIOMUX_FUNC_GPIO,
283 .drv = GPIOMUX_DRV_2MA,
284 .pull = GPIOMUX_PULL_DOWN,
285};
286
287static struct gpiomux_setting hdmi_active_1_cfg = {
288 .func = GPIOMUX_FUNC_1,
289 .drv = GPIOMUX_DRV_2MA,
290 .pull = GPIOMUX_PULL_UP,
291};
292
293static struct gpiomux_setting hdmi_active_2_cfg = {
294 .func = GPIOMUX_FUNC_1,
295 .drv = GPIOMUX_DRV_16MA,
296 .pull = GPIOMUX_PULL_DOWN,
297};
298
Manoj Rao5bf2a7e2012-10-29 12:53:27 -0700299static struct msm_gpiomux_config msm_mhl_configs[] __initdata = {
300 {
301 /* mhl-sii8334 pwr */
302 .gpio = 12,
303 .settings = {
304 [GPIOMUX_SUSPENDED] = &mhl_suspend_config,
305 [GPIOMUX_ACTIVE] = &mhl_active_1_cfg,
306 },
307 },
308 {
309 /* mhl-sii8334 intr */
310 .gpio = 82,
311 .settings = {
312 [GPIOMUX_SUSPENDED] = &mhl_suspend_config,
313 [GPIOMUX_ACTIVE] = &mhl_active_1_cfg,
314 },
315 },
Manoj Rao5bf2a7e2012-10-29 12:53:27 -0700316};
317
318
Ujwal Patel74b5df42012-08-13 22:50:13 -0700319static struct msm_gpiomux_config msm_hdmi_configs[] __initdata = {
320 {
321 .gpio = 31,
322 .settings = {
323 [GPIOMUX_ACTIVE] = &hdmi_active_1_cfg,
324 [GPIOMUX_SUSPENDED] = &hdmi_suspend_cfg,
325 },
326 },
327 {
328 .gpio = 32,
329 .settings = {
330 [GPIOMUX_ACTIVE] = &hdmi_active_1_cfg,
331 [GPIOMUX_SUSPENDED] = &hdmi_suspend_cfg,
332 },
333 },
334 {
335 .gpio = 33,
336 .settings = {
337 [GPIOMUX_ACTIVE] = &hdmi_active_1_cfg,
338 [GPIOMUX_SUSPENDED] = &hdmi_suspend_cfg,
339 },
340 },
341 {
342 .gpio = 34,
343 .settings = {
344 [GPIOMUX_ACTIVE] = &hdmi_active_2_cfg,
345 [GPIOMUX_SUSPENDED] = &hdmi_suspend_cfg,
346 },
347 },
348};
349
Saket Saurabheac58342013-02-05 12:20:18 +0530350static struct gpiomux_setting gpio_uart7_active_cfg = {
351 .func = GPIOMUX_FUNC_3,
352 .drv = GPIOMUX_DRV_8MA,
353 .pull = GPIOMUX_PULL_NONE,
354};
355
356static struct gpiomux_setting gpio_uart7_suspend_cfg = {
357 .func = GPIOMUX_FUNC_GPIO,
358 .drv = GPIOMUX_DRV_2MA,
359 .pull = GPIOMUX_PULL_DOWN,
360};
361
362static struct msm_gpiomux_config msm_blsp2_uart7_configs[] __initdata = {
363 {
364 .gpio = 41, /* BLSP2 UART7 TX */
365 .settings = {
366 [GPIOMUX_ACTIVE] = &gpio_uart7_active_cfg,
367 [GPIOMUX_SUSPENDED] = &gpio_uart7_suspend_cfg,
368 },
369 },
370 {
371 .gpio = 42, /* BLSP2 UART7 RX */
372 .settings = {
373 [GPIOMUX_ACTIVE] = &gpio_uart7_active_cfg,
374 [GPIOMUX_SUSPENDED] = &gpio_uart7_suspend_cfg,
375 },
376 },
377 {
378 .gpio = 43, /* BLSP2 UART7 CTS */
379 .settings = {
380 [GPIOMUX_ACTIVE] = &gpio_uart7_active_cfg,
381 [GPIOMUX_SUSPENDED] = &gpio_uart7_suspend_cfg,
382 },
383 },
384 {
385 .gpio = 44, /* BLSP2 UART7 RFR */
386 .settings = {
387 [GPIOMUX_ACTIVE] = &gpio_uart7_active_cfg,
388 [GPIOMUX_SUSPENDED] = &gpio_uart7_suspend_cfg,
389 },
390 },
391};
392
Stepan Moskovchenko95108b82012-11-27 14:28:11 -0800393static struct msm_gpiomux_config msm_rumi_blsp_configs[] __initdata = {
394 {
395 .gpio = 45, /* BLSP2 UART8 TX */
396 .settings = {
397 [GPIOMUX_SUSPENDED] = &gpio_uart_config,
398 },
399 },
400 {
401 .gpio = 46, /* BLSP2 UART8 RX */
402 .settings = {
403 [GPIOMUX_SUSPENDED] = &gpio_uart_config,
404 },
405 },
406};
407
Siddhartha Agrawal6ab3e1c2013-02-22 18:30:37 -0800408static struct msm_gpiomux_config msm_lcd_configs[] __initdata = {
409 {
410 .gpio = 58,
411 .settings = {
412 [GPIOMUX_ACTIVE] = &lcd_en_act_cfg,
413 [GPIOMUX_SUSPENDED] = &lcd_en_sus_cfg,
414 },
415 },
416};
417
Sathish Ambleyb17ec7e2012-04-03 15:20:03 -0700418static struct msm_gpiomux_config msm_blsp_configs[] __initdata = {
Sathish Ambleye3154b42012-04-09 10:59:09 -0700419#if defined(CONFIG_KS8851) || defined(CONFIG_KS8851_MODULE)
420 {
421 .gpio = 0, /* BLSP1 QUP SPI_DATA_MOSI */
422 .settings = {
423 [GPIOMUX_SUSPENDED] = &gpio_spi_config,
424 },
425 },
426 {
427 .gpio = 1, /* BLSP1 QUP SPI_DATA_MISO */
428 .settings = {
429 [GPIOMUX_SUSPENDED] = &gpio_spi_config,
430 },
431 },
432 {
433 .gpio = 3, /* BLSP1 QUP SPI_CLK */
434 .settings = {
435 [GPIOMUX_SUSPENDED] = &gpio_spi_config,
436 },
437 },
438 {
Subbaraman Narayanamurthy3f93ab12012-08-17 19:39:47 -0700439 .gpio = 9, /* BLSP1 QUP SPI_CS2A_N */
Sathish Ambleye3154b42012-04-09 10:59:09 -0700440 .settings = {
Subbaraman Narayanamurthy3f93ab12012-08-17 19:39:47 -0700441 [GPIOMUX_SUSPENDED] = &gpio_spi_cs2_config,
442 },
443 },
444 {
445 .gpio = 8, /* BLSP1 QUP SPI_CS1_N */
446 .settings = {
447 [GPIOMUX_SUSPENDED] = &gpio_spi_cs1_config,
Sathish Ambleye3154b42012-04-09 10:59:09 -0700448 },
449 },
450#endif
Sathish Ambleyb17ec7e2012-04-03 15:20:03 -0700451 {
Amy Malochebc7e9672012-08-15 10:30:40 -0700452 .gpio = 6, /* BLSP1 QUP2 I2C_DAT */
453 .settings = {
454 [GPIOMUX_SUSPENDED] = &gpio_i2c_config,
455 },
456 },
457 {
458 .gpio = 7, /* BLSP1 QUP2 I2C_CLK */
459 .settings = {
460 [GPIOMUX_SUSPENDED] = &gpio_i2c_config,
461 },
462 },
463 {
Jin Honga04caaa2012-05-23 10:28:27 -0700464 .gpio = 83, /* BLSP11 QUP I2C_DAT */
465 .settings = {
466 [GPIOMUX_SUSPENDED] = &gpio_i2c_config,
467 },
468 },
469 {
470 .gpio = 84, /* BLSP11 QUP I2C_CLK */
471 .settings = {
472 [GPIOMUX_SUSPENDED] = &gpio_i2c_config,
473 },
474 },
475 {
Stepan Moskovchenko5269b602012-08-08 17:57:09 -0700476 .gpio = 4, /* BLSP2 UART TX */
Sathish Ambleyb17ec7e2012-04-03 15:20:03 -0700477 .settings = {
478 [GPIOMUX_SUSPENDED] = &gpio_uart_config,
479 },
480 },
481 {
Stepan Moskovchenko5269b602012-08-08 17:57:09 -0700482 .gpio = 5, /* BLSP2 UART RX */
Sathish Ambleyb17ec7e2012-04-03 15:20:03 -0700483 .settings = {
484 [GPIOMUX_SUSPENDED] = &gpio_uart_config,
485 },
486 },
Sagar Dhariae0bb6502012-08-10 20:25:51 -0600487 {
488 .gpio = 53, /* BLSP2 QUP4 SPI_DATA_MOSI */
489 .settings = {
Pawan Kumar Nimmagaddabefacac2013-01-23 15:36:28 -0800490 [GPIOMUX_ACTIVE] = &gpio_spi_config,
491 [GPIOMUX_SUSPENDED] = &gpio_suspend_config[1],
Sagar Dhariae0bb6502012-08-10 20:25:51 -0600492 },
493 },
494 {
495 .gpio = 54, /* BLSP2 QUP4 SPI_DATA_MISO */
496 .settings = {
Pawan Kumar Nimmagaddabefacac2013-01-23 15:36:28 -0800497 [GPIOMUX_ACTIVE] = &gpio_spi_config,
498 [GPIOMUX_SUSPENDED] = &gpio_suspend_config[1],
Sagar Dhariae0bb6502012-08-10 20:25:51 -0600499 },
500 },
501 {
502 .gpio = 56, /* BLSP2 QUP4 SPI_CLK */
503 .settings = {
Pawan Kumar Nimmagaddabefacac2013-01-23 15:36:28 -0800504 [GPIOMUX_ACTIVE] = &gpio_spi_config,
505 [GPIOMUX_SUSPENDED] = &gpio_suspend_config[0],
Sagar Dhariae0bb6502012-08-10 20:25:51 -0600506 },
507 },
508 {
509 .gpio = 55, /* BLSP2 QUP4 SPI_CS0_N */
510 .settings = {
Pawan Kumar Nimmagaddabefacac2013-01-23 15:36:28 -0800511 [GPIOMUX_ACTIVE] = &gpio_spi_config,
512 [GPIOMUX_SUSPENDED] = &gpio_suspend_config[0],
Sagar Dhariae0bb6502012-08-10 20:25:51 -0600513 },
514 },
Siddartha Mohanadossc4bc6ae2012-12-06 14:22:22 -0800515 {
516 .gpio = 81, /* EPM enable */
517 .settings = {
518 [GPIOMUX_SUSPENDED] = &gpio_epm_config,
519 },
520 },
Sathish Ambleyb17ec7e2012-04-03 15:20:03 -0700521};
522
Sagar Dhariaa8e6b0a2012-08-10 20:52:30 -0600523static struct msm_gpiomux_config msm8974_slimbus_config[] __initdata = {
524 {
525 .gpio = 70, /* slimbus clk */
526 .settings = {
527 [GPIOMUX_SUSPENDED] = &slimbus,
528 },
529 },
530 {
531 .gpio = 71, /* slimbus data */
532 .settings = {
533 [GPIOMUX_SUSPENDED] = &slimbus,
534 },
535 },
536};
537
Kevin Chanbdcf7ef2012-08-24 08:33:33 -0700538static struct gpiomux_setting cam_settings[] = {
539 {
Sreesudhan Ramakrish Ramkumar88c4a092012-09-07 23:43:46 -0700540 .func = GPIOMUX_FUNC_1, /*active 1*/ /* 0 */
Kevin Chanbdcf7ef2012-08-24 08:33:33 -0700541 .drv = GPIOMUX_DRV_2MA,
542 .pull = GPIOMUX_PULL_NONE,
543 },
544
545 {
Sreesudhan Ramakrish Ramkumar88c4a092012-09-07 23:43:46 -0700546 .func = GPIOMUX_FUNC_1, /*suspend*/ /* 1 */
Kevin Chanbdcf7ef2012-08-24 08:33:33 -0700547 .drv = GPIOMUX_DRV_2MA,
548 .pull = GPIOMUX_PULL_DOWN,
549 },
550
551 {
Sreesudhan Ramakrish Ramkumar88c4a092012-09-07 23:43:46 -0700552 .func = GPIOMUX_FUNC_1, /*i2c suspend*/ /* 2 */
Kevin Chanbdcf7ef2012-08-24 08:33:33 -0700553 .drv = GPIOMUX_DRV_2MA,
554 .pull = GPIOMUX_PULL_KEEPER,
555 },
Sreesudhan Ramakrish Ramkumar88c4a092012-09-07 23:43:46 -0700556
557 {
558 .func = GPIOMUX_FUNC_GPIO, /*active 0*/ /* 3 */
559 .drv = GPIOMUX_DRV_2MA,
560 .pull = GPIOMUX_PULL_NONE,
561 },
562
563 {
564 .func = GPIOMUX_FUNC_GPIO, /*suspend 0*/ /* 4 */
565 .drv = GPIOMUX_DRV_2MA,
566 .pull = GPIOMUX_PULL_DOWN,
567 },
Kevin Chanbdcf7ef2012-08-24 08:33:33 -0700568};
569
Subhash Jadavani77e6cd72013-01-15 18:44:51 +0530570static struct gpiomux_setting sd_card_det_active_config = {
Subhash Jadavani76aa7de2012-10-10 09:58:17 +0530571 .func = GPIOMUX_FUNC_GPIO,
572 .drv = GPIOMUX_DRV_2MA,
573 .pull = GPIOMUX_PULL_NONE,
574 .dir = GPIOMUX_IN,
575};
576
Subhash Jadavani77e6cd72013-01-15 18:44:51 +0530577static struct gpiomux_setting sd_card_det_sleep_config = {
578 .func = GPIOMUX_FUNC_GPIO,
579 .drv = GPIOMUX_DRV_2MA,
580 .pull = GPIOMUX_PULL_UP,
581 .dir = GPIOMUX_IN,
582};
583
Subhash Jadavani76aa7de2012-10-10 09:58:17 +0530584static struct msm_gpiomux_config sd_card_det __initdata = {
585 .gpio = 62,
586 .settings = {
Subhash Jadavani77e6cd72013-01-15 18:44:51 +0530587 [GPIOMUX_ACTIVE] = &sd_card_det_active_config,
588 [GPIOMUX_SUSPENDED] = &sd_card_det_sleep_config,
Subhash Jadavani76aa7de2012-10-10 09:58:17 +0530589 },
590};
591
Kevin Chanbdcf7ef2012-08-24 08:33:33 -0700592static struct msm_gpiomux_config msm_sensor_configs[] __initdata = {
593 {
594 .gpio = 15, /* CAM_MCLK0 */
595 .settings = {
596 [GPIOMUX_ACTIVE] = &cam_settings[0],
597 [GPIOMUX_SUSPENDED] = &cam_settings[1],
598 },
599 },
600 {
601 .gpio = 16, /* CAM_MCLK1 */
602 .settings = {
603 [GPIOMUX_ACTIVE] = &cam_settings[0],
604 [GPIOMUX_SUSPENDED] = &cam_settings[1],
605 },
606 },
607 {
608 .gpio = 17, /* CAM_MCLK2 */
609 .settings = {
610 [GPIOMUX_ACTIVE] = &cam_settings[0],
611 [GPIOMUX_SUSPENDED] = &cam_settings[1],
612 },
613 },
614 {
615 .gpio = 18, /* WEBCAM1_RESET_N / CAM_MCLK3 */
616 .settings = {
Sreesudhan Ramakrish Ramkumar88c4a092012-09-07 23:43:46 -0700617 [GPIOMUX_ACTIVE] = &cam_settings[3],
618 [GPIOMUX_SUSPENDED] = &cam_settings[4],
Kevin Chanbdcf7ef2012-08-24 08:33:33 -0700619 },
620 },
621 {
622 .gpio = 19, /* CCI_I2C_SDA0 */
623 .settings = {
624 [GPIOMUX_ACTIVE] = &cam_settings[0],
Pawan Kumar Nimmagadda53621562013-01-28 13:11:44 -0800625 [GPIOMUX_SUSPENDED] = &gpio_suspend_config[0],
Kevin Chanbdcf7ef2012-08-24 08:33:33 -0700626 },
627 },
628 {
629 .gpio = 20, /* CCI_I2C_SCL0 */
630 .settings = {
631 [GPIOMUX_ACTIVE] = &cam_settings[0],
Pawan Kumar Nimmagadda53621562013-01-28 13:11:44 -0800632 [GPIOMUX_SUSPENDED] = &gpio_suspend_config[0],
Kevin Chanbdcf7ef2012-08-24 08:33:33 -0700633 },
634 },
635 {
636 .gpio = 21, /* CCI_I2C_SDA1 */
637 .settings = {
638 [GPIOMUX_ACTIVE] = &cam_settings[0],
Pawan Kumar Nimmagadda53621562013-01-28 13:11:44 -0800639 [GPIOMUX_SUSPENDED] = &gpio_suspend_config[0],
Kevin Chanbdcf7ef2012-08-24 08:33:33 -0700640 },
641 },
642 {
643 .gpio = 22, /* CCI_I2C_SCL1 */
644 .settings = {
645 [GPIOMUX_ACTIVE] = &cam_settings[0],
Pawan Kumar Nimmagadda53621562013-01-28 13:11:44 -0800646 [GPIOMUX_SUSPENDED] = &gpio_suspend_config[0],
Kevin Chanbdcf7ef2012-08-24 08:33:33 -0700647 },
648 },
649 {
650 .gpio = 23, /* FLASH_LED_EN */
651 .settings = {
652 [GPIOMUX_ACTIVE] = &cam_settings[0],
Pawan Kumar Nimmagadda53621562013-01-28 13:11:44 -0800653 [GPIOMUX_SUSPENDED] = &gpio_suspend_config[1],
Kevin Chanbdcf7ef2012-08-24 08:33:33 -0700654 },
655 },
656 {
657 .gpio = 24, /* FLASH_LED_NOW */
658 .settings = {
659 [GPIOMUX_ACTIVE] = &cam_settings[0],
Pawan Kumar Nimmagadda53621562013-01-28 13:11:44 -0800660 [GPIOMUX_SUSPENDED] = &gpio_suspend_config[1],
Kevin Chanbdcf7ef2012-08-24 08:33:33 -0700661 },
662 },
663 {
664 .gpio = 25, /* WEBCAM2_RESET_N */
665 .settings = {
Sreesudhan Ramakrish Ramkumara92d0b72013-03-12 23:39:07 -0700666 [GPIOMUX_ACTIVE] = &cam_settings[3],
Pawan Kumar Nimmagadda53621562013-01-28 13:11:44 -0800667 [GPIOMUX_SUSPENDED] = &gpio_suspend_config[1],
Kevin Chanbdcf7ef2012-08-24 08:33:33 -0700668 },
669 },
670 {
671 .gpio = 26, /* CAM_IRQ */
672 .settings = {
673 [GPIOMUX_ACTIVE] = &cam_settings[0],
674 [GPIOMUX_SUSPENDED] = &cam_settings[1],
675 },
676 },
677 {
678 .gpio = 27, /* OIS_SYNC */
679 .settings = {
680 [GPIOMUX_ACTIVE] = &cam_settings[0],
Pawan Kumar Nimmagadda53621562013-01-28 13:11:44 -0800681 [GPIOMUX_SUSPENDED] = &gpio_suspend_config[1],
Kevin Chanbdcf7ef2012-08-24 08:33:33 -0700682 },
683 },
684 {
685 .gpio = 28, /* WEBCAM1_STANDBY */
686 .settings = {
Sreesudhan Ramakrish Ramkumara92d0b72013-03-12 23:39:07 -0700687 [GPIOMUX_ACTIVE] = &cam_settings[3],
Pawan Kumar Nimmagadda53621562013-01-28 13:11:44 -0800688 [GPIOMUX_SUSPENDED] = &gpio_suspend_config[1],
Kevin Chanbdcf7ef2012-08-24 08:33:33 -0700689 },
690 },
691 {
692 .gpio = 89, /* CAM1_STANDBY_N */
693 .settings = {
Sreesudhan Ramakrish Ramkumara92d0b72013-03-12 23:39:07 -0700694 [GPIOMUX_ACTIVE] = &cam_settings[3],
695 [GPIOMUX_SUSPENDED] = &gpio_suspend_config[1],
Kevin Chanbdcf7ef2012-08-24 08:33:33 -0700696 },
697 },
698 {
699 .gpio = 90, /* CAM1_RST_N */
700 .settings = {
Sreesudhan Ramakrish Ramkumara92d0b72013-03-12 23:39:07 -0700701 [GPIOMUX_ACTIVE] = &cam_settings[3],
702 [GPIOMUX_SUSPENDED] = &gpio_suspend_config[1],
Kevin Chanbdcf7ef2012-08-24 08:33:33 -0700703 },
704 },
705 {
706 .gpio = 91, /* CAM2_STANDBY_N */
707 .settings = {
Sreesudhan Ramakrish Ramkumara92d0b72013-03-12 23:39:07 -0700708 [GPIOMUX_ACTIVE] = &cam_settings[3],
709 [GPIOMUX_SUSPENDED] = &gpio_suspend_config[1],
Kevin Chanbdcf7ef2012-08-24 08:33:33 -0700710 },
711 },
712 {
713 .gpio = 92, /* CAM2_RST_N */
714 .settings = {
Sreesudhan Ramakrish Ramkumara92d0b72013-03-12 23:39:07 -0700715 [GPIOMUX_ACTIVE] = &cam_settings[3],
716 [GPIOMUX_SUSPENDED] = &gpio_suspend_config[1],
Kevin Chanbdcf7ef2012-08-24 08:33:33 -0700717 },
718 },
719};
Damir Didjusto04d3c362013-01-07 14:30:53 -0800720
721static struct gpiomux_setting pri_auxpcm_act_cfg = {
722 .func = GPIOMUX_FUNC_1,
723 .drv = GPIOMUX_DRV_8MA,
724 .pull = GPIOMUX_PULL_NONE,
725};
726
727
728static struct gpiomux_setting pri_auxpcm_sus_cfg = {
729 .func = GPIOMUX_FUNC_1,
730 .drv = GPIOMUX_DRV_2MA,
731 .pull = GPIOMUX_PULL_DOWN,
732};
733
734static struct msm_gpiomux_config msm8974_pri_auxpcm_configs[] __initdata = {
735 {
736 .gpio = 65,
737 .settings = {
738 [GPIOMUX_SUSPENDED] = &pri_auxpcm_sus_cfg,
739 [GPIOMUX_ACTIVE] = &pri_auxpcm_act_cfg,
740 },
741 },
742 {
743 .gpio = 66,
744 .settings = {
745 [GPIOMUX_SUSPENDED] = &pri_auxpcm_sus_cfg,
746 [GPIOMUX_ACTIVE] = &pri_auxpcm_act_cfg,
747 },
748 },
749 {
750 .gpio = 67,
751 .settings = {
752 [GPIOMUX_SUSPENDED] = &pri_auxpcm_sus_cfg,
753 [GPIOMUX_ACTIVE] = &pri_auxpcm_act_cfg,
754 },
755 },
756 {
757 .gpio = 68,
758 .settings = {
759 [GPIOMUX_SUSPENDED] = &pri_auxpcm_sus_cfg,
760 [GPIOMUX_ACTIVE] = &pri_auxpcm_act_cfg,
761 },
762 },
763};
764
Sameer Thalappil8d686d42012-08-24 10:07:31 -0700765static struct msm_gpiomux_config wcnss_5wire_interface[] = {
766 {
767 .gpio = 36,
768 .settings = {
769 [GPIOMUX_ACTIVE] = &wcnss_5wire_active_cfg,
770 [GPIOMUX_SUSPENDED] = &wcnss_5wire_suspend_cfg,
771 },
772 },
773 {
774 .gpio = 37,
775 .settings = {
776 [GPIOMUX_ACTIVE] = &wcnss_5wire_active_cfg,
777 [GPIOMUX_SUSPENDED] = &wcnss_5wire_suspend_cfg,
778 },
779 },
780 {
781 .gpio = 38,
782 .settings = {
783 [GPIOMUX_ACTIVE] = &wcnss_5wire_active_cfg,
784 [GPIOMUX_SUSPENDED] = &wcnss_5wire_suspend_cfg,
785 },
786 },
787 {
788 .gpio = 39,
789 .settings = {
790 [GPIOMUX_ACTIVE] = &wcnss_5wire_active_cfg,
791 [GPIOMUX_SUSPENDED] = &wcnss_5wire_suspend_cfg,
792 },
793 },
794 {
795 .gpio = 40,
796 .settings = {
797 [GPIOMUX_ACTIVE] = &wcnss_5wire_active_cfg,
798 [GPIOMUX_SUSPENDED] = &wcnss_5wire_suspend_cfg,
799 },
800 },
801};
Kevin Chanbdcf7ef2012-08-24 08:33:33 -0700802
Joonwoo Park187e9cb2012-08-24 22:47:53 -0700803static struct msm_gpiomux_config msm_taiko_config[] __initdata = {
804 {
805 .gpio = 63, /* SYS_RST_N */
806 .settings = {
807 [GPIOMUX_SUSPENDED] = &taiko_reset,
808 },
Joonwoo Parkeb84dc72012-09-12 10:22:49 -0700809 },
810 {
811 .gpio = 72, /* CDC_INT */
812 .settings = {
813 [GPIOMUX_SUSPENDED] = &taiko_int,
814 },
815 },
Joonwoo Park187e9cb2012-08-24 22:47:53 -0700816};
817
Subhash Jadavani102f0ce2012-12-14 21:25:59 +0530818#ifdef CONFIG_MMC_MSM_SDC3_SUPPORT
819static struct gpiomux_setting sdc3_clk_actv_cfg = {
820 .func = GPIOMUX_FUNC_2,
821 .drv = GPIOMUX_DRV_8MA,
822 .pull = GPIOMUX_PULL_NONE,
823};
824
825static struct gpiomux_setting sdc3_cmd_data_0_3_actv_cfg = {
826 .func = GPIOMUX_FUNC_2,
827 .drv = GPIOMUX_DRV_8MA,
828 .pull = GPIOMUX_PULL_UP,
829};
830
831static struct gpiomux_setting sdc3_suspend_cfg = {
832 .func = GPIOMUX_FUNC_GPIO,
833 .drv = GPIOMUX_DRV_2MA,
834 .pull = GPIOMUX_PULL_DOWN,
835};
836
837static struct gpiomux_setting sdc3_data_1_suspend_cfg = {
838 .func = GPIOMUX_FUNC_GPIO,
839 .drv = GPIOMUX_DRV_8MA,
840 .pull = GPIOMUX_PULL_UP,
841};
842
843static struct msm_gpiomux_config msm8974_sdc3_configs[] __initdata = {
844 {
845 /* DAT3 */
846 .gpio = 35,
847 .settings = {
848 [GPIOMUX_ACTIVE] = &sdc3_cmd_data_0_3_actv_cfg,
849 [GPIOMUX_SUSPENDED] = &sdc3_suspend_cfg,
850 },
851 },
852 {
853 /* DAT2 */
854 .gpio = 36,
855 .settings = {
856 [GPIOMUX_ACTIVE] = &sdc3_cmd_data_0_3_actv_cfg,
857 [GPIOMUX_SUSPENDED] = &sdc3_suspend_cfg,
858 },
859 },
860 {
861 /* DAT1 */
862 .gpio = 37,
863 .settings = {
864 [GPIOMUX_ACTIVE] = &sdc3_cmd_data_0_3_actv_cfg,
865 [GPIOMUX_SUSPENDED] = &sdc3_data_1_suspend_cfg,
866 },
867 },
868 {
869 /* DAT0 */
870 .gpio = 38,
871 .settings = {
872 [GPIOMUX_ACTIVE] = &sdc3_cmd_data_0_3_actv_cfg,
873 [GPIOMUX_SUSPENDED] = &sdc3_suspend_cfg,
874 },
875 },
876 {
877 /* CMD */
878 .gpio = 39,
879 .settings = {
880 [GPIOMUX_ACTIVE] = &sdc3_cmd_data_0_3_actv_cfg,
881 [GPIOMUX_SUSPENDED] = &sdc3_suspend_cfg,
882 },
883 },
884 {
885 /* CLK */
886 .gpio = 40,
887 .settings = {
888 [GPIOMUX_ACTIVE] = &sdc3_clk_actv_cfg,
889 [GPIOMUX_SUSPENDED] = &sdc3_suspend_cfg,
890 },
891 },
892};
893
894static void msm_gpiomux_sdc3_install(void)
895{
896 msm_gpiomux_install(msm8974_sdc3_configs,
897 ARRAY_SIZE(msm8974_sdc3_configs));
898}
899#else
900static void msm_gpiomux_sdc3_install(void) {}
901#endif /* CONFIG_MMC_MSM_SDC3_SUPPORT */
902
903#ifdef CONFIG_MMC_MSM_SDC4_SUPPORT
904static struct gpiomux_setting sdc4_clk_actv_cfg = {
905 .func = GPIOMUX_FUNC_2,
906 .drv = GPIOMUX_DRV_8MA,
907 .pull = GPIOMUX_PULL_NONE,
908};
909
910static struct gpiomux_setting sdc4_cmd_data_0_3_actv_cfg = {
911 .func = GPIOMUX_FUNC_2,
912 .drv = GPIOMUX_DRV_8MA,
913 .pull = GPIOMUX_PULL_UP,
914};
915
916static struct gpiomux_setting sdc4_suspend_cfg = {
917 .func = GPIOMUX_FUNC_GPIO,
918 .drv = GPIOMUX_DRV_2MA,
919 .pull = GPIOMUX_PULL_DOWN,
920};
921
922static struct gpiomux_setting sdc4_data_1_suspend_cfg = {
923 .func = GPIOMUX_FUNC_GPIO,
924 .drv = GPIOMUX_DRV_8MA,
925 .pull = GPIOMUX_PULL_UP,
926};
927
928static struct msm_gpiomux_config msm8974_sdc4_configs[] __initdata = {
929 {
930 /* DAT3 */
931 .gpio = 92,
932 .settings = {
933 [GPIOMUX_ACTIVE] = &sdc4_cmd_data_0_3_actv_cfg,
934 [GPIOMUX_SUSPENDED] = &sdc4_suspend_cfg,
935 },
936 },
937 {
938 /* DAT2 */
939 .gpio = 94,
940 .settings = {
941 [GPIOMUX_ACTIVE] = &sdc4_cmd_data_0_3_actv_cfg,
942 [GPIOMUX_SUSPENDED] = &sdc4_suspend_cfg,
943 },
944 },
945 {
946 /* DAT1 */
947 .gpio = 95,
948 .settings = {
949 [GPIOMUX_ACTIVE] = &sdc4_cmd_data_0_3_actv_cfg,
950 [GPIOMUX_SUSPENDED] = &sdc4_data_1_suspend_cfg,
951 },
952 },
953 {
954 /* DAT0 */
955 .gpio = 96,
956 .settings = {
957 [GPIOMUX_ACTIVE] = &sdc4_cmd_data_0_3_actv_cfg,
958 [GPIOMUX_SUSPENDED] = &sdc4_suspend_cfg,
959 },
960 },
961 {
962 /* CMD */
963 .gpio = 91,
964 .settings = {
965 [GPIOMUX_ACTIVE] = &sdc4_cmd_data_0_3_actv_cfg,
966 [GPIOMUX_SUSPENDED] = &sdc4_suspend_cfg,
967 },
968 },
969 {
970 /* CLK */
971 .gpio = 93,
972 .settings = {
973 [GPIOMUX_ACTIVE] = &sdc4_clk_actv_cfg,
974 [GPIOMUX_SUSPENDED] = &sdc4_suspend_cfg,
975 },
976 },
977};
978
979static void msm_gpiomux_sdc4_install(void)
980{
981 msm_gpiomux_install(msm8974_sdc4_configs,
982 ARRAY_SIZE(msm8974_sdc4_configs));
983}
984#else
985static void msm_gpiomux_sdc4_install(void) {}
986#endif /* CONFIG_MMC_MSM_SDC4_SUPPORT */
987
Abhimanyu Kapur90ced6e2012-06-26 17:41:25 -0700988void __init msm_8974_init_gpiomux(void)
Sathish Ambleyb17ec7e2012-04-03 15:20:03 -0700989{
990 int rc;
991
Rohit Vaswani341c2032012-11-08 18:49:29 -0800992 rc = msm_gpiomux_init_dt();
Sathish Ambleyb17ec7e2012-04-03 15:20:03 -0700993 if (rc) {
Rohit Vaswani341c2032012-11-08 18:49:29 -0800994 pr_err("%s failed %d\n", __func__, rc);
Sathish Ambleyb17ec7e2012-04-03 15:20:03 -0700995 return;
996 }
997
Sathish Ambleye3154b42012-04-09 10:59:09 -0700998#if defined(CONFIG_KS8851) || defined(CONFIG_KS8851_MODULE)
999 msm_gpiomux_install(msm_eth_configs, ARRAY_SIZE(msm_eth_configs));
1000#endif
Sathish Ambleyb17ec7e2012-04-03 15:20:03 -07001001 msm_gpiomux_install(msm_blsp_configs, ARRAY_SIZE(msm_blsp_configs));
Saket Saurabheac58342013-02-05 12:20:18 +05301002 msm_gpiomux_install(msm_blsp2_uart7_configs,
1003 ARRAY_SIZE(msm_blsp2_uart7_configs));
Sameer Thalappil8d686d42012-08-24 10:07:31 -07001004 msm_gpiomux_install(wcnss_5wire_interface,
1005 ARRAY_SIZE(wcnss_5wire_interface));
Sagar Dhariaa8e6b0a2012-08-10 20:52:30 -06001006
1007 msm_gpiomux_install(msm8974_slimbus_config,
1008 ARRAY_SIZE(msm8974_slimbus_config));
1009
Amy Maloche9e99a792012-08-15 23:27:51 -07001010 msm_gpiomux_install(msm_touch_configs, ARRAY_SIZE(msm_touch_configs));
Amy Maloche527acc42012-12-07 18:40:54 -08001011 msm_gpiomux_install(hap_lvl_shft_config,
1012 ARRAY_SIZE(hap_lvl_shft_config));
Kevin Chanbdcf7ef2012-08-24 08:33:33 -07001013
1014 msm_gpiomux_install(msm_sensor_configs, ARRAY_SIZE(msm_sensor_configs));
Joonwoo Park187e9cb2012-08-24 22:47:53 -07001015
Subhash Jadavani76aa7de2012-10-10 09:58:17 +05301016 msm_gpiomux_install(&sd_card_det, 1);
Subhash Jadavani102f0ce2012-12-14 21:25:59 +05301017 msm_gpiomux_sdc3_install();
1018 msm_gpiomux_sdc4_install();
Subhash Jadavani76aa7de2012-10-10 09:58:17 +05301019
Joonwoo Park187e9cb2012-08-24 22:47:53 -07001020 msm_gpiomux_install(msm_taiko_config, ARRAY_SIZE(msm_taiko_config));
Ujwal Patel74b5df42012-08-13 22:50:13 -07001021
Manu Gautamac7265b2012-11-21 11:49:15 +05301022 msm_gpiomux_install(msm_hsic_configs, ARRAY_SIZE(msm_hsic_configs));
1023 msm_gpiomux_install(msm_hsic_hub_configs,
1024 ARRAY_SIZE(msm_hsic_hub_configs));
1025
Ujwal Patel74b5df42012-08-13 22:50:13 -07001026 msm_gpiomux_install(msm_hdmi_configs, ARRAY_SIZE(msm_hdmi_configs));
Stepan Moskovchenkoebd05412013-02-07 20:39:56 -08001027 if (machine_is_msm8974_fluid())
1028 msm_gpiomux_install(msm_mhl_configs,
1029 ARRAY_SIZE(msm_mhl_configs));
Stepan Moskovchenko95108b82012-11-27 14:28:11 -08001030
Damir Didjusto04d3c362013-01-07 14:30:53 -08001031 msm_gpiomux_install(msm8974_pri_auxpcm_configs,
1032 ARRAY_SIZE(msm8974_pri_auxpcm_configs));
1033
Siddhartha Agrawal6ab3e1c2013-02-22 18:30:37 -08001034 msm_gpiomux_install_nowrite(msm_lcd_configs,
1035 ARRAY_SIZE(msm_lcd_configs));
1036
Stepan Moskovchenko95108b82012-11-27 14:28:11 -08001037 if (machine_is_msm8974_rumi())
1038 msm_gpiomux_install(msm_rumi_blsp_configs,
1039 ARRAY_SIZE(msm_rumi_blsp_configs));
Sathish Ambleyb17ec7e2012-04-03 15:20:03 -07001040}