msm: board: Move 8960/8930 gpiomux to a dedicated file
Create a dedicated gpiomux board file, and move the gpiomux
configuration data into it. Camera gpiomux data is left in
the camera board file due to platform data scope
requirements.
Change-Id: I00570ce628e057bae77e12cc1037990eb01404ce
Signed-off-by: Stepan Moskovchenko <stepanm@codeaurora.org>
diff --git a/arch/arm/mach-msm/board-msm8960.c b/arch/arm/mach-msm/board-msm8960.c
index b4680f5..378c384 100644
--- a/arch/arm/mach-msm/board-msm8960.c
+++ b/arch/arm/mach-msm/board-msm8960.c
@@ -94,11 +94,6 @@
#include "pm-boot.h"
#include "msm_watchdog.h"
-#define PLATFORM_IS_CHARM25() \
- (machine_is_msm8960_cdp() && \
- (socinfo_get_platform_subtype() == 1) \
- )
-
static struct platform_device msm_fm_platform_init = {
.name = "iris_fm",
.id = -1,
@@ -106,448 +101,8 @@
#define KS8851_RST_GPIO 89
#define KS8851_IRQ_GPIO 90
-
-/* The SPI configurations apply to GSBI 1*/
-static struct gpiomux_setting spi_active = {
- .func = GPIOMUX_FUNC_1,
- .drv = GPIOMUX_DRV_12MA,
- .pull = GPIOMUX_PULL_NONE,
-};
-
-static struct gpiomux_setting spi_suspended_config = {
- .func = GPIOMUX_FUNC_GPIO,
- .drv = GPIOMUX_DRV_2MA,
- .pull = GPIOMUX_PULL_DOWN,
-};
-
-static struct gpiomux_setting spi_active_config2 = {
- .func = GPIOMUX_FUNC_2,
- .drv = GPIOMUX_DRV_8MA,
- .pull = GPIOMUX_PULL_NONE,
-};
-
-static struct gpiomux_setting spi_suspended_config2 = {
- .func = GPIOMUX_FUNC_GPIO,
- .drv = GPIOMUX_DRV_2MA,
- .pull = GPIOMUX_PULL_UP,
-};
-
-static struct gpiomux_setting gsbi3_suspended_cfg = {
- .func = GPIOMUX_FUNC_1,
- .drv = GPIOMUX_DRV_2MA,
- .pull = GPIOMUX_PULL_KEEPER,
-};
-
-static struct gpiomux_setting gsbi3_active_cfg = {
- .func = GPIOMUX_FUNC_1,
- .drv = GPIOMUX_DRV_8MA,
- .pull = GPIOMUX_PULL_NONE,
-};
-
-static struct gpiomux_setting gsbi5 = {
- .func = GPIOMUX_FUNC_1,
- .drv = GPIOMUX_DRV_8MA,
- .pull = GPIOMUX_PULL_NONE,
-};
-
-static struct gpiomux_setting gsbi10 = {
- .func = GPIOMUX_FUNC_2,
- .drv = GPIOMUX_DRV_8MA,
- .pull = GPIOMUX_PULL_NONE,
-};
-
-static struct gpiomux_setting gsbi12 = {
- .func = GPIOMUX_FUNC_1,
- .drv = GPIOMUX_DRV_8MA,
- .pull = GPIOMUX_PULL_NONE,
-};
-
-static struct gpiomux_setting cdc_mclk = {
- .func = GPIOMUX_FUNC_1,
- .drv = GPIOMUX_DRV_8MA,
- .pull = GPIOMUX_PULL_NONE,
-};
-
-static struct gpiomux_setting audio_auxpcm[] = {
- /* Suspended state */
- {
- .func = GPIOMUX_FUNC_GPIO,
- .drv = GPIOMUX_DRV_2MA,
- .pull = GPIOMUX_PULL_NONE,
- },
- /* Active state */
- {
- .func = GPIOMUX_FUNC_1,
- .drv = GPIOMUX_DRV_2MA,
- .pull = GPIOMUX_PULL_NONE,
- },
-};
-
-#if defined(CONFIG_KS8851) || defined(CONFIG_KS8851_MODULE)
-static struct gpiomux_setting gpio_eth_config = {
- .pull = GPIOMUX_PULL_NONE,
- .drv = GPIOMUX_DRV_8MA,
- .func = GPIOMUX_FUNC_GPIO,
-};
-#endif
-
-static struct gpiomux_setting slimbus = {
- .func = GPIOMUX_FUNC_1,
- .drv = GPIOMUX_DRV_8MA,
- .pull = GPIOMUX_PULL_KEEPER,
-};
-
-static struct msm_gpiomux_config msm8960_gpiomux_configs[NR_GPIO_IRQS] = {
-#if defined(CONFIG_KS8851) || defined(CONFIG_KS8851_MODULE)
- {
- .gpio = KS8851_IRQ_GPIO,
- .settings = {
- [GPIOMUX_SUSPENDED] = &gpio_eth_config,
- }
- },
- {
- .gpio = KS8851_RST_GPIO,
- .settings = {
- [GPIOMUX_SUSPENDED] = &gpio_eth_config,
- }
- },
-#endif
-};
-
-static struct msm_gpiomux_config msm8960_gsbi_configs[] __initdata = {
- {
- .gpio = 6, /* GSBI1 QUP SPI_DATA_MOSI */
- .settings = {
- [GPIOMUX_SUSPENDED] = &spi_suspended_config,
- [GPIOMUX_ACTIVE] = &spi_active,
- },
- },
- {
- .gpio = 7, /* GSBI1 QUP SPI_DATA_MISO */
- .settings = {
- [GPIOMUX_SUSPENDED] = &spi_suspended_config,
- [GPIOMUX_ACTIVE] = &spi_active,
- },
- },
- {
- .gpio = 8, /* GSBI1 QUP SPI_CS_N */
- .settings = {
- [GPIOMUX_SUSPENDED] = &spi_suspended_config,
- [GPIOMUX_ACTIVE] = &spi_active,
- },
- },
- {
- .gpio = 9, /* GSBI1 QUP SPI_CLK */
- .settings = {
- [GPIOMUX_SUSPENDED] = &spi_suspended_config,
- [GPIOMUX_ACTIVE] = &spi_active,
- },
- },
- {
- .gpio = 14, /* GSBI1 SPI_CS_1 */
- .settings = {
- [GPIOMUX_SUSPENDED] = &spi_suspended_config2,
- [GPIOMUX_ACTIVE] = &spi_active_config2,
- },
- },
- {
- .gpio = 16, /* GSBI3 I2C QUP SDA */
- .settings = {
- [GPIOMUX_SUSPENDED] = &gsbi3_suspended_cfg,
- [GPIOMUX_ACTIVE] = &gsbi3_active_cfg,
- },
- },
- {
- .gpio = 17, /* GSBI3 I2C QUP SCL */
- .settings = {
- [GPIOMUX_SUSPENDED] = &gsbi3_suspended_cfg,
- [GPIOMUX_ACTIVE] = &gsbi3_active_cfg,
- },
- },
- {
- .gpio = 22, /* GSBI5 UART2 */
- .settings = {
- [GPIOMUX_SUSPENDED] = &gsbi5,
- },
- },
- {
- .gpio = 23, /* GSBI5 UART2 */
- .settings = {
- [GPIOMUX_SUSPENDED] = &gsbi5,
- },
- },
- {
- .gpio = 24, /* GSBI5 UART2 */
- .settings = {
- [GPIOMUX_SUSPENDED] = &gsbi5,
- },
- },
- {
- .gpio = 25, /* GSBI5 UART2 */
- .settings = {
- [GPIOMUX_SUSPENDED] = &gsbi5,
- },
- },
- {
- .gpio = 44, /* GSBI12 I2C QUP SDA */
- .settings = {
- [GPIOMUX_SUSPENDED] = &gsbi12,
- },
- },
- {
- .gpio = 45, /* GSBI12 I2C QUP SCL */
- .settings = {
- [GPIOMUX_SUSPENDED] = &gsbi12,
- },
- },
- {
- .gpio = 73, /* GSBI10 I2C QUP SDA */
- .settings = {
- [GPIOMUX_SUSPENDED] = &gsbi10,
- },
- },
- {
- .gpio = 74, /* GSBI10 I2C QUP SCL */
- .settings = {
- [GPIOMUX_SUSPENDED] = &gsbi10,
- },
- },
-};
-
-static struct msm_gpiomux_config msm8960_slimbus_config[] __initdata = {
- {
- .gpio = 60, /* slimbus data */
- .settings = {
- [GPIOMUX_SUSPENDED] = &slimbus,
- },
- },
- {
- .gpio = 61, /* slimbus clk */
- .settings = {
- [GPIOMUX_SUSPENDED] = &slimbus,
- },
- },
-};
-
-static struct msm_gpiomux_config msm8960_audio_codec_configs[] __initdata = {
- {
- .gpio = 59,
- .settings = {
- [GPIOMUX_SUSPENDED] = &cdc_mclk,
- },
- },
-};
-
-static struct msm_gpiomux_config msm8960_audio_auxpcm_configs[] __initdata = {
- {
- .gpio = 63,
- .settings = {
- [GPIOMUX_SUSPENDED] = &audio_auxpcm[0],
- [GPIOMUX_ACTIVE] = &audio_auxpcm[1],
- },
- },
- {
- .gpio = 64,
- .settings = {
- [GPIOMUX_SUSPENDED] = &audio_auxpcm[0],
- [GPIOMUX_ACTIVE] = &audio_auxpcm[1],
- },
- },
- {
- .gpio = 65,
- .settings = {
- [GPIOMUX_SUSPENDED] = &audio_auxpcm[0],
- [GPIOMUX_ACTIVE] = &audio_auxpcm[1],
- },
- },
- {
- .gpio = 66,
- .settings = {
- [GPIOMUX_SUSPENDED] = &audio_auxpcm[0],
- [GPIOMUX_ACTIVE] = &audio_auxpcm[1],
- },
- },
-};
-
-static struct gpiomux_setting wcnss_5wire_suspend_cfg = {
- .func = GPIOMUX_FUNC_GPIO,
- .drv = GPIOMUX_DRV_2MA,
- .pull = GPIOMUX_PULL_UP,
-};
-
-static struct gpiomux_setting wcnss_5wire_active_cfg = {
- .func = GPIOMUX_FUNC_1,
- .drv = GPIOMUX_DRV_6MA,
- .pull = GPIOMUX_PULL_DOWN,
-};
-
-static struct msm_gpiomux_config wcnss_5wire_interface[] = {
- {
- .gpio = 84,
- .settings = {
- [GPIOMUX_ACTIVE] = &wcnss_5wire_active_cfg,
- [GPIOMUX_SUSPENDED] = &wcnss_5wire_suspend_cfg,
- },
- },
- {
- .gpio = 85,
- .settings = {
- [GPIOMUX_ACTIVE] = &wcnss_5wire_active_cfg,
- [GPIOMUX_SUSPENDED] = &wcnss_5wire_suspend_cfg,
- },
- },
- {
- .gpio = 86,
- .settings = {
- [GPIOMUX_ACTIVE] = &wcnss_5wire_active_cfg,
- [GPIOMUX_SUSPENDED] = &wcnss_5wire_suspend_cfg,
- },
- },
- {
- .gpio = 87,
- .settings = {
- [GPIOMUX_ACTIVE] = &wcnss_5wire_active_cfg,
- [GPIOMUX_SUSPENDED] = &wcnss_5wire_suspend_cfg,
- },
- },
- {
- .gpio = 88,
- .settings = {
- [GPIOMUX_ACTIVE] = &wcnss_5wire_active_cfg,
- [GPIOMUX_SUSPENDED] = &wcnss_5wire_suspend_cfg,
- },
- },
-};
-
-static struct gpiomux_setting cyts_resout_sus_cfg = {
- .func = GPIOMUX_FUNC_GPIO,
- .drv = GPIOMUX_DRV_6MA,
- .pull = GPIOMUX_PULL_UP,
-};
-
-static struct gpiomux_setting cyts_resout_act_cfg = {
- .func = GPIOMUX_FUNC_GPIO,
- .drv = GPIOMUX_DRV_6MA,
- .pull = GPIOMUX_PULL_UP,
-};
-
-static struct gpiomux_setting cyts_sleep_sus_cfg = {
- .func = GPIOMUX_FUNC_GPIO,
- .drv = GPIOMUX_DRV_6MA,
- .pull = GPIOMUX_PULL_DOWN,
-};
-
-static struct gpiomux_setting cyts_sleep_act_cfg = {
- .func = GPIOMUX_FUNC_GPIO,
- .drv = GPIOMUX_DRV_6MA,
- .pull = GPIOMUX_PULL_DOWN,
-};
-
-static struct gpiomux_setting cyts_int_act_cfg = {
- .func = GPIOMUX_FUNC_GPIO,
- .drv = GPIOMUX_DRV_8MA,
- .pull = GPIOMUX_PULL_UP,
-};
-
-static struct gpiomux_setting cyts_int_sus_cfg = {
- .func = GPIOMUX_FUNC_GPIO,
- .drv = GPIOMUX_DRV_2MA,
- .pull = GPIOMUX_PULL_DOWN,
-};
-
-static struct msm_gpiomux_config msm8960_cyts_configs[] __initdata = {
- { /* TS INTERRUPT */
- .gpio = 11,
- .settings = {
- [GPIOMUX_ACTIVE] = &cyts_int_act_cfg,
- [GPIOMUX_SUSPENDED] = &cyts_int_sus_cfg,
- },
- },
- { /* TS SLEEP */
- .gpio = 50,
- .settings = {
- [GPIOMUX_ACTIVE] = &cyts_sleep_act_cfg,
- [GPIOMUX_SUSPENDED] = &cyts_sleep_sus_cfg,
- },
- },
- { /* TS RESOUT */
- .gpio = 52,
- .settings = {
- [GPIOMUX_ACTIVE] = &cyts_resout_act_cfg,
- [GPIOMUX_SUSPENDED] = &cyts_resout_sus_cfg,
- },
- },
-};
-
-#ifdef CONFIG_USB_EHCI_MSM_HSIC
-static struct gpiomux_setting hsic_act_cfg = {
- .func = GPIOMUX_FUNC_1,
- .drv = GPIOMUX_DRV_12MA,
- .pull = GPIOMUX_PULL_NONE,
-};
-
-static struct gpiomux_setting hsic_sus_cfg = {
- .func = GPIOMUX_FUNC_GPIO,
- .drv = GPIOMUX_DRV_2MA,
- .pull = GPIOMUX_PULL_DOWN,
- .dir = GPIOMUX_OUT_LOW,
-};
-
-static struct gpiomux_setting hsic_hub_act_cfg = {
- .func = GPIOMUX_FUNC_GPIO,
- .drv = GPIOMUX_DRV_2MA,
- .pull = GPIOMUX_PULL_NONE,
-};
-
-static struct msm_gpiomux_config msm8960_hsic_configs[] = {
- {
- .gpio = 150, /*HSIC_STROBE */
- .settings = {
- [GPIOMUX_ACTIVE] = &hsic_act_cfg,
- [GPIOMUX_SUSPENDED] = &hsic_sus_cfg,
- },
- },
- {
- .gpio = 151, /* HSIC_DATA */
- .settings = {
- [GPIOMUX_ACTIVE] = &hsic_act_cfg,
- [GPIOMUX_SUSPENDED] = &hsic_sus_cfg,
- },
- },
- {
- .gpio = 91, /* HSIC_HUB_RESET */
- .settings = {
- [GPIOMUX_ACTIVE] = &hsic_hub_act_cfg,
- [GPIOMUX_SUSPENDED] = &hsic_sus_cfg,
- },
- },
-};
-#endif
-
#define HAP_SHIFT_LVL_OE_GPIO 47
-static struct gpiomux_setting hap_lvl_shft_suspended_config = {
- .func = GPIOMUX_FUNC_GPIO,
- .drv = GPIOMUX_DRV_2MA,
- .pull = GPIOMUX_PULL_DOWN,
-};
-
-static struct gpiomux_setting hap_lvl_shft_active_config = {
- .func = GPIOMUX_FUNC_GPIO,
- .drv = GPIOMUX_DRV_8MA,
- .pull = GPIOMUX_PULL_UP,
-};
-
-static struct msm_gpiomux_config hap_lvl_shft_config[] __initdata = {
- {
- .gpio = HAP_SHIFT_LVL_OE_GPIO,
- .settings = {
- [GPIOMUX_SUSPENDED] = &hap_lvl_shft_suspended_config,
- [GPIOMUX_ACTIVE] = &hap_lvl_shft_active_config,
- },
- },
-};
-
#if defined(CONFIG_GPIO_SX150X) || defined(CONFIG_GPIO_SX150X_MODULE)
struct sx150x_platform_data msm8960_sx150x_data[] = {
@@ -1102,75 +657,6 @@
#define AP2MDM_PMIC_RESET_N 80
#define AP2MDM_KPDPWR_N 81
-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_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 msm_gpiomux_config mdm_configs[] __initdata = {
- /* AP2MDM_STATUS */
- {
- .gpio = AP2MDM_STATUS,
- .settings = {
- [GPIOMUX_SUSPENDED] = &ap2mdm_cfg,
- }
- },
- /* MDM2AP_STATUS */
- {
- .gpio = MDM2AP_STATUS,
- .settings = {
- [GPIOMUX_SUSPENDED] = &mdm2ap_status_cfg,
- }
- },
- /* MDM2AP_ERRFATAL */
- {
- .gpio = MDM2AP_ERRFATAL,
- .settings = {
- [GPIOMUX_SUSPENDED] = &mdm2ap_errfatal_cfg,
- }
- },
- /* AP2MDM_ERRFATAL */
- {
- .gpio = AP2MDM_ERRFATAL,
- .settings = {
- [GPIOMUX_SUSPENDED] = &ap2mdm_cfg,
- }
- },
- /* AP2MDM_KPDPWR_N */
- {
- .gpio = AP2MDM_KPDPWR_N,
- .settings = {
- [GPIOMUX_SUSPENDED] = &ap2mdm_kpdpwr_n_cfg,
- }
- },
- /* AP2MDM_PMIC_RESET_N */
- {
- .gpio = AP2MDM_PMIC_RESET_N,
- .settings = {
- [GPIOMUX_SUSPENDED] = &ap2mdm_kpdpwr_n_cfg,
- }
- }
-};
-
static struct resource mdm_resources[] = {
{
.start = MDM2AP_ERRFATAL,
@@ -1228,49 +714,6 @@
&mdm_device,
};
-static int __init gpiomux_init(void)
-{
- int rc;
-
- rc = msm_gpiomux_init(NR_GPIO_IRQS);
- if (rc) {
- pr_err(KERN_ERR "msm_gpiomux_init failed %d\n", rc);
- return rc;
- }
-
- msm_gpiomux_install(msm8960_gpiomux_configs,
- ARRAY_SIZE(msm8960_gpiomux_configs));
-
- msm_gpiomux_install(msm8960_gsbi_configs,
- ARRAY_SIZE(msm8960_gsbi_configs));
-
- msm_gpiomux_install(msm8960_cyts_configs,
- ARRAY_SIZE(msm8960_cyts_configs));
-
- msm_gpiomux_install(msm8960_slimbus_config,
- ARRAY_SIZE(msm8960_slimbus_config));
-
- msm_gpiomux_install(msm8960_audio_codec_configs,
- ARRAY_SIZE(msm8960_audio_codec_configs));
-
- msm_gpiomux_install(msm8960_audio_auxpcm_configs,
- ARRAY_SIZE(msm8960_audio_auxpcm_configs));
-
- msm_gpiomux_install(wcnss_5wire_interface,
- ARRAY_SIZE(wcnss_5wire_interface));
-
- if (machine_is_msm8960_mtp() || machine_is_msm8960_fluid() ||
- machine_is_msm8960_liquid() || machine_is_msm8960_cdp())
- msm_gpiomux_install(hap_lvl_shft_config,
- ARRAY_SIZE(hap_lvl_shft_config));
-
- if (PLATFORM_IS_CHARM25())
- msm_gpiomux_install(mdm_configs,
- ARRAY_SIZE(mdm_configs));
-
- return 0;
-}
-
#define MSM_SHARED_RAM_PHYS 0x80000000
static void __init msm8960_map_io(void)
@@ -2489,16 +1932,11 @@
if (SOCINFO_VERSION_MAJOR(version) == 1)
return;
- if (PLATFORM_IS_CHARM25() || machine_is_msm8960_liquid()) {
- msm_gpiomux_install(msm8960_hsic_configs,
- ARRAY_SIZE(msm8960_hsic_configs));
-
+ if (PLATFORM_IS_CHARM25() || machine_is_msm8960_liquid())
platform_device_register(&msm_device_hsic_host);
- }
#endif
}
-
#ifdef CONFIG_ISL9519_CHARGER
static struct isl_platform_data isl_data __initdata = {
.valid_n_gpio = 0, /* Not required when notify-by-pmic */
@@ -2604,7 +2042,7 @@
msm8960_init_pmic();
msm8960_device_otg.dev.platform_data = &msm_otg_pdata;
- gpiomux_init();
+ msm8960_init_gpiomux();
msm8960_i2c_init();
msm_spm_init(msm_spm_data, ARRAY_SIZE(msm_spm_data));
msm_spm_l2_init(msm_spm_l2_data);
@@ -2637,7 +2075,7 @@
regulator_suppress_info_printing();
platform_device_register(&msm8960_device_rpm_regulator);
msm_clock_init(&msm8960_dummy_clock_init_data);
- gpiomux_init();
+ msm8960_init_gpiomux();
msm8960_init_pmic();
msm8960_device_qup_spi_gsbi1.dev.platform_data =
&msm8960_qup_spi_gsbi1_pdata;
@@ -2684,7 +2122,7 @@
}
#endif
msm_device_hsic_host.dev.platform_data = &msm_hsic_pdata;
- gpiomux_init();
+ msm8960_init_gpiomux();
msm8960_device_qup_spi_gsbi1.dev.platform_data =
&msm8960_qup_spi_gsbi1_pdata;
spi_register_board_info(spi_board_info, ARRAY_SIZE(spi_board_info));