/* Copyright (c) 2010-2011, The Linux Foundation. All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 and * only version 2 as published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. */ #include #include #include #include #include "gpiomux-8x60.h" static struct gpiomux_setting console_uart = { .func = GPIOMUX_FUNC_2, .drv = GPIOMUX_DRV_8MA, .pull = GPIOMUX_PULL_NONE, }; /* The SPI configurations apply to GSBI1 and GSBI10 */ static struct gpiomux_setting spi_active = { .func = GPIOMUX_FUNC_1, .drv = GPIOMUX_DRV_8MA, .pull = GPIOMUX_PULL_NONE, }; static struct gpiomux_setting spi_suspended_config = { .func = GPIOMUX_FUNC_1, .drv = GPIOMUX_DRV_2MA, .pull = GPIOMUX_PULL_DOWN, }; static struct gpiomux_setting spi_suspended_cs_config = { .func = GPIOMUX_FUNC_1, .drv = GPIOMUX_DRV_2MA, .pull = GPIOMUX_PULL_NONE, }; /* This I2C active configuration applies to GSBI3 and GSBI4 */ static struct gpiomux_setting i2c_active = { .func = GPIOMUX_FUNC_1, .drv = GPIOMUX_DRV_8MA, .pull = GPIOMUX_PULL_NONE, }; static struct gpiomux_setting i2c_active_gsbi7 = { .func = GPIOMUX_FUNC_1, .drv = GPIOMUX_DRV_12MA, .pull = GPIOMUX_PULL_NONE, }; /* This I2C suspended configuration applies to GSBI3, GSBI4 and GSBI7 */ static struct gpiomux_setting i2c_suspended_config = { .func = GPIOMUX_FUNC_1, .drv = GPIOMUX_DRV_2MA, .pull = GPIOMUX_PULL_NONE, }; static struct gpiomux_setting gsbi8 = { .func = GPIOMUX_FUNC_1, .drv = GPIOMUX_DRV_2MA, .pull = GPIOMUX_PULL_NONE, }; static struct gpiomux_setting ps_hold = { .func = GPIOMUX_FUNC_1, .drv = GPIOMUX_DRV_12MA, .pull = GPIOMUX_PULL_NONE, }; static struct gpiomux_setting msm_snddev_active_config = { .func = GPIOMUX_FUNC_1, .drv = GPIOMUX_DRV_2MA, .pull = GPIOMUX_PULL_NONE, }; static struct gpiomux_setting msm_snddev_suspend_config = { .func = GPIOMUX_FUNC_GPIO, .drv = GPIOMUX_DRV_2MA, .pull = GPIOMUX_PULL_DOWN, }; static struct gpiomux_setting ebi2_a_d = { .func = GPIOMUX_FUNC_1, .drv = GPIOMUX_DRV_8MA, .pull = GPIOMUX_PULL_UP, }; static struct gpiomux_setting ebi2_oe = { .func = GPIOMUX_FUNC_1, .drv = GPIOMUX_DRV_8MA, .pull = GPIOMUX_PULL_UP, }; static struct gpiomux_setting ebi2_we = { .func = GPIOMUX_FUNC_1, .drv = GPIOMUX_DRV_8MA, .pull = GPIOMUX_PULL_UP, }; static struct gpiomux_setting ebi2_cs2 = { .func = GPIOMUX_FUNC_2, .drv = GPIOMUX_DRV_8MA, .pull = GPIOMUX_PULL_UP, }; static struct gpiomux_setting ebi2_cs3 = { .func = GPIOMUX_FUNC_1, .drv = GPIOMUX_DRV_8MA, .pull = GPIOMUX_PULL_UP, }; #if defined(CONFIG_USB_PEHCI_HCD) || defined(CONFIG_USB_PEHCI_HCD_MODULE) static struct gpiomux_setting ebi2_cs4 = { .func = GPIOMUX_FUNC_1, .drv = GPIOMUX_DRV_8MA, .pull = GPIOMUX_PULL_UP, }; #endif static struct gpiomux_setting ebi2_adv = { .func = GPIOMUX_FUNC_1, .drv = GPIOMUX_DRV_8MA, .pull = GPIOMUX_PULL_UP, }; #if defined(CONFIG_USB_PEHCI_HCD) || defined(CONFIG_USB_PEHCI_HCD_MODULE) static struct gpiomux_setting usb_isp1763_actv_cfg = { .func = GPIOMUX_FUNC_GPIO, .drv = GPIOMUX_DRV_8MA, .pull = GPIOMUX_PULL_NONE, }; static struct gpiomux_setting usb_isp1763_susp_cfg = { .func = GPIOMUX_FUNC_GPIO, .drv = GPIOMUX_DRV_2MA, .pull = GPIOMUX_PULL_DOWN, }; #endif static struct gpiomux_setting sdcc1_dat_0_3_cmd_actv_cfg = { .func = GPIOMUX_FUNC_1, .drv = GPIOMUX_DRV_10MA, .pull = GPIOMUX_PULL_UP, }; static struct gpiomux_setting sdcc1_dat_4_7_cmd_actv_cfg = { .func = GPIOMUX_FUNC_1, .drv = GPIOMUX_DRV_10MA, .pull = GPIOMUX_PULL_UP, }; static struct gpiomux_setting sdcc1_clk_actv_cfg = { .func = GPIOMUX_FUNC_1, .drv = GPIOMUX_DRV_16MA, .pull = GPIOMUX_PULL_NONE, }; static struct gpiomux_setting sdcc1_suspend_config = { .func = GPIOMUX_FUNC_GPIO, .drv = GPIOMUX_DRV_2MA, .pull = GPIOMUX_PULL_UP, }; static struct gpiomux_setting sdcc2_dat_0_3_cmd_actv_cfg = { .func = GPIOMUX_FUNC_2, .drv = GPIOMUX_DRV_10MA, .pull = GPIOMUX_PULL_UP, }; static struct gpiomux_setting sdcc2_dat_4_7_cmd_actv_cfg = { .func = GPIOMUX_FUNC_2, .drv = GPIOMUX_DRV_10MA, .pull = GPIOMUX_PULL_UP, }; static struct gpiomux_setting sdcc2_clk_actv_cfg = { .func = GPIOMUX_FUNC_2, .drv = GPIOMUX_DRV_16MA, .pull = GPIOMUX_PULL_NONE, }; static struct gpiomux_setting sdcc2_suspend_config = { .func = GPIOMUX_FUNC_GPIO, .drv = GPIOMUX_DRV_2MA, .pull = GPIOMUX_PULL_UP, }; static struct gpiomux_setting sdcc5_dat_0_3_cmd_actv_cfg = { .func = GPIOMUX_FUNC_2, .drv = GPIOMUX_DRV_10MA, .pull = GPIOMUX_PULL_UP, }; static struct gpiomux_setting sdcc5_clk_actv_cfg = { .func = GPIOMUX_FUNC_2, .drv = GPIOMUX_DRV_16MA, .pull = GPIOMUX_PULL_NONE, }; static struct gpiomux_setting sdcc5_suspend_config = { .func = GPIOMUX_FUNC_GPIO, .drv = GPIOMUX_DRV_2MA, .pull = GPIOMUX_PULL_UP, }; static struct gpiomux_setting aux_pcm_active_config = { .func = GPIOMUX_FUNC_1, .drv = GPIOMUX_DRV_2MA, .pull = GPIOMUX_PULL_NONE, }; static struct gpiomux_setting aux_pcm_suspend_config = { .func = GPIOMUX_FUNC_GPIO, .drv = GPIOMUX_DRV_2MA, .pull = GPIOMUX_PULL_NONE, }; static struct gpiomux_setting uart1dm_active = { .func = GPIOMUX_FUNC_1, .drv = GPIOMUX_DRV_8MA, .pull = GPIOMUX_PULL_NONE, }; static struct gpiomux_setting uart1dm_suspended = { .func = GPIOMUX_FUNC_GPIO, .drv = GPIOMUX_DRV_2MA, .pull = GPIOMUX_PULL_DOWN, }; static struct gpiomux_setting mi2s_active_cfg = { .func = GPIOMUX_FUNC_1, .drv = GPIOMUX_DRV_2MA, .pull = GPIOMUX_PULL_NONE, }; static struct gpiomux_setting mi2s_suspend_cfg = { .func = GPIOMUX_FUNC_GPIO, .drv = GPIOMUX_DRV_2MA, .pull = GPIOMUX_PULL_DOWN, }; static struct gpiomux_setting lcdc_active_cfg = { .func = GPIOMUX_FUNC_1, .drv = GPIOMUX_DRV_16MA, .pull = GPIOMUX_PULL_NONE, }; static struct gpiomux_setting lcdc_suspend_cfg = { .func = GPIOMUX_FUNC_GPIO, .drv = GPIOMUX_DRV_2MA, .pull = GPIOMUX_PULL_DOWN, }; static struct gpiomux_setting mdp_vsync_suspend_cfg = { .func = GPIOMUX_FUNC_GPIO, .drv = GPIOMUX_DRV_2MA, .pull = GPIOMUX_PULL_DOWN, }; static struct gpiomux_setting hdmi_suspend_cfg = { .func = GPIOMUX_FUNC_GPIO, .drv = GPIOMUX_DRV_2MA, .pull = GPIOMUX_PULL_DOWN, }; static struct gpiomux_setting mdm2ap_status_active_cfg = { .func = GPIOMUX_FUNC_GPIO, .drv = GPIOMUX_DRV_2MA, .pull = GPIOMUX_PULL_NONE, }; static struct gpiomux_setting mdm2ap_status_suspend_cfg = { .func = GPIOMUX_FUNC_GPIO, .drv = GPIOMUX_DRV_2MA, .pull = GPIOMUX_PULL_NONE, }; static struct gpiomux_setting cam_suspend_cfg = { .func = GPIOMUX_FUNC_GPIO, .drv = GPIOMUX_DRV_2MA, .pull = GPIOMUX_PULL_DOWN, }; static struct gpiomux_setting mdm2ap_sync_active_cfg = { .func = GPIOMUX_FUNC_GPIO, .drv = GPIOMUX_DRV_2MA, .pull = GPIOMUX_PULL_NONE, }; static struct gpiomux_setting mdm2ap_sync_suspend_cfg = { .func = GPIOMUX_FUNC_GPIO, .drv = GPIOMUX_DRV_2MA, .pull = GPIOMUX_PULL_NONE, }; static struct gpiomux_setting tm_active = { .func = GPIOMUX_FUNC_GPIO, .drv = GPIOMUX_DRV_2MA, .pull = GPIOMUX_PULL_UP, }; static struct gpiomux_setting tm_suspended = { .func = GPIOMUX_FUNC_GPIO, .drv = GPIOMUX_DRV_2MA, .pull = GPIOMUX_PULL_NONE, }; static struct gpiomux_setting tma_active = { .func = GPIOMUX_FUNC_GPIO, .drv = GPIOMUX_DRV_6MA, .pull = GPIOMUX_PULL_UP, }; static struct gpiomux_setting ts_suspended = { .func = GPIOMUX_FUNC_GPIO, .drv = GPIOMUX_DRV_2MA, .pull = GPIOMUX_PULL_DOWN, }; static struct gpiomux_setting mdp_vsync_active_cfg = { .func = GPIOMUX_FUNC_1, .drv = GPIOMUX_DRV_2MA, .pull = GPIOMUX_PULL_NONE, }; static struct gpiomux_setting hdmi_active_1_cfg = { .func = GPIOMUX_FUNC_1, .drv = GPIOMUX_DRV_2MA, .pull = GPIOMUX_PULL_UP, }; static struct gpiomux_setting hdmi_active_2_cfg = { .func = GPIOMUX_FUNC_1, .drv = GPIOMUX_DRV_16MA, .pull = GPIOMUX_PULL_NONE, }; static struct gpiomux_setting hdmi_active_3_cfg = { .func = GPIOMUX_FUNC_1, .drv = GPIOMUX_DRV_16MA, .pull = GPIOMUX_PULL_DOWN, }; static struct gpiomux_setting pmic_suspended_cfg = { .func = GPIOMUX_FUNC_GPIO, .drv = GPIOMUX_DRV_2MA, .pull = GPIOMUX_PULL_NONE, }; static struct gpiomux_setting cam_active_1_cfg = { .func = GPIOMUX_FUNC_1, .drv = GPIOMUX_DRV_2MA, .pull = GPIOMUX_PULL_NONE, }; static struct gpiomux_setting cam_active_2_cfg = { .func = GPIOMUX_FUNC_GPIO, .drv = GPIOMUX_DRV_2MA, .pull = GPIOMUX_PULL_NONE, }; static struct gpiomux_setting cam_active_3_cfg = { .func = GPIOMUX_FUNC_1, .drv = GPIOMUX_DRV_8MA, .pull = GPIOMUX_PULL_UP, }; static struct gpiomux_setting cam_active_4_cfg = { .func = GPIOMUX_FUNC_GPIO, .drv = GPIOMUX_DRV_2MA, .pull = GPIOMUX_PULL_DOWN, }; static struct gpiomux_setting cam_active_5_cfg = { .func = GPIOMUX_FUNC_1, .drv = GPIOMUX_DRV_4MA, .pull = GPIOMUX_PULL_NONE, }; #ifdef CONFIG_MSM_GSBI9_UART static struct gpiomux_setting uart9dm_active = { .func = GPIOMUX_FUNC_1, .drv = GPIOMUX_DRV_8MA , .pull = GPIOMUX_PULL_DOWN, }; static struct gpiomux_setting gsbi9 = { .func = GPIOMUX_FUNC_1, .drv = GPIOMUX_DRV_8MA, .pull = GPIOMUX_PULL_NONE, }; #endif static struct gpiomux_setting ap2mdm_cfg = { .func = GPIOMUX_FUNC_GPIO, .drv = GPIOMUX_DRV_8MA, .pull = GPIOMUX_PULL_DOWN, }; static struct gpiomux_setting mdm2ap_status_cfg = { .func = GPIOMUX_FUNC_GPIO, .drv = GPIOMUX_DRV_8MA, .pull = GPIOMUX_PULL_NONE, }; static struct gpiomux_setting mdm2ap_vfr_active_cfg = { .func = GPIOMUX_FUNC_GPIO, .drv = GPIOMUX_DRV_8MA, .pull = GPIOMUX_PULL_UP, }; static struct gpiomux_setting mdm2ap_vfr_suspend_cfg = { .func = GPIOMUX_FUNC_GPIO, .drv = GPIOMUX_DRV_8MA, .pull = GPIOMUX_PULL_DOWN, }; static struct gpiomux_setting mdm2ap_errfatal_cfg = { .func = GPIOMUX_FUNC_GPIO, .drv = GPIOMUX_DRV_16MA, .pull = GPIOMUX_PULL_DOWN, }; static struct gpiomux_setting ap2mdm_kpdpwr_n_cfg = { .func = GPIOMUX_FUNC_GPIO, .drv = GPIOMUX_DRV_8MA, .pull = GPIOMUX_PULL_NONE, }; static struct gpiomux_setting mdm2ap_vddmin_active_cfg = { .func = GPIOMUX_FUNC_GPIO, .drv = GPIOMUX_DRV_2MA, .pull = GPIOMUX_PULL_NONE, }; static struct gpiomux_setting mdm2ap_vddmin_suspend_cfg = { .func = GPIOMUX_FUNC_GPIO, .drv = GPIOMUX_DRV_2MA, .pull = GPIOMUX_PULL_NONE, }; static struct msm_gpiomux_config msm8x60_gsbi_configs[] __initdata = { { .gpio = 33, .settings = { [GPIOMUX_SUSPENDED] = &spi_suspended_config, [GPIOMUX_ACTIVE] = &spi_active, }, }, { .gpio = 34, .settings = { [GPIOMUX_SUSPENDED] = &spi_suspended_config, [GPIOMUX_ACTIVE] = &spi_active, }, }, { .gpio = 35, .settings = { [GPIOMUX_SUSPENDED] = &spi_suspended_cs_config, [GPIOMUX_ACTIVE] = &spi_active, }, }, { .gpio = 36, .settings = { [GPIOMUX_SUSPENDED] = &spi_suspended_config, [GPIOMUX_ACTIVE] = &spi_active, }, }, { .gpio = 43, .settings = { [GPIOMUX_SUSPENDED] = &i2c_suspended_config, [GPIOMUX_ACTIVE] = &i2c_active, }, }, { .gpio = 44, .settings = { [GPIOMUX_SUSPENDED] = &i2c_suspended_config, [GPIOMUX_ACTIVE] = &i2c_active, }, }, { .gpio = 47, .settings = { [GPIOMUX_SUSPENDED] = &i2c_suspended_config, [GPIOMUX_ACTIVE] = &i2c_active, }, }, { .gpio = 48, .settings = { [GPIOMUX_SUSPENDED] = &i2c_suspended_config, [GPIOMUX_ACTIVE] = &i2c_active, }, }, { .gpio = 59, .settings = { [GPIOMUX_SUSPENDED] = &i2c_suspended_config, [GPIOMUX_ACTIVE] = &i2c_active_gsbi7, }, }, { .gpio = 60, .settings = { [GPIOMUX_SUSPENDED] = &i2c_suspended_config, [GPIOMUX_ACTIVE] = &i2c_active_gsbi7, }, }, { .gpio = 64, .settings = { [GPIOMUX_SUSPENDED] = &gsbi8, }, }, { .gpio = 65, .settings = { [GPIOMUX_SUSPENDED] = &gsbi8, }, }, }; static struct msm_gpiomux_config msm8x60_fluid_gsbi_configs[] __initdata = { { .gpio = 70, .settings = { [GPIOMUX_SUSPENDED] = &spi_suspended_config, [GPIOMUX_ACTIVE] = &spi_active, }, }, { .gpio = 72, .settings = { [GPIOMUX_SUSPENDED] = &spi_suspended_cs_config, [GPIOMUX_ACTIVE] = &spi_active, }, }, { .gpio = 73, .settings = { [GPIOMUX_SUSPENDED] = &spi_suspended_config, [GPIOMUX_ACTIVE] = &spi_active, }, }, }; static struct msm_gpiomux_config msm8x60_ebi2_configs[] __initdata = { { .gpio = 40, .settings = { [GPIOMUX_SUSPENDED] = &ebi2_cs2, }, }, { .gpio = 123, .settings = { [GPIOMUX_SUSPENDED] = &ebi2_a_d, }, }, { .gpio = 124, .settings = { [GPIOMUX_SUSPENDED] = &ebi2_a_d, }, }, { .gpio = 125, .settings = { [GPIOMUX_SUSPENDED] = &ebi2_a_d, }, }, { .gpio = 126, .settings = { [GPIOMUX_SUSPENDED] = &ebi2_a_d, }, }, { .gpio = 127, .settings = { [GPIOMUX_SUSPENDED] = &ebi2_a_d, }, }, { .gpio = 128, .settings = { [GPIOMUX_SUSPENDED] = &ebi2_a_d, }, }, { .gpio = 129, .settings = { [GPIOMUX_SUSPENDED] = &ebi2_a_d, }, }, { .gpio = 130, .settings = { [GPIOMUX_SUSPENDED] = &ebi2_a_d, }, }, #if defined(CONFIG_USB_PEHCI_HCD) || defined(CONFIG_USB_PEHCI_HCD_MODULE) /* ISP VDD_3V3_EN */ { .gpio = 132, .settings = { [GPIOMUX_SUSPENDED] = &ebi2_cs4, }, }, #endif { .gpio = 133, .settings = { [GPIOMUX_SUSPENDED] = &ebi2_cs3, }, }, { .gpio = 135, .settings = { [GPIOMUX_SUSPENDED] = &ebi2_a_d, }, }, { .gpio = 136, .settings = { [GPIOMUX_SUSPENDED] = &ebi2_a_d, }, }, { .gpio = 137, .settings = { [GPIOMUX_SUSPENDED] = &ebi2_a_d, }, }, { .gpio = 138, .settings = { [GPIOMUX_SUSPENDED] = &ebi2_a_d, }, }, { .gpio = 139, .settings = { [GPIOMUX_SUSPENDED] = &ebi2_a_d, }, }, { .gpio = 140, .settings = { [GPIOMUX_SUSPENDED] = &ebi2_a_d, }, }, { .gpio = 141, .settings = { [GPIOMUX_SUSPENDED] = &ebi2_a_d, }, }, { .gpio = 142, .settings = { [GPIOMUX_SUSPENDED] = &ebi2_a_d, }, }, { .gpio = 143, .settings = { [GPIOMUX_SUSPENDED] = &ebi2_a_d, }, }, { .gpio = 144, .settings = { [GPIOMUX_SUSPENDED] = &ebi2_a_d, }, }, { .gpio = 145, .settings = { [GPIOMUX_SUSPENDED] = &ebi2_a_d, }, }, { .gpio = 146, .settings = { [GPIOMUX_SUSPENDED] = &ebi2_a_d, }, }, { .gpio = 147, .settings = { [GPIOMUX_SUSPENDED] = &ebi2_a_d, }, }, { .gpio = 148, .settings = { [GPIOMUX_SUSPENDED] = &ebi2_a_d, }, }, { .gpio = 149, .settings = { [GPIOMUX_SUSPENDED] = &ebi2_a_d, }, }, { .gpio = 150, .settings = { [GPIOMUX_SUSPENDED] = &ebi2_a_d, }, }, { .gpio = 151, .settings = { [GPIOMUX_SUSPENDED] = &ebi2_oe, }, }, { .gpio = 153, .settings = { [GPIOMUX_SUSPENDED] = &ebi2_adv, }, }, { .gpio = 157, .settings = { [GPIOMUX_SUSPENDED] = &ebi2_we, }, }, }; #if defined(CONFIG_USB_PEHCI_HCD) || defined(CONFIG_USB_PEHCI_HCD_MODULE) static struct msm_gpiomux_config msm8x60_isp_usb_configs[] __initdata = { { .gpio = 117, .settings = { [GPIOMUX_ACTIVE] = &usb_isp1763_actv_cfg, [GPIOMUX_SUSPENDED] = &usb_isp1763_susp_cfg, }, }, { .gpio = 152, .settings = { [GPIOMUX_ACTIVE] = &usb_isp1763_actv_cfg, [GPIOMUX_SUSPENDED] = &usb_isp1763_susp_cfg, }, }, }; #endif static struct msm_gpiomux_config msm8x60_uart_configs[] __initdata = { { /* UARTDM_TX */ .gpio = 53, .settings = { [GPIOMUX_ACTIVE] = &uart1dm_active, [GPIOMUX_SUSPENDED] = &uart1dm_suspended, }, }, { /* UARTDM_RX */ .gpio = 54, .settings = { [GPIOMUX_ACTIVE] = &uart1dm_active, [GPIOMUX_SUSPENDED] = &uart1dm_suspended, }, }, { /* UARTDM_CTS */ .gpio = 55, .settings = { [GPIOMUX_ACTIVE] = &uart1dm_active, [GPIOMUX_SUSPENDED] = &uart1dm_suspended, }, }, { /* UARTDM_RFR */ .gpio = 56, .settings = { [GPIOMUX_ACTIVE] = &uart1dm_active, [GPIOMUX_SUSPENDED] = &uart1dm_suspended, }, }, { .gpio = 115, .settings = { [GPIOMUX_SUSPENDED] = &console_uart, }, }, { .gpio = 116, .settings = { [GPIOMUX_SUSPENDED] = &console_uart, }, }, #if !defined(CONFIG_USB_PEHCI_HCD) && !defined(CONFIG_USB_PEHCI_HCD_MODULE) /* USB ISP1763 may also use 117 GPIO */ { .gpio = 117, .settings = { [GPIOMUX_SUSPENDED] = &console_uart, }, }, #endif { .gpio = 118, .settings = { [GPIOMUX_SUSPENDED] = &console_uart, }, }, }; #ifdef CONFIG_MSM_GSBI9_UART static struct msm_gpiomux_config msm8x60_charm_uart_configs[] __initdata = { { /* UART9DM RX */ .gpio = 66, .settings = { [GPIOMUX_ACTIVE] = &uart9dm_active, [GPIOMUX_SUSPENDED] = &gsbi9, }, }, { /* UART9DM TX */ .gpio = 67, .settings = { [GPIOMUX_ACTIVE] = &uart9dm_active, [GPIOMUX_SUSPENDED] = &gsbi9, }, }, }; #endif static struct msm_gpiomux_config msm8x60_ts_configs[] __initdata = { { /* TS_ATTN */ .gpio = 58, .settings = { [GPIOMUX_SUSPENDED] = &ts_suspended, }, }, }; static struct msm_gpiomux_config msm8x60_tmg200_configs[] __initdata = { { .gpio = 61, .settings = { [GPIOMUX_ACTIVE] = &tm_active, [GPIOMUX_SUSPENDED] = &tm_suspended, }, }, }; static struct msm_gpiomux_config msm8x60_tma300_configs[] __initdata = { { .gpio = 61, .settings = { [GPIOMUX_ACTIVE] = &tma_active, [GPIOMUX_SUSPENDED] = &tm_suspended, }, }, }; static struct msm_gpiomux_config msm8x60_aux_pcm_configs[] __initdata = { { .gpio = 111, .settings = { [GPIOMUX_ACTIVE] = &aux_pcm_active_config, [GPIOMUX_SUSPENDED] = &aux_pcm_suspend_config, }, }, { .gpio = 112, .settings = { [GPIOMUX_ACTIVE] = &aux_pcm_active_config, [GPIOMUX_SUSPENDED] = &aux_pcm_suspend_config, }, }, { .gpio = 113, .settings = { [GPIOMUX_ACTIVE] = &aux_pcm_active_config, [GPIOMUX_SUSPENDED] = &aux_pcm_suspend_config, }, }, { .gpio = 114, .settings = { [GPIOMUX_ACTIVE] = &aux_pcm_active_config, [GPIOMUX_SUSPENDED] = &aux_pcm_suspend_config, }, }, }; static struct msm_gpiomux_config msm8x60_sdc_configs[] __initdata = { /* SDCC1 data[0] */ { .gpio = 159, .settings = { [GPIOMUX_ACTIVE] = &sdcc1_dat_0_3_cmd_actv_cfg, [GPIOMUX_SUSPENDED] = &sdcc1_suspend_config, }, }, /* SDCC1 data[1] */ { .gpio = 160, .settings = { [GPIOMUX_ACTIVE] = &sdcc1_dat_0_3_cmd_actv_cfg, [GPIOMUX_SUSPENDED] = &sdcc1_suspend_config, }, }, /* SDCC1 data[2] */ { .gpio = 161, .settings = { [GPIOMUX_ACTIVE] = &sdcc1_dat_0_3_cmd_actv_cfg, [GPIOMUX_SUSPENDED] = &sdcc1_suspend_config, }, }, /* SDCC1 data[3] */ { .gpio = 162, .settings = { [GPIOMUX_ACTIVE] = &sdcc1_dat_0_3_cmd_actv_cfg, [GPIOMUX_SUSPENDED] = &sdcc1_suspend_config, }, }, /* SDCC1 data[4] */ { .gpio = 163, .settings = { [GPIOMUX_ACTIVE] = &sdcc1_dat_4_7_cmd_actv_cfg, [GPIOMUX_SUSPENDED] = &sdcc1_suspend_config, }, }, /* SDCC1 data[5] */ { .gpio = 164, .settings = { [GPIOMUX_ACTIVE] = &sdcc1_dat_4_7_cmd_actv_cfg, [GPIOMUX_SUSPENDED] = &sdcc1_suspend_config, }, }, /* SDCC1 data[6] */ { .gpio = 165, .settings = { [GPIOMUX_ACTIVE] = &sdcc1_dat_4_7_cmd_actv_cfg, [GPIOMUX_SUSPENDED] = &sdcc1_suspend_config, }, }, /* SDCC1 data[7] */ { .gpio = 166, .settings = { [GPIOMUX_ACTIVE] = &sdcc1_dat_4_7_cmd_actv_cfg, [GPIOMUX_SUSPENDED] = &sdcc1_suspend_config, }, }, /* SDCC1 CLK */ { .gpio = 167, .settings = { [GPIOMUX_ACTIVE] = &sdcc1_clk_actv_cfg, [GPIOMUX_SUSPENDED] = &sdcc1_suspend_config, }, }, /* SDCC1 CMD */ { .gpio = 168, .settings = { [GPIOMUX_ACTIVE] = &sdcc1_dat_0_3_cmd_actv_cfg, [GPIOMUX_SUSPENDED] = &sdcc1_suspend_config, }, }, }; static struct msm_gpiomux_config msm8x60_charm_sdc_configs[] __initdata = { /* SDCC5 cmd */ { .gpio = 95, .settings = { [GPIOMUX_ACTIVE] = &sdcc5_dat_0_3_cmd_actv_cfg, [GPIOMUX_SUSPENDED] = &sdcc5_suspend_config, }, }, /* SDCC5 data[3]*/ { .gpio = 96, .settings = { [GPIOMUX_ACTIVE] = &sdcc5_dat_0_3_cmd_actv_cfg, [GPIOMUX_SUSPENDED] = &sdcc5_suspend_config, }, }, /* SDCC5 clk */ { .gpio = 97, .settings = { [GPIOMUX_ACTIVE] = &sdcc5_clk_actv_cfg, [GPIOMUX_SUSPENDED] = &sdcc5_suspend_config, }, }, /* SDCC5 data[2]*/ { .gpio = 98, .settings = { [GPIOMUX_ACTIVE] = &sdcc5_dat_0_3_cmd_actv_cfg, [GPIOMUX_SUSPENDED] = &sdcc5_suspend_config, }, }, /* SDCC5 data[1]*/ { .gpio = 99, .settings = { [GPIOMUX_ACTIVE] = &sdcc5_dat_0_3_cmd_actv_cfg, [GPIOMUX_SUSPENDED] = &sdcc5_suspend_config, }, }, /* SDCC5 data[0]*/ { .gpio = 100, .settings = { [GPIOMUX_ACTIVE] = &sdcc5_dat_0_3_cmd_actv_cfg, [GPIOMUX_SUSPENDED] = &sdcc5_suspend_config, }, }, /* MDM2AP_SYNC */ { .gpio = 129, .settings = { [GPIOMUX_ACTIVE] = &mdm2ap_sync_active_cfg, [GPIOMUX_SUSPENDED] = &mdm2ap_sync_suspend_cfg, }, }, /* MDM2AP_VDDMIN */ { .gpio = 140, .settings = { [GPIOMUX_ACTIVE] = &mdm2ap_vddmin_active_cfg, [GPIOMUX_SUSPENDED] = &mdm2ap_vddmin_suspend_cfg, }, }, /* SDCC2 data[0] */ { .gpio = 143, .settings = { [GPIOMUX_ACTIVE] = &sdcc2_dat_0_3_cmd_actv_cfg, [GPIOMUX_SUSPENDED] = &sdcc2_suspend_config, }, }, /* SDCC2 data[1] */ { .gpio = 144, .settings = { [GPIOMUX_ACTIVE] = &sdcc2_dat_0_3_cmd_actv_cfg, [GPIOMUX_SUSPENDED] = &sdcc2_suspend_config, }, }, /* SDCC2 data[2] */ { .gpio = 145, .settings = { [GPIOMUX_ACTIVE] = &sdcc2_dat_0_3_cmd_actv_cfg, [GPIOMUX_SUSPENDED] = &sdcc2_suspend_config, }, }, /* SDCC2 data[3] */ { .gpio = 146, .settings = { [GPIOMUX_ACTIVE] = &sdcc2_dat_0_3_cmd_actv_cfg, [GPIOMUX_SUSPENDED] = &sdcc2_suspend_config, }, }, /* SDCC2 data[4] */ { .gpio = 147, .settings = { [GPIOMUX_ACTIVE] = &sdcc2_dat_4_7_cmd_actv_cfg, [GPIOMUX_SUSPENDED] = &sdcc2_suspend_config, }, }, /* SDCC2 data[5] */ { .gpio = 148, .settings = { [GPIOMUX_ACTIVE] = &sdcc2_dat_4_7_cmd_actv_cfg, [GPIOMUX_SUSPENDED] = &sdcc2_suspend_config, }, }, /* SDCC2 data[6] */ { .gpio = 149, .settings = { [GPIOMUX_ACTIVE] = &sdcc2_dat_4_7_cmd_actv_cfg, [GPIOMUX_SUSPENDED] = &sdcc2_suspend_config, }, }, /* SDCC2 data[7] */ { .gpio = 150, .settings = { [GPIOMUX_ACTIVE] = &sdcc2_dat_4_7_cmd_actv_cfg, [GPIOMUX_SUSPENDED] = &sdcc2_suspend_config, }, }, /* SDCC2 CMD */ { .gpio = 151, .settings = { [GPIOMUX_ACTIVE] = &sdcc2_dat_0_3_cmd_actv_cfg, [GPIOMUX_SUSPENDED] = &sdcc2_suspend_config, }, }, /* SDCC2 CLK */ { .gpio = 152, .settings = { [GPIOMUX_ACTIVE] = &sdcc2_clk_actv_cfg, [GPIOMUX_SUSPENDED] = &sdcc2_suspend_config, }, }, }; static struct msm_gpiomux_config msm8x60_snd_configs[] __initdata = { { .gpio = 108, .settings = { [GPIOMUX_ACTIVE] = &msm_snddev_active_config, [GPIOMUX_SUSPENDED] = &msm_snddev_suspend_config, }, }, { .gpio = 109, .settings = { [GPIOMUX_ACTIVE] = &msm_snddev_active_config, [GPIOMUX_SUSPENDED] = &msm_snddev_suspend_config, }, }, }; static struct msm_gpiomux_config msm8x60_mi2s_configs[] __initdata = { /* MI2S WS */ { .gpio = 101, .settings = { [GPIOMUX_ACTIVE] = &mi2s_active_cfg, [GPIOMUX_SUSPENDED] = &mi2s_suspend_cfg, }, }, /* MI2S SCLK */ { .gpio = 102, .settings = { [GPIOMUX_ACTIVE] = &mi2s_active_cfg, [GPIOMUX_SUSPENDED] = &mi2s_suspend_cfg, }, }, /* MI2S MCLK */ { .gpio = 103, .settings = { [GPIOMUX_ACTIVE] = &mi2s_active_cfg, [GPIOMUX_SUSPENDED] = &mi2s_suspend_cfg, }, }, /* MI2S SD3 */ { .gpio = 107, .settings = { [GPIOMUX_ACTIVE] = &mi2s_active_cfg, [GPIOMUX_SUSPENDED] = &mi2s_suspend_cfg, }, }, }; static struct msm_gpiomux_config msm8x60_lcdc_configs[] __initdata = { /* lcdc_pclk */ { .gpio = 0, .settings = { [GPIOMUX_ACTIVE] = &lcdc_active_cfg, [GPIOMUX_SUSPENDED] = &lcdc_suspend_cfg, }, }, /* lcdc_hsync */ { .gpio = 1, .settings = { [GPIOMUX_ACTIVE] = &lcdc_active_cfg, [GPIOMUX_SUSPENDED] = &lcdc_suspend_cfg, }, }, /* lcdc_vsync */ { .gpio = 2, .settings = { [GPIOMUX_ACTIVE] = &lcdc_active_cfg, [GPIOMUX_SUSPENDED] = &lcdc_suspend_cfg, }, }, /* lcdc_den */ { .gpio = 3, .settings = { [GPIOMUX_ACTIVE] = &lcdc_active_cfg, [GPIOMUX_SUSPENDED] = &lcdc_suspend_cfg, }, }, /* lcdc_red7 */ { .gpio = 4, .settings = { [GPIOMUX_ACTIVE] = &lcdc_active_cfg, [GPIOMUX_SUSPENDED] = &lcdc_suspend_cfg, }, }, /* lcdc_red6 */ { .gpio = 5, .settings = { [GPIOMUX_ACTIVE] = &lcdc_active_cfg, [GPIOMUX_SUSPENDED] = &lcdc_suspend_cfg, }, }, /* lcdc_red5 */ { .gpio = 6, .settings = { [GPIOMUX_ACTIVE] = &lcdc_active_cfg, [GPIOMUX_SUSPENDED] = &lcdc_suspend_cfg, }, }, /* lcdc_red4 */ { .gpio = 7, .settings = { [GPIOMUX_ACTIVE] = &lcdc_active_cfg, [GPIOMUX_SUSPENDED] = &lcdc_suspend_cfg, }, }, /* lcdc_red3 */ { .gpio = 8, .settings = { [GPIOMUX_ACTIVE] = &lcdc_active_cfg, [GPIOMUX_SUSPENDED] = &lcdc_suspend_cfg, }, }, /* lcdc_red2 */ { .gpio = 9, .settings = { [GPIOMUX_ACTIVE] = &lcdc_active_cfg, [GPIOMUX_SUSPENDED] = &lcdc_suspend_cfg, }, }, /* lcdc_red1 */ { .gpio = 10, .settings = { [GPIOMUX_ACTIVE] = &lcdc_active_cfg, [GPIOMUX_SUSPENDED] = &lcdc_suspend_cfg, }, }, /* lcdc_red0 */ { .gpio = 11, .settings = { [GPIOMUX_ACTIVE] = &lcdc_active_cfg, [GPIOMUX_SUSPENDED] = &lcdc_suspend_cfg, }, }, /* lcdc_grn7 */ { .gpio = 12, .settings = { [GPIOMUX_ACTIVE] = &lcdc_active_cfg, [GPIOMUX_SUSPENDED] = &lcdc_suspend_cfg, }, }, /* lcdc_grn6 */ { .gpio = 13, .settings = { [GPIOMUX_ACTIVE] = &lcdc_active_cfg, [GPIOMUX_SUSPENDED] = &lcdc_suspend_cfg, }, }, /* lcdc_grn5 */ { .gpio = 14, .settings = { [GPIOMUX_ACTIVE] = &lcdc_active_cfg, [GPIOMUX_SUSPENDED] = &lcdc_suspend_cfg, }, }, /* lcdc_grn4 */ { .gpio = 15, .settings = { [GPIOMUX_ACTIVE] = &lcdc_active_cfg, [GPIOMUX_SUSPENDED] = &lcdc_suspend_cfg, }, }, /* lcdc_grn3 */ { .gpio = 16, .settings = { [GPIOMUX_ACTIVE] = &lcdc_active_cfg, [GPIOMUX_SUSPENDED] = &lcdc_suspend_cfg, }, }, /* lcdc_grn2 */ { .gpio = 17, .settings = { [GPIOMUX_ACTIVE] = &lcdc_active_cfg, [GPIOMUX_SUSPENDED] = &lcdc_suspend_cfg, }, }, /* lcdc_grn1 */ { .gpio = 18, .settings = { [GPIOMUX_ACTIVE] = &lcdc_active_cfg, [GPIOMUX_SUSPENDED] = &lcdc_suspend_cfg, }, }, /* lcdc_grn0 */ { .gpio = 19, .settings = { [GPIOMUX_ACTIVE] = &lcdc_active_cfg, [GPIOMUX_SUSPENDED] = &lcdc_suspend_cfg, }, }, /* lcdc_blu7 */ { .gpio = 20, .settings = { [GPIOMUX_ACTIVE] = &lcdc_active_cfg, [GPIOMUX_SUSPENDED] = &lcdc_suspend_cfg, }, }, /* lcdc_blu6 */ { .gpio = 21, .settings = { [GPIOMUX_ACTIVE] = &lcdc_active_cfg, [GPIOMUX_SUSPENDED] = &lcdc_suspend_cfg, }, }, /* lcdc_blu5 */ { .gpio = 22, .settings = { [GPIOMUX_ACTIVE] = &lcdc_active_cfg, [GPIOMUX_SUSPENDED] = &lcdc_suspend_cfg, }, }, /* lcdc_blu4 */ { .gpio = 23, .settings = { [GPIOMUX_ACTIVE] = &lcdc_active_cfg, [GPIOMUX_SUSPENDED] = &lcdc_suspend_cfg, }, }, /* lcdc_blu3 */ { .gpio = 24, .settings = { [GPIOMUX_ACTIVE] = &lcdc_active_cfg, [GPIOMUX_SUSPENDED] = &lcdc_suspend_cfg, }, }, /* lcdc_blu2 */ { .gpio = 25, .settings = { [GPIOMUX_ACTIVE] = &lcdc_active_cfg, [GPIOMUX_SUSPENDED] = &lcdc_suspend_cfg, }, }, /* lcdc_blu1 */ { .gpio = 26, .settings = { [GPIOMUX_ACTIVE] = &lcdc_active_cfg, [GPIOMUX_SUSPENDED] = &lcdc_suspend_cfg, }, }, /* lcdc_blu0 */ { .gpio = 27, .settings = { [GPIOMUX_ACTIVE] = &lcdc_active_cfg, [GPIOMUX_SUSPENDED] = &lcdc_suspend_cfg, }, }, }; static struct msm_gpiomux_config msm8x60_mdp_vsync_configs[] __initdata = { { .gpio = 28, .settings = { [GPIOMUX_ACTIVE] = &mdp_vsync_active_cfg, [GPIOMUX_SUSPENDED] = &mdp_vsync_suspend_cfg, }, }, }; static struct msm_gpiomux_config msm8x60_hdmi_configs[] __initdata = { { .gpio = 169, .settings = { [GPIOMUX_ACTIVE] = &hdmi_active_1_cfg, [GPIOMUX_SUSPENDED] = &hdmi_suspend_cfg, }, }, { .gpio = 170, .settings = { [GPIOMUX_ACTIVE] = &hdmi_active_2_cfg, [GPIOMUX_SUSPENDED] = &hdmi_suspend_cfg, }, }, { .gpio = 171, .settings = { [GPIOMUX_ACTIVE] = &hdmi_active_2_cfg, [GPIOMUX_SUSPENDED] = &hdmi_suspend_cfg, }, }, { .gpio = 172, .settings = { [GPIOMUX_ACTIVE] = &hdmi_active_3_cfg, [GPIOMUX_SUSPENDED] = &hdmi_suspend_cfg, }, }, }; /* Because PMIC drivers do not use gpio-management routines and PMIC * gpios must never sleep, a "good enough" config is obtained by placing * the active config in the 'suspended' slot and leaving the active * config invalid: the suspended config will be installed at boot * and never replaced. */ static struct msm_gpiomux_config msm8x60_pmic_configs[] __initdata = { { .gpio = 88, .settings = { [GPIOMUX_SUSPENDED] = &pmic_suspended_cfg, }, }, { .gpio = 91, .settings = { [GPIOMUX_SUSPENDED] = &pmic_suspended_cfg, }, }, }; static struct msm_gpiomux_config msm8x60_common_configs[] __initdata = { /* MDM2AP_STATUS */ { .gpio = 77, .settings = { [GPIOMUX_ACTIVE] = &mdm2ap_status_active_cfg, [GPIOMUX_SUSPENDED] = &mdm2ap_status_suspend_cfg, }, }, /* PS_HOLD */ { .gpio = 92, .settings = { [GPIOMUX_SUSPENDED] = &ps_hold, }, }, }; static struct msm_gpiomux_config msm8x60_cam_configs[] __initdata = { { .gpio = 29, .settings = { [GPIOMUX_ACTIVE] = &cam_active_2_cfg, [GPIOMUX_SUSPENDED] = &cam_suspend_cfg, }, }, { .gpio = 30, .settings = { [GPIOMUX_ACTIVE] = &cam_active_1_cfg, [GPIOMUX_SUSPENDED] = &cam_suspend_cfg, }, }, { .gpio = 31, .settings = { [GPIOMUX_ACTIVE] = &cam_active_2_cfg, [GPIOMUX_SUSPENDED] = &cam_suspend_cfg, }, }, { .gpio = 32, .settings = { [GPIOMUX_ACTIVE] = &cam_active_5_cfg, [GPIOMUX_SUSPENDED] = &cam_suspend_cfg, }, }, { .gpio = 42, .settings = { [GPIOMUX_ACTIVE] = &cam_active_2_cfg, [GPIOMUX_SUSPENDED] = &cam_suspend_cfg, }, }, { .gpio = 47, .settings = { [GPIOMUX_ACTIVE] = &cam_active_3_cfg, [GPIOMUX_SUSPENDED] = &cam_suspend_cfg, }, }, { .gpio = 48, .settings = { [GPIOMUX_ACTIVE] = &cam_active_3_cfg, [GPIOMUX_SUSPENDED] = &cam_suspend_cfg, }, }, { .gpio = 105, .settings = { [GPIOMUX_ACTIVE] = &cam_active_4_cfg, [GPIOMUX_SUSPENDED] = &cam_suspend_cfg, }, }, { .gpio = 106, .settings = { [GPIOMUX_ACTIVE] = &cam_active_4_cfg, [GPIOMUX_SUSPENDED] = &cam_suspend_cfg, }, }, }; static struct msm_gpiomux_config msm8x60_charm_configs[] __initdata = { /* AP2MDM_WAKEUP */ { .gpio = 135, .settings = { [GPIOMUX_SUSPENDED] = &ap2mdm_cfg, } }, /* MDM2AP_VFR */ { .gpio = 94, .settings = { [GPIOMUX_ACTIVE] = &mdm2ap_vfr_active_cfg, [GPIOMUX_SUSPENDED] = &mdm2ap_vfr_suspend_cfg, } }, /* AP2MDM_STATUS */ { .gpio = 136, .settings = { [GPIOMUX_SUSPENDED] = &ap2mdm_cfg, } }, /* MDM2AP_STATUS */ { .gpio = 134, .settings = { [GPIOMUX_SUSPENDED] = &mdm2ap_status_cfg, } }, /* MDM2AP_WAKEUP */ { .gpio = 40, .settings = { [GPIOMUX_SUSPENDED] = &ap2mdm_cfg, } }, /* MDM2AP_ERRFATAL */ { .gpio = 133, .settings = { [GPIOMUX_SUSPENDED] = &mdm2ap_errfatal_cfg, } }, /* AP2MDM_ERRFATAL */ { .gpio = 93, .settings = { [GPIOMUX_SUSPENDED] = &ap2mdm_cfg, } }, /* AP2MDM_KPDPWR_N */ { .gpio = 132, .settings = { [GPIOMUX_SUSPENDED] = &ap2mdm_kpdpwr_n_cfg, } }, /* AP2MDM_PMIC_RESET_N */ { .gpio = 131, .settings = { [GPIOMUX_SUSPENDED] = &ap2mdm_kpdpwr_n_cfg, } } }; struct msm_gpiomux_configs msm8x60_surf_ffa_gpiomux_cfgs[] __initdata = { {msm8x60_gsbi_configs, ARRAY_SIZE(msm8x60_gsbi_configs)}, {msm8x60_ebi2_configs, ARRAY_SIZE(msm8x60_ebi2_configs)}, {msm8x60_uart_configs, ARRAY_SIZE(msm8x60_uart_configs)}, #if defined(CONFIG_USB_PEHCI_HCD) || defined(CONFIG_USB_PEHCI_HCD_MODULE) {msm8x60_isp_usb_configs, ARRAY_SIZE(msm8x60_isp_usb_configs)}, #endif {msm8x60_ts_configs, ARRAY_SIZE(msm8x60_ts_configs)}, {msm8x60_aux_pcm_configs, ARRAY_SIZE(msm8x60_aux_pcm_configs)}, {msm8x60_sdc_configs, ARRAY_SIZE(msm8x60_sdc_configs)}, {msm8x60_snd_configs, ARRAY_SIZE(msm8x60_snd_configs)}, {msm8x60_mi2s_configs, ARRAY_SIZE(msm8x60_mi2s_configs)}, {msm8x60_lcdc_configs, ARRAY_SIZE(msm8x60_lcdc_configs)}, {msm8x60_mdp_vsync_configs, ARRAY_SIZE(msm8x60_mdp_vsync_configs)}, {msm8x60_hdmi_configs, ARRAY_SIZE(msm8x60_hdmi_configs)}, {msm8x60_pmic_configs, ARRAY_SIZE(msm8x60_pmic_configs)}, {msm8x60_common_configs, ARRAY_SIZE(msm8x60_common_configs)}, {msm8x60_cam_configs, ARRAY_SIZE(msm8x60_cam_configs)}, {msm8x60_tmg200_configs, ARRAY_SIZE(msm8x60_tmg200_configs)}, {NULL, 0}, }; struct msm_gpiomux_configs msm8x60_fluid_gpiomux_cfgs[] __initdata = { {msm8x60_gsbi_configs, ARRAY_SIZE(msm8x60_gsbi_configs)}, {msm8x60_fluid_gsbi_configs, ARRAY_SIZE(msm8x60_fluid_gsbi_configs)}, {msm8x60_ebi2_configs, ARRAY_SIZE(msm8x60_ebi2_configs)}, {msm8x60_uart_configs, ARRAY_SIZE(msm8x60_uart_configs)}, {msm8x60_ts_configs, ARRAY_SIZE(msm8x60_ts_configs)}, {msm8x60_aux_pcm_configs, ARRAY_SIZE(msm8x60_aux_pcm_configs)}, {msm8x60_sdc_configs, ARRAY_SIZE(msm8x60_sdc_configs)}, {msm8x60_snd_configs, ARRAY_SIZE(msm8x60_snd_configs)}, {msm8x60_mi2s_configs, ARRAY_SIZE(msm8x60_mi2s_configs)}, {msm8x60_lcdc_configs, ARRAY_SIZE(msm8x60_lcdc_configs)}, {msm8x60_mdp_vsync_configs, ARRAY_SIZE(msm8x60_mdp_vsync_configs)}, {msm8x60_hdmi_configs, ARRAY_SIZE(msm8x60_hdmi_configs)}, {msm8x60_pmic_configs, ARRAY_SIZE(msm8x60_pmic_configs)}, {msm8x60_common_configs, ARRAY_SIZE(msm8x60_common_configs)}, {msm8x60_cam_configs, ARRAY_SIZE(msm8x60_cam_configs)}, {msm8x60_tma300_configs, ARRAY_SIZE(msm8x60_tma300_configs)}, {NULL, 0}, }; struct msm_gpiomux_configs msm8x60_charm_gpiomux_cfgs[] __initdata = { {msm8x60_gsbi_configs, ARRAY_SIZE(msm8x60_gsbi_configs)}, {msm8x60_uart_configs, ARRAY_SIZE(msm8x60_uart_configs)}, #ifdef CONFIG_MSM_GSBI9_UART {msm8x60_charm_uart_configs, ARRAY_SIZE(msm8x60_charm_uart_configs)}, #endif {msm8x60_ts_configs, ARRAY_SIZE(msm8x60_ts_configs)}, {msm8x60_aux_pcm_configs, ARRAY_SIZE(msm8x60_aux_pcm_configs)}, {msm8x60_sdc_configs, ARRAY_SIZE(msm8x60_sdc_configs)}, {msm8x60_snd_configs, ARRAY_SIZE(msm8x60_snd_configs)}, {msm8x60_mi2s_configs, ARRAY_SIZE(msm8x60_mi2s_configs)}, {msm8x60_lcdc_configs, ARRAY_SIZE(msm8x60_lcdc_configs)}, {msm8x60_mdp_vsync_configs, ARRAY_SIZE(msm8x60_mdp_vsync_configs)}, {msm8x60_hdmi_configs, ARRAY_SIZE(msm8x60_hdmi_configs)}, {msm8x60_pmic_configs, ARRAY_SIZE(msm8x60_pmic_configs)}, {msm8x60_common_configs, ARRAY_SIZE(msm8x60_common_configs)}, {msm8x60_cam_configs, ARRAY_SIZE(msm8x60_cam_configs)}, {msm8x60_tmg200_configs, ARRAY_SIZE(msm8x60_tmg200_configs)}, {msm8x60_charm_sdc_configs, ARRAY_SIZE(msm8x60_charm_sdc_configs)}, {msm8x60_charm_configs, ARRAY_SIZE(msm8x60_charm_configs)}, {NULL, 0}, }; struct msm_gpiomux_configs msm8x60_dragon_gpiomux_cfgs[] __initdata = { {msm8x60_gsbi_configs, ARRAY_SIZE(msm8x60_gsbi_configs)}, {msm8x60_ebi2_configs, ARRAY_SIZE(msm8x60_ebi2_configs)}, {msm8x60_uart_configs, ARRAY_SIZE(msm8x60_uart_configs)}, #if defined(CONFIG_USB_PEHCI_HCD) || defined(CONFIG_USB_PEHCI_HCD_MODULE) {msm8x60_isp_usb_configs, ARRAY_SIZE(msm8x60_isp_usb_configs)}, #endif {msm8x60_ts_configs, ARRAY_SIZE(msm8x60_ts_configs)}, {msm8x60_aux_pcm_configs, ARRAY_SIZE(msm8x60_aux_pcm_configs)}, {msm8x60_sdc_configs, ARRAY_SIZE(msm8x60_sdc_configs)}, {msm8x60_snd_configs, ARRAY_SIZE(msm8x60_snd_configs)}, {msm8x60_mi2s_configs, ARRAY_SIZE(msm8x60_mi2s_configs)}, {msm8x60_lcdc_configs, ARRAY_SIZE(msm8x60_lcdc_configs)}, {msm8x60_mdp_vsync_configs, ARRAY_SIZE(msm8x60_mdp_vsync_configs)}, {msm8x60_hdmi_configs, ARRAY_SIZE(msm8x60_hdmi_configs)}, {msm8x60_pmic_configs, ARRAY_SIZE(msm8x60_pmic_configs)}, {msm8x60_common_configs, ARRAY_SIZE(msm8x60_common_configs)}, {msm8x60_cam_configs, ARRAY_SIZE(msm8x60_cam_configs)}, {msm8x60_tmg200_configs, ARRAY_SIZE(msm8x60_tmg200_configs)}, {NULL, 0}, }; void __init msm8x60_init_gpiomux(struct msm_gpiomux_configs *cfgs) { int rc; rc = msm_gpiomux_init(NR_GPIO_IRQS); if (rc) { pr_err("%s failure: %d\n", __func__, rc); return; } while (cfgs->cfg) { msm_gpiomux_install(cfgs->cfg, cfgs->ncfg); ++cfgs; } }