int __init msm8930_init_gpiomux(void) { int rc = msm_gpiomux_init(NR_GPIO_IRQS); if (rc) { pr_err(KERN_ERR "msm_gpiomux_init failed %d\n", rc); return rc; } #if defined(CONFIG_KS8851) || defined(CONFIG_KS8851_MODULE) msm_gpiomux_install(msm8960_ethernet_configs, ARRAY_SIZE(msm8960_ethernet_configs)); #endif msm_gpiomux_install(msm8960_gsbi_configs, ARRAY_SIZE(msm8960_gsbi_configs)); msm_gpiomux_install(msm8960_atmel_configs, ARRAY_SIZE(msm8960_atmel_configs)); #ifdef CONFIG_2MIC_ES305 msm_gpiomux_install(audience_suspend_configs, ARRAY_SIZE(audience_suspend_configs)); #endif #ifdef CONFIG_SLIMBUS_MSM_CTRL 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_mbhc_configs, ARRAY_SIZE(msm8960_audio_mbhc_configs)); #else if (system_rev < CLK_REVISION) { msm_gpiomux_install(msm8960_audio_i2s_rx_codec_configs_rev10, ARRAY_SIZE(msm8960_audio_i2s_rx_codec_configs_rev10)); msm_gpiomux_install(msm8960_audio_i2s_tx_codec_configs_rev10, ARRAY_SIZE(msm8960_audio_i2s_tx_codec_configs_rev10)); } else { msm_gpiomux_install(msm8960_audio_i2s_rx_codec_configs, ARRAY_SIZE(msm8960_audio_i2s_rx_codec_configs)); msm_gpiomux_install(msm8960_audio_i2s_tx_codec_configs, ARRAY_SIZE(msm8960_audio_i2s_tx_codec_configs)); } #endif msm_gpiomux_install(msm8960_audio_spkr_configs, ARRAY_SIZE(msm8960_audio_spkr_configs)); msm_gpiomux_install(wcnss_5wire_interface, ARRAY_SIZE(wcnss_5wire_interface)); if (PLATFORM_IS_CHARM25()) msm_gpiomux_install(mdm_configs, ARRAY_SIZE(mdm_configs)); #ifdef CONFIG_FB_MSM_HDMI_MSM_PANEL msm_gpiomux_install(msm8960_hdmi_configs, ARRAY_SIZE(msm8960_hdmi_configs)); #endif #if defined(CONFIG_VIDEO_MHL_V2) msm_gpiomux_install(msm8930_mhl_configs, ARRAY_SIZE(msm8930_mhl_configs)); #endif msm_gpiomux_install(msm8960_mdp_vsync_configs, ARRAY_SIZE(msm8960_mdp_vsync_configs)); msm_gpiomux_install(gpio_keys_config_mux, ARRAY_SIZE(gpio_keys_config_mux)); #ifdef CONFIG_USB_SWITCH_TSU6721 msm_gpiomux_install(msm8930_tsu6721_configs, ARRAY_SIZE(msm8930_tsu6721_configs)); #endif #if defined(CONFIG_LEDS_AN30259A) msm_gpiomux_install(msm8930_leds_configs, ARRAY_SIZE(msm8930_leds_configs)); #endif msm_gpiomux_install(msm8930_sd_det_config, ARRAY_SIZE(msm8930_sd_det_config)); if (machine_is_msm8930_fluid() || machine_is_msm8930_mtp()) msm_gpiomux_install(msm8930_gyro_int_config, ARRAY_SIZE(msm8930_gyro_int_config)); msm_gpiomux_install(msm_sitar_config, ARRAY_SIZE(msm_sitar_config)); return 0; }
static void msm_gpiomux_sdc3_install(void) { msm_gpiomux_install(&sd_card_det, 1); msm_gpiomux_install(msm8226_sdc3_configs, ARRAY_SIZE(msm8226_sdc3_configs)); }
int __init msm8960_init_gpiomux(void) { int rc = msm_gpiomux_init(NR_GPIO_IRQS); if (rc) { pr_err(KERN_ERR "msm_gpiomux_init failed %d\n", rc); return rc; } #if defined(CONFIG_KS8851) || defined(CONFIG_KS8851_MODULE) if (socinfo_get_platform_subtype() != PLATFORM_SUBTYPE_SGLTE) msm_gpiomux_install(msm8960_ethernet_configs, ARRAY_SIZE(msm8960_ethernet_configs)); #endif 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)); #ifdef CONFIG_MMC_MSM_SDC4_SUPPORT msm_gpiomux_install(msm8960_sdcc4_configs, ARRAY_SIZE(msm8960_sdcc4_configs)); #endif if (machine_is_msm8960_mtp() || machine_is_msm8960_fluid() || machine_is_msm8960_liquid() || machine_is_msm8960_cdp()) { if (socinfo_get_platform_subtype() == PLATFORM_SUBTYPE_SGLTE) msm_gpiomux_install(hap_lvl_shft_config_sglte, ARRAY_SIZE(hap_lvl_shft_config_sglte)); else msm_gpiomux_install(hap_lvl_shft_config, ARRAY_SIZE(hap_lvl_shft_config)); } #ifdef CONFIG_USB_EHCI_MSM_HSIC if ((SOCINFO_VERSION_MAJOR(socinfo_get_version()) != 1) && machine_is_msm8960_liquid()) msm_gpiomux_install(msm8960_hsic_configs, ARRAY_SIZE(msm8960_hsic_configs)); if ((SOCINFO_VERSION_MAJOR(socinfo_get_version()) != 1) && machine_is_msm8960_liquid()) msm_gpiomux_install(msm8960_hsic_hub_configs, ARRAY_SIZE(msm8960_hsic_hub_configs)); #endif #ifdef CONFIG_FB_MSM_HDMI_MSM_PANEL msm_gpiomux_install(msm8960_hdmi_configs, ARRAY_SIZE(msm8960_hdmi_configs)); #endif msm_gpiomux_install(msm8960_mdp_vsync_configs, ARRAY_SIZE(msm8960_mdp_vsync_configs)); if (socinfo_get_platform_subtype() != PLATFORM_SUBTYPE_SGLTE) msm_gpiomux_install(msm8960_gsbi8_uartdm_configs, ARRAY_SIZE(msm8960_gsbi8_uartdm_configs)); if (socinfo_get_platform_subtype() == PLATFORM_SUBTYPE_SGLTE) msm_gpiomux_install(msm8960_gsbi8_uart_configs, ARRAY_SIZE(msm8960_gsbi8_uart_configs)); else msm_gpiomux_install(msm8960_gsbi5_uart_configs, ARRAY_SIZE(msm8960_gsbi5_uart_configs)); if (socinfo_get_platform_subtype() == PLATFORM_SUBTYPE_SGLTE) { /* For 8960 Fusion 2.2 Primary IPC */ msm_gpiomux_install(msm8960_fusion_gsbi_configs, ARRAY_SIZE(msm8960_fusion_gsbi_configs)); /* For SGLTE 8960 Fusion External VFR */ msm_gpiomux_install(msm8960_external_vfr_configs, ARRAY_SIZE(msm8960_external_vfr_configs)); } #ifdef CONFIG_MMC_MSM_SDC2_SUPPORT msm_gpiomux_install(msm8960_sdcc2_configs, ARRAY_SIZE(msm8960_sdcc2_configs)); #endif if (socinfo_get_platform_subtype() == PLATFORM_SUBTYPE_SGLTE) msm_gpiomux_install(sglte_configs, ARRAY_SIZE(sglte_configs)); return 0; }
static void msm_gpiomux_sdc3_install(void) { msm_gpiomux_install(msm8226_sdc3_configs, ARRAY_SIZE(msm8226_sdc3_configs)); }
/* LGE_CHANGE_E, [NFC][[email protected]], NFC Bring up*/ #if defined(CONFIG_BU52061NVX) static struct msm_gpiomux_config msm_hall_ic_configs[] __initdata = { { .gpio = 4, .settings = { [GPIOMUX_ACTIVE] = &hall_ic_sus_cfg, }, }, #ifdef CONFIG_BU52033NVX_CARKIT { .gpio = 5, .settings = { [GPIOMUX_ACTIVE] = &hall_ic_sus_cfg, }, }, #endif }; #endif /* CONFIG_BU52061NVX */ void __init msm8226_init_gpiomux(void) { int rc; #ifdef CONFIG_MACH_LGE hw_rev_type hw_rev; hw_rev = lge_get_board_revno(); #endif /* CONFIG_MACH_LGE */ rc = msm_gpiomux_init_dt(); if (rc) { pr_err("%s failed %d\n", __func__, rc); return; } #if defined(CONFIG_KS8851) || defined(CONFIG_KS8851_MODULE) msm_gpiomux_install(msm_eth_configs, ARRAY_SIZE(msm_eth_configs)); #endif msm_gpiomux_install(msm_keypad_configs, ARRAY_SIZE(msm_keypad_configs)); msm_gpiomux_install(msm_blsp_configs, ARRAY_SIZE(msm_blsp_configs)); msm_gpiomux_install(wcnss_5wire_interface, ARRAY_SIZE(wcnss_5wire_interface)); msm_gpiomux_install(&sd_card_det, 1); #ifdef CONFIG_MACH_LGE if(hw_rev < HW_REV_A2) { msm_gpiomux_install(msm_touch_configs, ARRAY_SIZE(msm_touch_configs)); printk(KERN_ERR "[Touch] HW_REV_A configs \n"); } else if(hw_rev == HW_REV_A2) { #if defined(CONFIG_TOUCHSCREEN_LGE_TS_MISC) msm_gpiomux_install(msm_touch_configs_rev_a2, ARRAY_SIZE(msm_touch_configs_rev_a2)); printk(KERN_ERR "[Touch] HW_REV_A2 configs \n"); #endif /* CONFIG_TOUCHSCREEN_LGE_TS_MISC */ } else if(hw_rev >= HW_REV_B) { #if defined (CONFIG_LGE_TOUCHSCREEN_SYNAPTIC) || defined(CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI4) msm_gpiomux_install(msm_touch_configs_rev_b, ARRAY_SIZE(msm_touch_configs_rev_b)); if(hw_rev == HW_REV_B) { printk(KERN_ERR "[Touch] HW_REV_B configs \n"); } else if (hw_rev >= HW_REV_B2) { printk(KERN_ERR "[Touch] over HW_REV_B2 configs \n"); } else {} #endif /* CONFIG_LGE_TOUCHSCREEN_SYNAPTIC || CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI4 */ } else {} #endif /* CONFIG_MACH_LGE */ #if defined(CONFIG_BU52061NVX) msm_gpiomux_install(msm_hall_ic_configs, ARRAY_SIZE(msm_hall_ic_configs)); #endif /* CONFIG_BU52061NVX */ msm_gpiomux_install_nowrite(msm_lcd_configs, ARRAY_SIZE(msm_lcd_configs)); msm_gpiomux_install(msm_sensor_configs, ARRAY_SIZE(msm_sensor_configs)); #ifndef CONFIG_MACH_LGE msm_gpiomux_install(msm_auxpcm_configs, ARRAY_SIZE(msm_auxpcm_configs)); if (of_board_is_cdp() || of_board_is_mtp() || of_board_is_xpm()) msm_gpiomux_install(usb_otg_sw_configs, ARRAY_SIZE(usb_otg_sw_configs)); #endif /* LGE_CHANGE_S, [NFC][[email protected]], NFC Bring up */ #ifdef CONFIG_LGE_NFC_PN547_C2 msm_gpiomux_install(msm_nfc_configs, ARRAY_SIZE(msm_nfc_configs)); #endif /* LGE_CHANGE_E, [NFC][[email protected]], NFC Bring up */ }
static void msm_gpiomux_sdc4_install(void) { msm_gpiomux_install(msm8974_sdc4_configs, ARRAY_SIZE(msm8974_sdc4_configs)); }
void __init msm_8974_init_gpiomux(void) { int rc; rc = msm_gpiomux_init_dt(); if (rc) { pr_err("%s failed %d\n", __func__, rc); return; } pr_err("%s:%d socinfo_get_version %x\n", __func__, __LINE__, socinfo_get_version()); msm_tlmm_misc_reg_write(TLMM_SPARE_REG, 0x5); #if defined(CONFIG_KS8851) || defined(CONFIG_KS8851_MODULE) msm_gpiomux_install(msm_eth_configs, ARRAY_SIZE(msm_eth_configs)); #endif msm_gpiomux_install(msm_blsp_configs, ARRAY_SIZE(msm_blsp_configs)); #if !defined(CONFIG_BT_BCM4335) && !defined(CONFIG_BT_BCM4339) msm_gpiomux_install(msm_blsp2_uart7_configs, ARRAY_SIZE(msm_blsp2_uart7_configs)); #endif #if defined(CONFIG_BT_BCM4335) || defined(CONFIG_BT_BCM4339) msm_gpiomux_btuart_install(); if(system_rev < 5) { msm_gpiomux_install(msm8974_btwifi_ldo_en_configs, ARRAY_SIZE(msm8974_btwifi_ldo_en_configs)); } #endif msm_gpiomux_install(wcnss_5wire_interface, ARRAY_SIZE(wcnss_5wire_interface)); msm_gpiomux_install(msm8974_slimbus_config, ARRAY_SIZE(msm8974_slimbus_config)); #if defined(CONFIG_MACH_LT03SKT) || defined(CONFIG_MACH_LT03KTT) ||defined(CONFIG_MACH_LT03LGT) msm_gpiomux_install(ext_buck_configs, ARRAY_SIZE(ext_buck_configs)); #endif msm_gpiomux_install(msm_grip_configs, ARRAY_SIZE(msm_grip_configs)); msm_gpiomux_install(hw_rev_configs, ARRAY_SIZE(hw_rev_configs)); msm_gpiomux_install(msm_sensor_configs, ARRAY_SIZE(msm_sensor_configs)); msm_gpiomux_install(&sd_card_det, 1); msm_gpiomux_sdc3_install(); msm_gpiomux_sdc4_install(); msm_gpiomux_install(msm_taiko_config, ARRAY_SIZE(msm_taiko_config)); msm_gpiomux_install(ear_send_end_config, ARRAY_SIZE(ear_send_end_config)); msm_gpiomux_install(msm_hsic_configs, ARRAY_SIZE(msm_hsic_configs)); msm_gpiomux_install(msm_hsic_hub_configs, ARRAY_SIZE(msm_hsic_hub_configs)); msm_gpiomux_install(msm_hdmi_configs, ARRAY_SIZE(msm_hdmi_configs)); #if defined(CONFIG_PN547_NFC) msm_gpiomux_install(msm_nfc_configs, ARRAY_SIZE(msm_nfc_configs)); #endif #if defined(CONFIG_BCM4335) || defined(CONFIG_BCM4335_MODULE) || defined(CONFIG_BCM4339) || defined(CONFIG_BCM4339_MODULE) msm_gpiomux_wlan_host_wakeup_install(); #endif /* defined(CONFIG_BCM4335) || defined(CONFIG_BCM4335_MODULE) || defined(CONFIG_BCM4339) || defined(CONFIG_BCM4339_MODULE) */ #ifdef CONFIG_VIDEO_MHL_V2 msm_gpiomux_install(mhl_configs, ARRAY_SIZE(mhl_configs)); #endif msm_gpiomux_install(msm8974_pri_auxpcm_configs, ARRAY_SIZE(msm8974_pri_auxpcm_configs)); msm_gpiomux_install_nowrite(msm_lcd_configs, ARRAY_SIZE(msm_lcd_configs)); #if !defined(CONFIG_BT_BCM4335) && !defined(CONFIG_BT_BCM4339) if (of_board_is_rumi()) msm_gpiomux_install(msm_rumi_blsp_configs, ARRAY_SIZE(msm_rumi_blsp_configs)); #endif msm_gpiomux_install(msm8974_audio_configs, ARRAY_SIZE(msm8974_audio_configs)); #ifdef CONFIG_INPUT_WACOM msm_gpiomux_install(msm8974_wacom_configs, ARRAY_SIZE(msm8974_wacom_configs)); #endif msm_gpiomux_install(msm_sensors_configs, ARRAY_SIZE(msm_sensors_configs)); if (socinfo_get_platform_subtype() == PLATFORM_SUBTYPE_MDM) msm_gpiomux_install(mdm_configs, ARRAY_SIZE(mdm_configs)); #ifdef CONFIG_USB_SWITCH_FSA9485 if (system_rev >= 7) msm_gpiomux_install(lt03_r04_muic_configs, ARRAY_SIZE(lt03_r04_muic_configs)); else msm_gpiomux_install(lt03_muic_configs, ARRAY_SIZE(lt03_muic_configs)); #endif msm_gpiomux_install(gpio_nc_configs,ARRAY_SIZE(gpio_nc_configs)); #ifdef CONFIG_FB_MSM_EDP_SAMSUNG msm_gpiomux_install(msm8974_lcd_config, ARRAY_SIZE(msm8974_lcd_config)); #endif }
/* LGE_CHANGE_E, [NFC][[email protected]], NFC Bring up*/ void __init msm8610_init_gpiomux(void) { int rc; hw_rev_type revision = lge_get_board_revno(); rc = msm_gpiomux_init_dt(); if (rc) { pr_err("%s failed %d\n", __func__, rc); return; } msm_gpiomux_install(msm_blsp_configs, ARRAY_SIZE(msm_blsp_configs)); printk(KERN_INFO"[%s][TOUCH] HW_Revision = %d ", __func__, revision ); /* Touch gpio Mux */ if(revision == HW_REV_A)/*For Incell Touch*/ { msm_gpiomux_install(aps_ts_configs, ARRAY_SIZE(aps_ts_configs)); msm_gpiomux_install(ags04_ts_configs, ARRAY_SIZE(ags04_ts_configs)); } else if(revision == HW_REV_B) msm_gpiomux_install(mms100s_ts_configs, ARRAY_SIZE(mms100s_ts_configs)); else if(revision == HW_REV_C) msm_gpiomux_install(mms100s_ts_configs_rev_c, ARRAY_SIZE(mms100s_ts_configs_rev_c)); else msm_gpiomux_install(synaptics_configs, ARRAY_SIZE(synaptics_configs)); msm_gpiomux_install(wcnss_5wire_interface, ARRAY_SIZE(wcnss_5wire_interface)); msm_gpiomux_install_nowrite(msm_lcd_configs, ARRAY_SIZE(msm_lcd_configs)); msm_gpiomux_install(msm_keypad_configs, ARRAY_SIZE(msm_keypad_configs)); if(revision == HW_REV_B) { msm_gpiomux_install(sd_card_det_rev_b, ARRAY_SIZE(sd_card_det)); } else { msm_gpiomux_install(sd_card_det, ARRAY_SIZE(sd_card_det)); } /* LGE_CHANGE_S, Add gpiomux for ex-ldo used gpio, 2013-09-04, [email protected] */ if(revision == HW_REV_0) { msm_gpiomux_install(msm_sensor_configs, ARRAY_SIZE(msm_sensor_configs)); printk(KERN_ERR " [Camera] below HW_REV_0 is using power source from PM\n"); } else if(revision == HW_REV_A) { msm_gpiomux_install(msm_sensor_configs, ARRAY_SIZE(msm_sensor_configs)); printk(KERN_ERR " [Camera] greater than HW_REV_A is using power source from Ex-LDO used GPIO\n"); } else { msm_gpiomux_install(msm_sensor_configs_rev_b, ARRAY_SIZE(msm_sensor_configs_rev_b)); printk(KERN_ERR " [Camera] In greater than HW_REV_B, MAIN_CAM0_RESET_N has been changed from GPIO_98 to GPIO_114\n"); } /* LGE_CHANGE_E, Add gpiomux for ex-ldo used gpio, 2013-09-04, [email protected] */ msm_gpiomux_install(msm_gpio_int_configs, ARRAY_SIZE(msm_gpio_int_configs)); /* LGE_CHANGE_S, [NFC][[email protected]], NFC Bring up */ #ifdef CONFIG_LGE_NFC_PN547 if (revision <= HW_REV_B){ msm_gpiomux_install(msm_nfc_configs, ARRAY_SIZE(msm_nfc_configs)); } else{ msm_gpiomux_install(msm_nfc_configs_rev_c, ARRAY_SIZE(msm_nfc_configs_rev_c)); } #endif /* LGE_CHANGE_E, [NFC][[email protected]], NFC Bring up */ }
int msm_camera_power_up(struct msm_camera_power_ctrl_t *ctrl, enum msm_camera_device_type_t device_type, struct msm_camera_i2c_client *sensor_i2c_client) { int rc = 0, index = 0, no_gpio = 0, ret = 0; struct msm_sensor_power_setting *power_setting = NULL; CDBG("%s:%d\n", __func__, __LINE__); if (!ctrl || !sensor_i2c_client) { pr_err("failed ctrl %p sensor_i2c_client %p\n", ctrl, sensor_i2c_client); return -EINVAL; } if (ctrl->gpio_conf->cam_gpiomux_conf_tbl != NULL) { pr_err("%s:%d mux install\n", __func__, __LINE__); msm_gpiomux_install( (struct msm_gpiomux_config *) ctrl->gpio_conf->cam_gpiomux_conf_tbl, ctrl->gpio_conf->cam_gpiomux_conf_tbl_size); } ret = msm_camera_pinctrl_init(ctrl); if (ret < 0) { pr_err("%s:%d Initialization of pinctrl failed\n", __func__, __LINE__); ctrl->cam_pinctrl_status = 0; } else { ctrl->cam_pinctrl_status = 1; } if(ctrl->gpio_conf->cam_gpio_req_tbl_size > 0) { rc = msm_camera_request_gpio_table( ctrl->gpio_conf->cam_gpio_req_tbl, ctrl->gpio_conf->cam_gpio_req_tbl_size, 1); if (rc < 0) no_gpio = rc; } if (ctrl->cam_pinctrl_status) { ret = pinctrl_select_state(ctrl->pinctrl_info.pinctrl, ctrl->pinctrl_info.gpio_state_active); if (ret) pr_err("%s:%d cannot set pin to active state", __func__, __LINE__); } for (index = 0; index < ctrl->power_setting_size; index++) { CDBG("%s index %d\n", __func__, index); power_setting = &ctrl->power_setting[index]; CDBG("%s type %d\n", __func__, power_setting->seq_type); switch (power_setting->seq_type) { case SENSOR_CLK: if (power_setting->seq_val >= ctrl->clk_info_size) { pr_err("%s clk index %d >= max %d\n", __func__, power_setting->seq_val, ctrl->clk_info_size); goto power_up_failed; } if (power_setting->config_val) ctrl->clk_info[power_setting->seq_val]. clk_rate = power_setting->config_val; rc = msm_cam_clk_enable(ctrl->dev, &ctrl->clk_info[0], (struct clk **)&power_setting->data[0], ctrl->clk_info_size, 1); if (rc < 0) { pr_err("%s: clk enable failed\n", __func__); goto power_up_failed; } break; case SENSOR_GPIO: if (no_gpio) { pr_err("%s: request gpio failed\n", __func__); return no_gpio; } if (power_setting->seq_val >= SENSOR_GPIO_MAX || !ctrl->gpio_conf->gpio_num_info) { pr_err("%s gpio index %d >= max %d\n", __func__, power_setting->seq_val, SENSOR_GPIO_MAX); goto power_up_failed; } if (!ctrl->gpio_conf->gpio_num_info->valid [power_setting->seq_val]) continue; CDBG("%s:%d gpio set val %d\n", __func__, __LINE__, ctrl->gpio_conf->gpio_num_info->gpio_num [power_setting->seq_val]); gpio_set_value_cansleep( ctrl->gpio_conf->gpio_num_info->gpio_num [power_setting->seq_val], power_setting->config_val); break; case SENSOR_VREG: if (power_setting->seq_val >= CAM_VREG_MAX) { pr_err("%s vreg index %d >= max %d\n", __func__, power_setting->seq_val, SENSOR_GPIO_MAX); goto power_up_failed; } msm_camera_config_single_vreg(ctrl->dev, &ctrl->cam_vreg[power_setting->seq_val], (struct regulator **)&power_setting->data[0], 1); break; case SENSOR_I2C_MUX: if (ctrl->i2c_conf && ctrl->i2c_conf->use_i2c_mux) msm_camera_enable_i2c_mux(ctrl->i2c_conf); break; default: pr_err("%s error power seq type %d\n", __func__, power_setting->seq_type); break; } if (power_setting->delay > 20) { msleep(power_setting->delay); } else if (power_setting->delay) { usleep_range(power_setting->delay * 1000, (power_setting->delay * 1000) + 1000); } } if (device_type == MSM_CAMERA_PLATFORM_DEVICE) { rc = sensor_i2c_client->i2c_func_tbl->i2c_util( sensor_i2c_client, MSM_CCI_INIT); if (rc < 0) { pr_err("%s cci_init failed\n", __func__); goto power_up_failed; } } CDBG("%s exit\n", __func__); return 0; power_up_failed: pr_err("%s:%d failed\n", __func__, __LINE__); for (index--; index >= 0; index--) { CDBG("%s index %d\n", __func__, index); power_setting = &ctrl->power_setting[index]; CDBG("%s type %d\n", __func__, power_setting->seq_type); switch (power_setting->seq_type) { case SENSOR_CLK: msm_cam_clk_enable(ctrl->dev, &ctrl->clk_info[0], (struct clk **)&power_setting->data[0], ctrl->clk_info_size, 0); break; case SENSOR_GPIO: if (!ctrl->gpio_conf->gpio_num_info->valid [power_setting->seq_val]) continue; gpio_set_value_cansleep( ctrl->gpio_conf->gpio_num_info->gpio_num [power_setting->seq_val], GPIOF_OUT_INIT_LOW); break; case SENSOR_VREG: msm_camera_config_single_vreg(ctrl->dev, &ctrl->cam_vreg[power_setting->seq_val], (struct regulator **)&power_setting->data[0], 0); break; case SENSOR_I2C_MUX: if (ctrl->i2c_conf && ctrl->i2c_conf->use_i2c_mux) msm_camera_disable_i2c_mux(ctrl->i2c_conf); break; default: pr_err("%s error power seq type %d\n", __func__, power_setting->seq_type); break; } if (power_setting->delay > 20) { msleep(power_setting->delay); } else if (power_setting->delay) { usleep_range(power_setting->delay * 1000, (power_setting->delay * 1000) + 1000); } } if (ctrl->cam_pinctrl_status) { ret = pinctrl_select_state(ctrl->pinctrl_info.pinctrl, ctrl->pinctrl_info.gpio_state_suspend); if (ret) pr_err("%s:%d cannot set pin to suspend state\n", __func__, __LINE__); devm_pinctrl_put(ctrl->pinctrl_info.pinctrl); } ctrl->cam_pinctrl_status = 0; if (ctrl->gpio_conf->cam_gpio_req_tbl_size > 0) { msm_camera_request_gpio_table( ctrl->gpio_conf->cam_gpio_req_tbl, ctrl->gpio_conf->cam_gpio_req_tbl_size, 0); } return rc; }
void __init apq8064_init_gpiomux(void) { int rc; int platform_version = socinfo_get_platform_version(); rc = msm_gpiomux_init(NR_GPIO_IRQS); if (rc) { pr_err(KERN_ERR "msm_gpiomux_init failed %d\n", rc); return; } #ifdef CONFIG_MMC_MSM_SDC4_SUPPORT if (system_rev < BOARD_REV08) msm_gpiomux_install(sdc4_interface, ARRAY_SIZE(sdc4_interface)); else msm_gpiomux_install(sdc2_interface, ARRAY_SIZE(sdc2_interface)); #else msm_gpiomux_install(wcnss_5wire_interface, ARRAY_SIZE(wcnss_5wire_interface)); #endif if (machine_is_mpq8064_cdp() || machine_is_mpq8064_hrd() || machine_is_mpq8064_dtv()) { msm_gpiomux_install(mpq8064_gsbi5_i2c_configs, ARRAY_SIZE(mpq8064_gsbi5_i2c_configs)); #ifdef CONFIG_MSM_VCAP msm_gpiomux_install(vcap_configs, ARRAY_SIZE(vcap_configs)); #endif msm_gpiomux_install(sx150x_int_configs, ARRAY_SIZE(sx150x_int_configs)); } else { #if defined(CONFIG_KS8851) || defined(CONFIG_KS8851_MODULE) msm_gpiomux_install(apq8064_ethernet_configs, ARRAY_SIZE(apq8064_ethernet_configs)); #endif msm_gpiomux_install(apq8064_gsbi_configs, ARRAY_SIZE(apq8064_gsbi_configs)); } msm_gpiomux_install(sensorhub_configs, ARRAY_SIZE(sensorhub_configs)); msm_gpiomux_install(apq8064_slimbus_config, ARRAY_SIZE(apq8064_slimbus_config)); msm_gpiomux_install(apq8064_audio_codec_configs, ARRAY_SIZE(apq8064_audio_codec_configs)); if (machine_is_mpq8064_cdp() || machine_is_mpq8064_hrd() || machine_is_mpq8064_dtv()) { msm_gpiomux_install(mpq8064_spkr_i2s_config, ARRAY_SIZE(mpq8064_spkr_i2s_config)); } pr_debug("%s(): audio-auxpcm: Include GPIO configs" " as audio is not the primary user" " for these GPIO Pins\n", __func__); if (machine_is_mpq8064_cdp() || machine_is_mpq8064_hrd() || machine_is_mpq8064_dtv()) msm_gpiomux_install(mpq8064_mi2s_configs, ARRAY_SIZE(mpq8064_mi2s_configs)); if (machine_is_apq8064_mtp()|| machine_is_JF()) { if (SOCINFO_VERSION_MINOR(platform_version) == 1) msm_gpiomux_install(mdm_i2s_configs, ARRAY_SIZE(mdm_i2s_configs)); else msm_gpiomux_install(mdm_configs, ARRAY_SIZE(mdm_configs)); } if (machine_is_apq8064_mtp()|| machine_is_JF()) { if (SOCINFO_VERSION_MINOR(platform_version) == 1) { msm_gpiomux_install(cyts_gpio_alt_config, ARRAY_SIZE(cyts_gpio_alt_config)); } else { msm_gpiomux_install(cyts_gpio_configs, ARRAY_SIZE(cyts_gpio_configs)); } } #ifdef CONFIG_USB_EHCI_MSM_HSIC if (machine_is_apq8064_mtp()|| machine_is_JF()) msm_gpiomux_install(apq8064_hsic_configs, ARRAY_SIZE(apq8064_hsic_configs)); #endif if (machine_is_apq8064_cdp() || machine_is_apq8064_liquid()) msm_gpiomux_install(apq8064_mxt_configs, ARRAY_SIZE(apq8064_mxt_configs)); msm_gpiomux_install(apq8064_hdmi_configs, ARRAY_SIZE(apq8064_hdmi_configs)); if (machine_is_mpq8064_cdp()) msm_gpiomux_install(mpq8064_ir_configs, ARRAY_SIZE(mpq8064_ir_configs)); if (system_rev < BOARD_REV09) msm_gpiomux_install(msm8064_sd_det_config, ARRAY_SIZE(msm8064_sd_det_config)); #if defined(CONFIG_VIDEO_MHL_V2) msm_gpiomux_install(msm8960_mhl_configs, ARRAY_SIZE(msm8960_mhl_configs)); #endif #if defined(CONFIG_LEDS_AN30259A) msm_gpiomux_install(apq8064_leds_configs, ARRAY_SIZE(apq8064_leds_configs)); #endif #ifdef CONFIG_MFD_MAX77693 msm_gpiomux_install(apq8064_muic_config, ARRAY_SIZE(apq8064_muic_config)); #endif msm_gpiomux_install(apq8064_sec_jack_configs, ARRAY_SIZE(apq8064_sec_jack_configs)); }
void __init apq8064_init_gpiomux(void) { int rc; int platform_version = socinfo_get_platform_version(); rc = msm_gpiomux_init(NR_GPIO_IRQS); if (rc) { pr_err(KERN_ERR "msm_gpiomux_init failed %d\n", rc); return; } msm_gpiomux_install(wcnss_5wire_interface, ARRAY_SIZE(wcnss_5wire_interface)); if (machine_is_mpq8064_cdp() || machine_is_mpq8064_hrd() || machine_is_mpq8064_dtv()) { msm_gpiomux_install(mpq8064_gsbi5_i2c_configs, ARRAY_SIZE(mpq8064_gsbi5_i2c_configs)); #ifdef CONFIG_MSM_VCAP msm_gpiomux_install(vcap_configs, ARRAY_SIZE(vcap_configs)); #endif msm_gpiomux_install(sx150x_int_configs, ARRAY_SIZE(sx150x_int_configs)); } else { #if defined(CONFIG_KS8851) || defined(CONFIG_KS8851_MODULE) msm_gpiomux_install(apq8064_ethernet_configs, ARRAY_SIZE(apq8064_ethernet_configs)); #endif msm_gpiomux_install(apq8064_gsbi_configs, ARRAY_SIZE(apq8064_gsbi_configs)); } msm_gpiomux_install(apq8064_slimbus_config, ARRAY_SIZE(apq8064_slimbus_config)); msm_gpiomux_install(apq8064_audio_codec_configs, ARRAY_SIZE(apq8064_audio_codec_configs)); if (machine_is_mpq8064_cdp() || machine_is_mpq8064_hrd() || machine_is_mpq8064_dtv()) { msm_gpiomux_install(mpq8064_spkr_i2s_config, ARRAY_SIZE(mpq8064_spkr_i2s_config)); } pr_debug("%s(): audio-auxpcm: Include GPIO configs" " as audio is not the primary user" " for these GPIO Pins\n", __func__); if (machine_is_mpq8064_cdp() || machine_is_mpq8064_hrd() || machine_is_mpq8064_dtv()) msm_gpiomux_install(mpq8064_mi2s_configs, ARRAY_SIZE(mpq8064_mi2s_configs)); msm_gpiomux_install(apq8064_ext_regulator_configs, ARRAY_SIZE(apq8064_ext_regulator_configs)); if (machine_is_apq8064_mtp()) { if (socinfo_get_platform_subtype() == PLATFORM_SUBTYPE_DSDA2) { msm_gpiomux_install(amdm_configs, ARRAY_SIZE(amdm_configs)); msm_gpiomux_install(bmdm_configs, ARRAY_SIZE(bmdm_configs)); } else if (socinfo_get_platform_subtype() == PLATFORM_SUBTYPE_SGLTE2) { msm_gpiomux_install(mdm_configs, ARRAY_SIZE(mdm_configs)); msm_gpiomux_install(sglte2_qsc_configs, ARRAY_SIZE(sglte2_qsc_configs)); /* GSBI4 UART GPIOs for Primary IPC */ msm_gpiomux_install(apq8064_uartdm_gsbi4_configs, ARRAY_SIZE(apq8064_uartdm_gsbi4_configs)); } else if (SOCINFO_VERSION_MINOR(platform_version) == 1) { msm_gpiomux_install(mdm_i2s_configs, ARRAY_SIZE(mdm_i2s_configs)); } else { msm_gpiomux_install(mdm_configs, ARRAY_SIZE(mdm_configs)); } } if (machine_is_apq8064_mtp()) { if (SOCINFO_VERSION_MINOR(platform_version) == 1) { msm_gpiomux_install(cyts_gpio_alt_config, ARRAY_SIZE(cyts_gpio_alt_config)); } else { msm_gpiomux_install(cyts_gpio_configs, ARRAY_SIZE(cyts_gpio_configs)); } } #ifdef CONFIG_USB_EHCI_MSM_HSIC if (machine_is_apq8064_mtp()) msm_gpiomux_install(apq8064_hsic_configs, ARRAY_SIZE(apq8064_hsic_configs)); #endif if (machine_is_apq8064_cdp() || machine_is_apq8064_liquid()) msm_gpiomux_install(apq8064_mxt_configs, ARRAY_SIZE(apq8064_mxt_configs)); msm_gpiomux_install(apq8064_hdmi_configs, ARRAY_SIZE(apq8064_hdmi_configs)); if (machine_is_mpq8064_cdp()) msm_gpiomux_install(mpq8064_ir_configs, ARRAY_SIZE(mpq8064_ir_configs)); #ifdef CONFIG_MMC_MSM_SDC2_SUPPORT msm_gpiomux_install(apq8064_sdc2_configs, ARRAY_SIZE(apq8064_sdc2_configs)); #endif #ifdef CONFIG_MMC_MSM_SDC4_SUPPORT msm_gpiomux_install(apq8064_sdc4_configs, ARRAY_SIZE(apq8064_sdc4_configs)); #endif msm_gpiomux_install(apq8064_sdc3_configs, ARRAY_SIZE(apq8064_sdc3_configs)); if (machine_is_mpq8064_hrd() || machine_is_mpq8064_dtv()) msm_gpiomux_install(mpq8064_uartdm_configs, ARRAY_SIZE(mpq8064_uartdm_configs)); }
void __init apq8064_init_gpiomux(void) { int rc; rc = msm_gpiomux_init(NR_GPIO_IRQS); if (rc) { pr_err(KERN_ERR "msm_gpiomux_init failed %d\n", rc); return; } msm_gpiomux_install(wcnss_5wire_interface, ARRAY_SIZE(wcnss_5wire_interface)); if (machine_is_mpq8064_cdp() || machine_is_mpq8064_hrd() || machine_is_mpq8064_dtv()) { msm_gpiomux_install(mpq8064_gsbi5_i2c_configs, ARRAY_SIZE(mpq8064_gsbi5_i2c_configs)); #ifdef CONFIG_MSM_VCAP msm_gpiomux_install(vcap_configs, ARRAY_SIZE(vcap_configs)); #endif msm_gpiomux_install(sx150x_int_configs, ARRAY_SIZE(sx150x_int_configs)); } else { #if defined(CONFIG_KS8851) || defined(CONFIG_KS8851_MODULE) msm_gpiomux_install(apq8064_ethernet_configs, ARRAY_SIZE(apq8064_ethernet_configs)); #endif msm_gpiomux_install(apq8064_gsbi_configs, ARRAY_SIZE(apq8064_gsbi_configs)); } msm_gpiomux_install(apq8064_slimbus_config, ARRAY_SIZE(apq8064_slimbus_config)); msm_gpiomux_install(apq8064_audio_codec_configs, ARRAY_SIZE(apq8064_audio_codec_configs)); if (machine_is_mpq8064_cdp() || machine_is_mpq8064_hrd() || machine_is_mpq8064_dtv()) { msm_gpiomux_install(mpq8064_spkr_i2s_config, ARRAY_SIZE(mpq8064_spkr_i2s_config)); } pr_debug("%s(): audio-auxpcm: Include GPIO configs" " as audio is not the primary user" " for these GPIO Pins\n", __func__); if (machine_is_mpq8064_cdp() || machine_is_mpq8064_hrd() || machine_is_mpq8064_dtv()) msm_gpiomux_install(mpq8064_mi2s_configs, ARRAY_SIZE(mpq8064_mi2s_configs)); msm_gpiomux_install(apq8064_ext_regulator_configs, ARRAY_SIZE(apq8064_ext_regulator_configs)); if (machine_is_apq8064_mtp()) msm_gpiomux_install(mdm_configs, ARRAY_SIZE(mdm_configs)); if (machine_is_apq8064_mtp()) msm_gpiomux_install(cyts_gpio_configs, ARRAY_SIZE(cyts_gpio_configs)); #ifdef CONFIG_USB_EHCI_MSM_HSIC if (machine_is_apq8064_mtp()) msm_gpiomux_install(apq8064_hsic_configs, ARRAY_SIZE(apq8064_hsic_configs)); #endif if (machine_is_apq8064_cdp() || machine_is_apq8064_liquid()) msm_gpiomux_install(apq8064_mxt_configs, ARRAY_SIZE(apq8064_mxt_configs)); msm_gpiomux_install(apq8064_hdmi_configs, ARRAY_SIZE(apq8064_hdmi_configs)); if (machine_is_mpq8064_cdp()) msm_gpiomux_install(mpq8064_ir_configs, ARRAY_SIZE(mpq8064_ir_configs)); }
int msm_camera_request_gpio_table(struct msm_camera_sensor_info *sinfo, int gpio_en) { int rc = 0; struct msm_camera_gpio_conf *gpio_conf = sinfo->sensor_platform_info->gpio_conf; #ifdef CONFIG_PANTECH_CAMERA if (gpio_conf->cam_gpio_common_tbl == NULL) { #else if (gpio_conf->cam_gpio_req_tbl == NULL || gpio_conf->cam_gpio_common_tbl == NULL) { #endif pr_err("%s: NULL camera gpio table\n", __func__); return -EFAULT; } if (gpio_en) { if (gpio_conf->cam_gpiomux_conf_tbl != NULL) { msm_gpiomux_install( (struct msm_gpiomux_config *)gpio_conf-> cam_gpiomux_conf_tbl, gpio_conf->cam_gpiomux_conf_tbl_size); } rc = gpio_request_array(gpio_conf->cam_gpio_common_tbl, gpio_conf->cam_gpio_common_tbl_size); if (rc < 0) { pr_err("%s common gpio request failed\n", __func__); return rc; } #ifndef CONFIG_PANTECH_CAMERA rc = gpio_request_array(gpio_conf->cam_gpio_req_tbl, gpio_conf->cam_gpio_req_tbl_size); if (rc < 0) { pr_err("%s camera gpio request failed\n", __func__); gpio_free_array(gpio_conf->cam_gpio_common_tbl, gpio_conf->cam_gpio_common_tbl_size); return rc; } #endif } else { #ifndef CONFIG_PANTECH_CAMERA gpio_free_array(gpio_conf->cam_gpio_req_tbl, gpio_conf->cam_gpio_req_tbl_size); #endif gpio_free_array(gpio_conf->cam_gpio_common_tbl, gpio_conf->cam_gpio_common_tbl_size); } return rc; } int msm_camera_config_gpio_table(struct msm_camera_sensor_info *sinfo, int gpio_en) { struct msm_camera_gpio_conf *gpio_conf = sinfo->sensor_platform_info->gpio_conf; int rc = 0, i; if (gpio_en) { for (i = 0; i < gpio_conf->cam_gpio_set_tbl_size; i++) { gpio_set_value_cansleep( gpio_conf->cam_gpio_set_tbl[i].gpio, gpio_conf->cam_gpio_set_tbl[i].flags); usleep_range(gpio_conf->cam_gpio_set_tbl[i].delay, gpio_conf->cam_gpio_set_tbl[i].delay + 1000); } } else { for (i = gpio_conf->cam_gpio_set_tbl_size - 1; i >= 0; i--) { if (gpio_conf->cam_gpio_set_tbl[i].flags) gpio_set_value_cansleep( gpio_conf->cam_gpio_set_tbl[i].gpio, GPIOF_OUT_INIT_LOW); } } return rc; }
void __init t6_init_gpiomux(void) { int rc; rc = msm_gpiomux_init(NR_GPIO_IRQS); if (rc) { pr_err(KERN_ERR "msm_gpiomux_init failed %d\n", rc); return; } #if defined(CONFIG_KS8851) || defined(CONFIG_KS8851_MODULE) msm_gpiomux_install(t6_ethernet_configs, ARRAY_SIZE(t6_ethernet_configs)); #endif msm_gpiomux_install(wcnss_5wire_interface, ARRAY_SIZE(wcnss_5wire_interface)); msm_gpiomux_install(t6_gsbi_configs, ARRAY_SIZE(t6_gsbi_configs)); msm_gpiomux_install(t6_slimbus_config, ARRAY_SIZE(t6_slimbus_config)); msm_gpiomux_install(t6_audio_codec_configs, ARRAY_SIZE(t6_audio_codec_configs)); msm_gpiomux_install(msm8960_mi2s_rx_configs, ARRAY_SIZE(msm8960_mi2s_rx_configs)); #ifdef CONFIG_FB_MSM_HDMI_MSM_PANEL msm_gpiomux_install(hdmi_configs, ARRAY_SIZE(hdmi_configs)); msm_gpiomux_install(mhl_configs, ARRAY_SIZE(mhl_configs)); #endif msm_gpiomux_install(mdp_vsync_configs, ARRAY_SIZE(mdp_vsync_configs)); #if 0 msm_gpiomux_install(mdm_configs, ARRAY_SIZE(mdm_configs)); #endif #ifdef CONFIG_USB_EHCI_MSM_HSIC msm_gpiomux_install(t6_hsic_configs, ARRAY_SIZE(t6_hsic_configs)); #endif msm_gpiomux_install(apq8064_uartdm_gsbi1_configs, ARRAY_SIZE(apq8064_uartdm_gsbi1_configs)); }
void __init msm8226_init_gpiomux(void) { int rc; rc = msm_gpiomux_init_dt(); if (rc) { pr_err("%s failed %d\n", __func__, rc); return; } /* Battery charging and BMS GPIO */ msm_gpiomux_install(msm_ta_nchg_configs, ARRAY_SIZE(msm_ta_nchg_configs)); msm_gpiomux_install(msm_hrm_configs, ARRAY_SIZE(msm_hrm_configs)); msm_gpiomux_install(msm_sensorhub_configs, ARRAY_SIZE(msm_sensorhub_configs)); msm_gpiomux_install(msm_nfc_configs, ARRAY_SIZE(msm_nfc_configs)); #if defined(CONFIG_KS8851) || defined(CONFIG_KS8851_MODULE) msm_gpiomux_install(msm_eth_configs, ARRAY_SIZE(msm_eth_configs)); #endif msm_gpiomux_install(msm_keypad_configs, ARRAY_SIZE(msm_keypad_configs)); if (of_board_is_skuf()) msm_gpiomux_install(msm_skuf_blsp_configs, ARRAY_SIZE(msm_skuf_blsp_configs)); else msm_gpiomux_install(msm_blsp_configs, ARRAY_SIZE(msm_blsp_configs)); msm_gpiomux_install(wcnss_5wire_interface, ARRAY_SIZE(wcnss_5wire_interface)); if (of_board_is_skuf()) msm_gpiomux_install(msm_skuf_goodix_configs, ARRAY_SIZE(msm_skuf_goodix_configs)); msm_gpiomux_install(msm_synaptics_configs, ARRAY_SIZE(msm_synaptics_configs)); if (of_board_is_skuf()) msm_gpiomux_install(msm_skuf_nfc_configs, ARRAY_SIZE(msm_skuf_nfc_configs)); msm_gpiomux_install_nowrite(msm_lcd_configs, ARRAY_SIZE(msm_lcd_configs)); msm_gpiomux_install(msm_sensor_configs, ARRAY_SIZE(msm_sensor_configs)); if (of_board_is_skuf()) msm_gpiomux_install(msm_sensor_configs_skuf_plus, ARRAY_SIZE(msm_sensor_configs_skuf_plus)); msm_gpiomux_install(msm_auxpcm_configs, ARRAY_SIZE(msm_auxpcm_configs)); if (of_board_is_cdp() || of_board_is_mtp() || of_board_is_xpm()) msm_gpiomux_install(usb_otg_sw_configs, ARRAY_SIZE(usb_otg_sw_configs)); /* * gpio mux settings for the NC GPIOs */ msm_gpiomux_install(nc_gpio_cfgs, ARRAY_SIZE(nc_gpio_cfgs)); msm_gpiomux_install(hw_chkbits_cfg, ARRAY_SIZE(hw_chkbits_cfg)); msm_gpiomux_sdc3_install(); /* * HSIC STROBE gpio is also used by the ethernet. Install HSIC * gpio mux config only when HSIC is enabled. HSIC config will * be disabled when ethernet config is enabled. */ #ifdef CONFIG_USB_EHCI_MSM_HSIC if (machine_is_msm8926()) { msm_hsic_configs[0].gpio = 119; /* STROBE */ msm_hsic_configs[1].gpio = 120; /* DATA */ } msm_gpiomux_install(msm_hsic_configs, ARRAY_SIZE(msm_hsic_configs)); #endif #if defined(CONFIG_SAMSUNG_JACK) msm_gpiomux_install(msm_earjack_gpio_configs, ARRAY_SIZE(msm_earjack_gpio_configs)); #endif #ifdef CONFIG_SND_SOC_MAX98504 msm_gpiomux_install(msm8226_tertiary_mi2s_configs,ARRAY_SIZE(msm8226_tertiary_mi2s_configs)); #endif }
void __init msm8226_init_gpiomux(void) { int rc; rc = msm_gpiomux_init_dt(); if (rc) { pr_err("%s failed %d\n", __func__, rc); return; } /* Keypad */ msm_gpiomux_install(msm_keypad_configs, ARRAY_SIZE(msm_keypad_configs)); /* HallSensors */ msm_gpiomux_install(msm_hall_configs, ARRAY_SIZE(msm_hall_configs)); /* BLSP */ msm_gpiomux_install(msm_blsp_configs, ARRAY_SIZE(msm_blsp_configs)); /* WCNSS */ msm_gpiomux_install(wcnss_5wire_interface, ARRAY_SIZE(wcnss_5wire_interface)); /* TX_GTR */ msm_gpiomux_install(msm8226_tx_gtr_configs, ARRAY_SIZE(msm8226_tx_gtr_configs)); /* LCD */ msm_gpiomux_install_nowrite(msm_lcd_configs, ARRAY_SIZE(msm_lcd_configs)); /* Camera */ msm_gpiomux_install(msm_csensor_configs, ARRAY_SIZE(msm_csensor_configs)); /* Touch */ msm_gpiomux_install(msm_cypress_configs, ARRAY_SIZE(msm_cypress_configs)); /* Touch Key */ msm_gpiomux_install(msm_keyboad_cypress_configs, ARRAY_SIZE(msm_keyboad_cypress_configs)); /* NFC */ msm_gpiomux_install(msm_nfc_configs, ARRAY_SIZE(msm_nfc_configs)); /* Sensors */ msm_gpiomux_install(msm_sensors_configs, ARRAY_SIZE(msm_sensors_configs)); /* Cover ID */ msm_gpiomux_install(msm_cover_id_configs, ARRAY_SIZE(msm_cover_id_configs)); /* SDCC3 */ msm_gpiomux_sdc3_install(); /* Earjack */ msm_gpiomux_install(msm_earjack_gpio_configs, ARRAY_SIZE(msm_earjack_gpio_configs)); /* MUIC */ msm_gpiomux_install(muic_configs, ARRAY_SIZE(muic_configs)); /* HW_REV Pin */ msm_gpiomux_install(hwrev_configs, ARRAY_SIZE(hwrev_configs)); /* TOUCH_3P3_EN */ msm_gpiomux_install(msm8226_touch_3p3_en_configs, ARRAY_SIZE(msm8226_touch_3p3_en_configs)); /* NC */ msm_gpiomux_install(berluti_nc_gpio_cfgs, ARRAY_SIZE(berluti_nc_gpio_cfgs)); }
void __init apq8064_init_gpiomux(void) { int rc; int platform_version = socinfo_get_platform_version(); rc = msm_gpiomux_init(NR_GPIO_IRQS); if (rc) { pr_err(KERN_ERR "msm_gpiomux_init failed %d\n", rc); return; } #ifdef CONFIG_MMC_MSM_SDC4_SUPPORT if (system_rev < BOARD_REV08) msm_gpiomux_install(sdc4_interface, ARRAY_SIZE(sdc4_interface)); else msm_gpiomux_install(sdc2_interface, ARRAY_SIZE(sdc2_interface)); msm_gpiomux_install(msm8064_ls_en_config, ARRAY_SIZE(msm8064_ls_en_config)); #else msm_gpiomux_install(wcnss_5wire_interface, ARRAY_SIZE(wcnss_5wire_interface)); #endif if (machine_is_mpq8064_cdp() || machine_is_mpq8064_hrd() || machine_is_mpq8064_dtv()) { msm_gpiomux_install(mpq8064_gsbi5_i2c_configs, ARRAY_SIZE(mpq8064_gsbi5_i2c_configs)); #ifdef CONFIG_MSM_VCAP msm_gpiomux_install(vcap_configs, ARRAY_SIZE(vcap_configs)); #endif msm_gpiomux_install(sx150x_int_configs, ARRAY_SIZE(sx150x_int_configs)); } else { #if defined(CONFIG_KS8851) || defined(CONFIG_KS8851_MODULE) msm_gpiomux_install(apq8064_ethernet_configs, ARRAY_SIZE(apq8064_ethernet_configs)); #endif msm_gpiomux_install(apq8064_gsbi_configs, ARRAY_SIZE(apq8064_gsbi_configs)); } if( system_rev >= 13 ) // rev0.5 + 8 { msm_gpiomux_install(apq8064_nc_configs_rev05, ARRAY_SIZE(apq8064_nc_configs_rev05)); } else { msm_gpiomux_install(apq8064_nc_configs, ARRAY_SIZE(apq8064_nc_configs)); } msm_gpiomux_install(sensorhub_configs, ARRAY_SIZE(sensorhub_configs)); msm_gpiomux_install(apq8064_slimbus_config, ARRAY_SIZE(apq8064_slimbus_config)); msm_gpiomux_install(apq8064_audio_codec_configs, ARRAY_SIZE(apq8064_audio_codec_configs)); if (machine_is_mpq8064_cdp() || machine_is_mpq8064_hrd() || machine_is_mpq8064_dtv()) { msm_gpiomux_install(mpq8064_spkr_i2s_config, ARRAY_SIZE(mpq8064_spkr_i2s_config)); } pr_debug("%s(): audio-auxpcm: Include GPIO configs" " as audio is not the primary user" " for these GPIO Pins\n", __func__); msm_gpiomux_install(apq8064_auxpcm_configs, ARRAY_SIZE(apq8064_auxpcm_configs)); if (machine_is_mpq8064_cdp() || machine_is_mpq8064_hrd() || machine_is_mpq8064_dtv()) msm_gpiomux_install(mpq8064_mi2s_configs, ARRAY_SIZE(mpq8064_mi2s_configs)); if (machine_is_apq8064_mtp()|| machine_is_JF()) { if (socinfo_get_platform_subtype() == PLATFORM_SUBTYPE_DSDA2) { msm_gpiomux_install(amdm_configs, ARRAY_SIZE(amdm_configs)); msm_gpiomux_install(bmdm_configs, ARRAY_SIZE(bmdm_configs)); } else if (socinfo_get_platform_subtype() == PLATFORM_SUBTYPE_SGLTE2) { msm_gpiomux_install(mdm_configs, ARRAY_SIZE(mdm_configs)); msm_gpiomux_install(sglte2_qsc_configs, ARRAY_SIZE(sglte2_qsc_configs)); /* GSBI4 UART GPIOs for Primary IPC */ msm_gpiomux_install(apq8064_uartdm_gsbi4_configs, ARRAY_SIZE(apq8064_uartdm_gsbi4_configs)); } else if (SOCINFO_VERSION_MINOR(platform_version) == 1) { msm_gpiomux_install(mdm_i2s_configs, ARRAY_SIZE(mdm_i2s_configs)); } else { msm_gpiomux_install(mdm_configs, ARRAY_SIZE(mdm_configs)); } } if (machine_is_apq8064_mtp()|| machine_is_JF()) { if (SOCINFO_VERSION_MINOR(platform_version) == 1) { msm_gpiomux_install(cyts_gpio_alt_config, ARRAY_SIZE(cyts_gpio_alt_config)); } else { msm_gpiomux_install(cyts_gpio_configs, ARRAY_SIZE(cyts_gpio_configs)); } } #ifdef CONFIG_USB_EHCI_MSM_HSIC if (machine_is_apq8064_mtp()|| machine_is_JF()) msm_gpiomux_install(apq8064_hsic_configs, ARRAY_SIZE(apq8064_hsic_configs)); #endif if (machine_is_apq8064_cdp() || machine_is_apq8064_liquid()) msm_gpiomux_install(apq8064_mxt_configs, ARRAY_SIZE(apq8064_mxt_configs)); msm_gpiomux_install(apq8064_hdmi_configs, ARRAY_SIZE(apq8064_hdmi_configs)); if (machine_is_mpq8064_cdp()) msm_gpiomux_install(mpq8064_ir_configs, ARRAY_SIZE(mpq8064_ir_configs)); msm_gpiomux_install(msm8064_sd_det_config, ARRAY_SIZE(msm8064_sd_det_config)); #if defined(CONFIG_VIDEO_MHL_V2) msm_gpiomux_install(msm8960_mhl_configs, ARRAY_SIZE(msm8960_mhl_configs)); #endif #if defined(CONFIG_LEDS_AN30259A) msm_gpiomux_install(apq8064_leds_configs, ARRAY_SIZE(apq8064_leds_configs)); #endif #ifdef CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI printk(KERN_INFO "%s: config touch_irq config.\n",__func__); msm_gpiomux_install(apq8064_touch_irq_config, ARRAY_SIZE(apq8064_touch_irq_config)); #endif #ifdef CONFIG_MFD_MAX77693 msm_gpiomux_install(apq8064_muic_config, ARRAY_SIZE(apq8064_muic_config)); #endif msm_gpiomux_install(apq8064_sec_jack_configs, ARRAY_SIZE(apq8064_sec_jack_configs)); if (machine_is_mpq8064_hrd() || machine_is_mpq8064_dtv()) msm_gpiomux_install(mpq8064_uartdm_configs, ARRAY_SIZE(mpq8064_uartdm_configs)); }
void __init msm8226_init_gpiomux(void) { int rc; #ifdef CONFIG_MACH_LGE int gpio_index = 0; hw_rev_type hw_rev; hw_rev = lge_get_board_revno(); #endif // Device Tree Initailize rc = msm_gpiomux_init_dt(); if (rc) { pr_err("%s failed %d\n", __func__, rc); return; } #ifdef CONFIG_MACH_LGE //-------------------------------------------- // MSM8X26 GPIO Confiuration via W7 Rev 0 //-------------------------------------------- // GPIO related function <<0.Resreved Pin>> // GPIO related function <<1.SENSOR>> // GPIO related function <<2.I2C>> // GPIO related function <<3.UART>> // GPIO related function <<4.TOUCH>> // GPIO related function <<5.NFC>> // GPIO related function <<6.LCD>> // GPIO related function <<7.CAMERA>> // GPIO related function <<8.FLASH LED>> // GPIO related function <<9.IRRC>> // GPIO related function <<10.AUDIO>> // GPIO related function <<11.SD CARD>> // GPIO related function <<12.BATTERY>> // GPIO related function <<13.BT>> // GPIO related function <<14.WIFI>> // GPIO related function <<15.FM>> // GPIO related function <<16.SIM>> // GPIO related function <<17.SLIMBUS>> // GPIO related function <<18.RF>> // GPIO related function <<19.KEY PAD>> // GPIO related function <<20.LOGIC>> /* Moved to the last of this function */ #if 0 // GPIO related function <<0.Resreved Pin>> switch ( hw_rev ) { case HW_REV_0 : for ( gpio_index = 0 ; gpio_reserved_pin_rev_0[gpio_index] < MSM8x26_GPIO_END ; gpio_index++ ) { gpio_func_reserved_pin_config.gpio = gpio_reserved_pin_rev_0[gpio_index]; msm_gpiomux_install(&gpio_func_reserved_pin_config, 1); } break; case HW_REV_A : for ( gpio_index = 0 ; gpio_reserved_pin_rev_A[gpio_index] < MSM8x26_GPIO_END ; gpio_index++ ) { gpio_func_reserved_pin_config.gpio = gpio_reserved_pin_rev_A[gpio_index]; msm_gpiomux_install(&gpio_func_reserved_pin_config, 1); } break; case HW_REV_B : case HW_REV_C : case HW_REV_D : for ( gpio_index = 0 ; gpio_reserved_pin_rev_B[gpio_index] < MSM8x26_GPIO_END ; gpio_index++ ) { gpio_func_reserved_pin_config.gpio = gpio_reserved_pin_rev_B[gpio_index]; msm_gpiomux_install(&gpio_func_reserved_pin_config, 1); } break; case HW_REV_E : case HW_REV_1_0 : case HW_REV_1_1 : default : for ( gpio_index = 0 ; gpio_reserved_pin_rev_E[gpio_index] < MSM8x26_GPIO_END ; gpio_index++ ) { gpio_func_reserved_pin_config.gpio = gpio_reserved_pin_rev_E[gpio_index]; msm_gpiomux_install(&gpio_func_reserved_pin_config, 1); } break; } #endif // 0 // GPIO related function <<1.SENSOR>> msm_gpiomux_install(gpio_func_sensor_configs, ARRAY_SIZE(gpio_func_sensor_configs)); msm_gpiomux_install(msm_hall_ic_configs, ARRAY_SIZE(msm_hall_ic_configs)); // GPIO related function <<2.I2C>> msm_gpiomux_install(gpio_func_i2c_configs, ARRAY_SIZE(gpio_func_i2c_configs)); // GPIO related function <<3.UART>> msm_gpiomux_install(gpio_func_uart_configs, ARRAY_SIZE(gpio_func_uart_configs)); // GPIO related function <<4.TOUCH>> msm_gpiomux_install(msm_atmel_configs, ARRAY_SIZE(msm_atmel_configs)); printk(KERN_ERR " [Touch] HW_REV for Atmel Touch IC \n"); // GPIO related function <<5.NFC>> /* */ #ifdef CONFIG_LGE_NFC_PN547 msm_gpiomux_install(msm_nfc_configs, ARRAY_SIZE(msm_nfc_configs)); #endif /* */ // GPIO related function <<6.LCD>> //msm_gpiomux_install(msm_lcd_configs_rev_0, ARRAY_SIZE(msm_lcd_configs_rev_0)); //msm_gpiomux_install(msm_bl_configs_rev_0, ARRAY_SIZE(msm_bl_configs_rev_0)); // GPIO related function <<7.CAMERA>> msm_gpiomux_install(msm_sensor_configs, ARRAY_SIZE(msm_sensor_configs)); // GPIO related function <<8.FLASH LED>> msm_gpiomux_install(gpio_func_flash_led_configs, ARRAY_SIZE(gpio_func_flash_led_configs)); // GPIO related function <<10.AUDIO>> msm_gpiomux_install(gpio_func_audio_configs, ARRAY_SIZE(gpio_func_audio_configs)); // GPIO related function <<11.SD CARD>> msm_gpiomux_install(&sd_card_det, 1); // GPIO related function <<12.BATTERY>> msm_gpiomux_install(gpio_func_battery_configs, ARRAY_SIZE(gpio_func_battery_configs)); // GPIO related function <<13.BT>> msm_gpiomux_install(gpio_func_bt_configs, ARRAY_SIZE(gpio_func_bt_configs)); // GPIO related function <<14.WIFI>> msm_gpiomux_install(wcnss_5wire_interface, ARRAY_SIZE(wcnss_5wire_interface)); // GPIO related function <<15.FM>> msm_gpiomux_install(gpio_func_fm_configs, ARRAY_SIZE(gpio_func_fm_configs)); // GPIO related function <<16.SIM>> msm_gpiomux_install(gpio_func_sim_configs, ARRAY_SIZE(gpio_func_sim_configs)); // GPIO related function <<17.SLIMBUS>> msm_gpiomux_install(gpio_func_slimbus_configs, ARRAY_SIZE(gpio_func_slimbus_configs)); // GPIO related function <<18.RF>> msm_gpiomux_install(gpio_func_rf_configs, ARRAY_SIZE(gpio_func_rf_configs)); // GPIO related function <<19.KEY PAD>> if ( hw_rev >= HW_REV_A ) msm_gpiomux_install(msm_keypad_configs_rev_a, ARRAY_SIZE(msm_keypad_configs_rev_a)); else msm_gpiomux_install(msm_keypad_configs, ARRAY_SIZE(msm_keypad_configs)); // GPIO related function <<20.LOGIC>> msm_gpiomux_install(gpio_func_logic_configs, ARRAY_SIZE(gpio_func_logic_configs)); #endif #ifndef CONFIG_MACH_LGE #if defined(CONFIG_KS8851) || defined(CONFIG_KS8851_MODULE) msm_gpiomux_install(msm_eth_configs, ARRAY_SIZE(msm_eth_configs)); #endif msm_gpiomux_install(msm_blsp_configs, ARRAY_SIZE(msm_blsp_configs)); msm_gpiomux_install(msm_auxpcm_configs, ARRAY_SIZE(msm_auxpcm_configs)); if (of_board_is_cdp() || of_board_is_mtp() || of_board_is_xpm()) msm_gpiomux_install(usb_otg_sw_configs, ARRAY_SIZE(usb_otg_sw_configs)); #endif /* Applied Rev_E board changes */ if( hw_rev >= HW_REV_E ) { msm_gpiomux_install(pcb_indicator_configs, ARRAY_SIZE(pcb_indicator_configs)); msm_gpiomux_install(radiation_pwr_ant_configs, ARRAY_SIZE(radiation_pwr_ant_configs)); msm_gpiomux_install(vt_maker_id_configs, ARRAY_SIZE(vt_maker_id_configs)); } /* Moved from the top of this function */ // GPIO related function <<0.Resreved Pin>> switch ( hw_rev ) { case HW_REV_0 : for ( gpio_index = 0 ; gpio_reserved_pin_rev_0[gpio_index] < MSM8x26_GPIO_END ; gpio_index++ ) { gpio_func_reserved_pin_config.gpio = gpio_reserved_pin_rev_0[gpio_index]; msm_gpiomux_install(&gpio_func_reserved_pin_config, 1); } break; case HW_REV_A : for ( gpio_index = 0 ; gpio_reserved_pin_rev_A[gpio_index] < MSM8x26_GPIO_END ; gpio_index++ ) { gpio_func_reserved_pin_config.gpio = gpio_reserved_pin_rev_A[gpio_index]; msm_gpiomux_install(&gpio_func_reserved_pin_config, 1); } break; case HW_REV_B : case HW_REV_C : case HW_REV_D : for ( gpio_index = 0 ; gpio_reserved_pin_rev_B[gpio_index] < MSM8x26_GPIO_END ; gpio_index++ ) { gpio_func_reserved_pin_config.gpio = gpio_reserved_pin_rev_B[gpio_index]; msm_gpiomux_install(&gpio_func_reserved_pin_config, 1); } break; case HW_REV_E : case HW_REV_1_0 : case HW_REV_1_1 : default : for ( gpio_index = 0 ; gpio_reserved_pin_rev_E[gpio_index] < MSM8x26_GPIO_END ; gpio_index++ ) { gpio_func_reserved_pin_config.gpio = gpio_reserved_pin_rev_E[gpio_index]; msm_gpiomux_install(&gpio_func_reserved_pin_config, 1); } break; } }
static void msm_gpiomux_btuart_install(void) { msm_gpiomux_install(msm8974_btuart_configs, ARRAY_SIZE(msm8974_btuart_configs)); }
void __init msm8960_init_cam(void) { #if defined(CONFIG_MACH_MSM8960_L0) || defined(CONFIG_MACH_MSM8960_L1) || defined(CONFIG_MACH_MSM8960_L2S) /* LGE_CHANGE * Seperate REV_A and other REVs GPIO setting. * 2012-01-26 [email protected] */ if (lge_get_board_revno() < HW_REV_B) msm_gpiomux_install(msm8960_cam_common_configs_a, ARRAY_SIZE(msm8960_cam_common_configs_a)); else msm_gpiomux_install(msm8960_cam_common_configs, ARRAY_SIZE(msm8960_cam_common_configs)); #elif defined(CONFIG_MACH_MSM8960_L1A)||defined(CONFIG_MACH_MSM8960_L1T) // added L1T 20120320_sunwoo.lee /* LGE_CHANGE * Seperate L0 and L1 REV A. * 2012-02-20 [email protected] */ msm_gpiomux_install(msm8960_cam_common_configs_a, ARRAY_SIZE(msm8960_cam_common_configs_a)); #else msm_gpiomux_install(msm8960_cam_common_configs, ARRAY_SIZE(msm8960_cam_common_configs)); #endif #if !defined(CONFIG_MACH_LGE) if (machine_is_msm8960_cdp()) { msm_gpiomux_install(msm8960_cdp_flash_configs, ARRAY_SIZE(msm8960_cdp_flash_configs)); msm_flash_src._fsrc.ext_driver_src.led_en = GPIO_CAM_GP_LED_EN1; msm_flash_src._fsrc.ext_driver_src.led_flash_en = GPIO_CAM_GP_LED_EN2; #if defined(CONFIG_I2C) && (defined(CONFIG_GPIO_SX150X) || \ defined(CONFIG_GPIO_SX150X_MODULE)) msm_flash_src._fsrc.ext_driver_src.expander_info = cam_expander_info; #endif } #endif /* * QCT Original * * mount_angle change is not required. * privacy_light is related to front cam indicator LED. (NOT USED) * */ #if !defined(CONFIG_MACH_LGE) if (machine_is_msm8960_liquid()) { struct msm_camera_sensor_info *s_info; s_info = &msm_camera_sensor_s5k4e1_data; s_info->sensor_platform_info->mount_angle = 180; #ifdef CONFIG_MT9V113 s_info = &msm_camera_sensor_mt9v113_data; #elif defined(CONFIG_IMX119) /* LGE_CHANGE * Seperate MT9V113 and IMX119. * 2012-02-21 [email protected] */ s_info = &msm_camera_sensor_imx119_data; #endif s_info->sensor_platform_info->ext_power_ctrl = msm_camera_8960_ext_power_ctrl; } #endif platform_device_register(&msm8960_device_csiphy0); platform_device_register(&msm8960_device_csiphy1); platform_device_register(&msm8960_device_csid0); platform_device_register(&msm8960_device_csid1); platform_device_register(&msm8960_device_ispif); platform_device_register(&msm8960_device_vfe); platform_device_register(&msm8960_device_vpe); }
void __init msm8226_init_gpiomux(void) { int rc; #ifdef CONFIG_MACH_LGE int gpio_index = 0; hw_rev_type hw_rev; hw_rev = lge_get_board_revno(); #endif // Device Tree Initailize rc = msm_gpiomux_init_dt(); if (rc) { pr_err("%s failed %d\n", __func__, rc); return; } #ifdef CONFIG_MACH_LGE //-------------------------------------------- // MSM8X26 GPIO Confiuration via X5 //-------------------------------------------- // GPIO related function <<0.Resreved Pin>> // GPIO related function <<1.SENSOR>> // GPIO related function <<2.I2C>> // GPIO related function <<3.UART>> // GPIO related function <<4.TOUCH>> // GPIO related function <<5.NFC>> // GPIO related function <<6.LCD>> // GPIO related function <<7.CAMERA>> // GPIO related function <<8.FLASH LED>> // GPIO related function <<9.IRRC>> // GPIO related function <<10.AUDIO>> // GPIO related function <<11.SD CARD>> // GPIO related function <<12.BATTERY>> // GPIO related function <<13.BT>> // GPIO related function <<14.WIFI>> // GPIO related function <<15.FM>> // GPIO related function <<16.WLC>> // GPIO related function <<17.SIM>> // GPIO related function <<18.SLIMBUS>> // GPIO related function <<19.RF>> // GPIO related function <<20.KEY PAD>> // GPIO related function <<21.LOGIC>> // GPIO related function <<0.Resreved Pin>> switch ( hw_rev ){ case HW_REV_0 : for ( gpio_index = 0 ; gpio_reserved_pin_rev_0[gpio_index] < MSM8x26_GPIO_END ; gpio_index++ ){ gpio_func_reserved_pin_config.gpio = gpio_reserved_pin_rev_0[gpio_index]; msm_gpiomux_install(&gpio_func_reserved_pin_config, 1); } break; case HW_REV_A : for ( gpio_index = 0 ; gpio_reserved_pin_rev_A[gpio_index] < MSM8x26_GPIO_END ; gpio_index++ ){ gpio_func_reserved_pin_config.gpio = gpio_reserved_pin_rev_A[gpio_index]; msm_gpiomux_install(&gpio_func_reserved_pin_config, 1); } break; case HW_REV_B : for ( gpio_index = 0 ; gpio_reserved_pin_rev_B[gpio_index] < MSM8x26_GPIO_END ; gpio_index++ ){ gpio_func_reserved_pin_config.gpio = gpio_reserved_pin_rev_B[gpio_index]; msm_gpiomux_install(&gpio_func_reserved_pin_config, 1); } break; case HW_REV_C : case HW_REV_D : case HW_REV_E : case HW_REV_1_0 : case HW_REV_1_1 : default : for ( gpio_index = 0 ; gpio_reserved_pin_rev_B[gpio_index] < MSM8x26_GPIO_END ; gpio_index++ ){ gpio_func_reserved_pin_config.gpio = gpio_reserved_pin_rev_B[gpio_index]; msm_gpiomux_install(&gpio_func_reserved_pin_config, 1); } break; } // GPIO related function <<1.SENSOR>> msm_gpiomux_install(gpio_func_sensor_configs, ARRAY_SIZE(gpio_func_sensor_configs)); msm_gpiomux_install(msm_hall_ic_configs, ARRAY_SIZE(msm_hall_ic_configs)); // GPIO related function <<2.I2C>> msm_gpiomux_install(gpio_func_i2c_configs, ARRAY_SIZE(gpio_func_i2c_configs)); // GPIO related function <<3.UART>> msm_gpiomux_install(gpio_func_uart_configs, ARRAY_SIZE(gpio_func_uart_configs)); // GPIO related function <<4.TOUCH>> if(hw_rev == HW_REV_0) { msm_gpiomux_install(msm_synaptics_configs, ARRAY_SIZE(msm_synaptics_configs)); printk(KERN_ERR "[Touch] synaptics msm_gpiomux_install HW_REV_A configs rev : %d\n", hw_rev); } else { msm_gpiomux_install(msm_atmel_s540_configs, ARRAY_SIZE(msm_atmel_s540_configs)); printk(KERN_ERR "[Touch] atmel msm_gpiomux_install HW_REV_A configs rev : %d\n", hw_rev); } // GPIO related function <<5.NFC>> /* */ #ifdef CONFIG_LGE_NFC_PN547_C2 msm_gpiomux_install(msm_nfc_configs, ARRAY_SIZE(msm_nfc_configs)); #endif /* */ // GPIO related function <<6.LCD>> msm_gpiomux_install(gpio_func_lcd_configs, ARRAY_SIZE(gpio_func_lcd_configs)); msm_gpiomux_install_nowrite(msm_lcd_configs, ARRAY_SIZE(msm_lcd_configs)); // GPIO related function <<7.CAMERA>> msm_gpiomux_install(msm_sensor_configs, ARRAY_SIZE(msm_sensor_configs)); // GPIO related function <<8.FLASH LED>> msm_gpiomux_install(gpio_func_flash_led_configs, ARRAY_SIZE(gpio_func_flash_led_configs)); // GPIO related function <<10.AUDIO>> // GPIO related function <<11.SD CARD>> msm_gpiomux_install(&sd_card_det, 1); // GPIO related function <<12.BATTERY>> msm_gpiomux_install(gpio_func_battery_configs, ARRAY_SIZE(gpio_func_battery_configs)); // GPIO related function <<13.BT>> msm_gpiomux_install(gpio_func_bt_configs, ARRAY_SIZE(gpio_func_bt_configs)); // GPIO related function <<14.WIFI>> #if defined ( CONFIG_BCMDHD ) || defined ( CONFIG_BCMDHD_MODULE ) #else msm_gpiomux_install(wcnss_5wire_interface, ARRAY_SIZE(wcnss_5wire_interface)); #endif // GPIO related function <<15.FM>> msm_gpiomux_install(gpio_func_fm_configs, ARRAY_SIZE(gpio_func_fm_configs)); // GPIO related function <<16.WLC>> msm_gpiomux_install(gpio_func_wlc_configs, ARRAY_SIZE(gpio_func_wlc_configs)); // GPIO related function <<17.SIM>> msm_gpiomux_install(gpio_func_sim_configs, ARRAY_SIZE(gpio_func_sim_configs)); // GPIO related function <<18.SLIMBUS>> msm_gpiomux_install(gpio_func_slimbus_configs, ARRAY_SIZE(gpio_func_slimbus_configs)); // GPIO related function <<19.RF>> msm_gpiomux_install(gpio_func_rf_configs, ARRAY_SIZE(gpio_func_rf_configs)); // GPIO related function <<20.KEY PAD>> msm_gpiomux_install(msm_keypad_configs, ARRAY_SIZE(msm_keypad_configs)); // GPIO related function <<21.LOGIC>> msm_gpiomux_install(gpio_func_logic_configs, ARRAY_SIZE(gpio_func_logic_configs)); #endif #ifndef CONFIG_MACH_LGE #if defined(CONFIG_KS8851) || defined(CONFIG_KS8851_MODULE) msm_gpiomux_install(msm_eth_configs, ARRAY_SIZE(msm_eth_configs)); #endif msm_gpiomux_install(msm_blsp_configs, ARRAY_SIZE(msm_blsp_configs)); if (of_board_is_cdp() || of_board_is_mtp() || of_board_is_xpm()) msm_gpiomux_install(usb_otg_sw_configs, ARRAY_SIZE(usb_otg_sw_configs)); #endif /* */ #ifdef CONFIG_LGE_BLUETOOTH bluetooth_msm_gpiomux_install(); #endif /* */ /* */ msm_gpiomux_install(msm_auxpcm_configs, ARRAY_SIZE(msm_auxpcm_configs)); #if defined(CONFIG_TSPDRV) msm_gpiomux_install(vibrator_configs, ARRAY_SIZE(vibrator_configs)); #endif msm_gpiomux_sdc3_install(); }
int __init msm8960_init_gpiomux(void) { int rc = msm_gpiomux_init(NR_GPIO_IRQS); if (rc) { pr_err(KERN_ERR "msm_gpiomux_init failed %d\n", rc); return rc; } #if defined(CONFIG_KS8851) || defined(CONFIG_KS8851_MODULE) msm_gpiomux_install(msm8960_ethernet_configs, ARRAY_SIZE(msm8960_ethernet_configs)); #endif msm_gpiomux_install(msm8960_gsbi_configs, ARRAY_SIZE(msm8960_gsbi_configs)); #ifdef CONFIG_VP_A2220 msm_gpiomux_install(audience_suspend_configs, ARRAY_SIZE(audience_suspend_configs)); #endif msm_gpiomux_install(msm8960_sec_ts_configs, ARRAY_SIZE(msm8960_sec_ts_configs)); msm_gpiomux_install(msm8960_sec_sensor_configs, ARRAY_SIZE(msm8960_sec_sensor_configs)); msm_gpiomux_install(msm8960_audio_codec_configs, ARRAY_SIZE(msm8960_audio_codec_configs)); msm_gpiomux_install(wcnss_5wire_interface, ARRAY_SIZE(wcnss_5wire_interface)); msm_gpiomux_install(msm8960_audio_i2s_rx_codec_configs, ARRAY_SIZE(msm8960_audio_i2s_tx_codec_configs)); msm_gpiomux_install(msm8960_audio_i2s_tx_codec_configs, ARRAY_SIZE(msm8960_audio_i2s_tx_codec_configs)); #ifdef CONFIG_USB_SWITCH_FSA9485 msm_gpiomux_install(msm8960_fsa9485_configs, ARRAY_SIZE(msm8960_fsa9485_configs)); #endif 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)); #ifdef CONFIG_USB_EHCI_MSM_HSIC if ((SOCINFO_VERSION_MAJOR(socinfo_get_version()) != 1) && (PLATFORM_IS_CHARM25() || machine_is_msm8960_liquid())) msm_gpiomux_install(msm8960_hsic_configs, ARRAY_SIZE(msm8960_hsic_configs)); #endif #ifdef CONFIG_FB_MSM_HDMI_MSM_PANEL msm_gpiomux_install(msm8960_hdmi_configs, ARRAY_SIZE(msm8960_hdmi_configs)); #endif #ifdef CONFIG_VIDEO_MHL_V2 msm_gpiomux_install(msm8960_mhl_configs, ARRAY_SIZE(msm8960_mhl_configs)); #endif msm_gpiomux_install(common_nc_configs, ARRAY_SIZE(common_nc_configs)); if (system_rev > BOARD_REV02) msm_gpiomux_install(rev03_nc_configs, ARRAY_SIZE(rev03_nc_configs)); msm_gpiomux_install(msm8960_mdp_vsync_configs, ARRAY_SIZE(msm8960_mdp_vsync_configs)); msm_gpiomux_install(msm8960_nc_gpio_configs, ARRAY_SIZE(msm8960_nc_gpio_configs)); gpio_keys_config_mux[0].gpio = gpio_rev(VOLUME_UP); gpio_keys_config_mux[1].gpio = gpio_rev(VOLUME_DOWN); gpio_keys_config_mux[2].gpio = gpio_rev(MENU_KEY); gpio_keys_config_mux[5].gpio = gpio_rev(PTT_KEY); msm_gpiomux_install(gpio_keys_config_mux, ARRAY_SIZE(gpio_keys_config_mux)); return 0; }
void __init msm8226_init_gpiomux(void) { int rc; rc = msm_gpiomux_init_dt(); if (rc) { pr_err("%s failed %d\n", __func__, rc); return; } #if defined(CONFIG_KS8851) || defined(CONFIG_KS8851_MODULE) msm_gpiomux_install(msm_eth_configs, ARRAY_SIZE(msm_eth_configs)); #endif msm_gpiomux_install(msm_keypad_configs, ARRAY_SIZE(msm_keypad_configs)); if (of_board_is_qrd()) msm_gpiomux_install(msm_qrd_blsp_configs, ARRAY_SIZE(msm_qrd_blsp_configs)); else msm_gpiomux_install(msm_blsp_configs, ARRAY_SIZE(msm_blsp_configs)); msm_gpiomux_install(wcnss_5wire_interface, ARRAY_SIZE(wcnss_5wire_interface)); msm_gpiomux_install(&sd_card_det, 1); if (of_board_is_qrd()) msm_gpiomux_install(msm_qrd_goodix_configs, ARRAY_SIZE(msm_qrd_goodix_configs)); else msm_gpiomux_install(msm_synaptics_configs, ARRAY_SIZE(msm_synaptics_configs)); if (of_board_is_qrd()) msm_gpiomux_install(msm_qrd_nfc_configs, ARRAY_SIZE(msm_qrd_nfc_configs)); msm_gpiomux_install_nowrite(msm_lcd_configs, ARRAY_SIZE(msm_lcd_configs)); msm_gpiomux_install(msm_sensor_configs, ARRAY_SIZE(msm_sensor_configs)); msm_gpiomux_install(msm_auxpcm_configs, ARRAY_SIZE(msm_auxpcm_configs)); if (of_board_is_cdp() || of_board_is_mtp() || of_board_is_xpm()) msm_gpiomux_install(usb_otg_sw_configs, ARRAY_SIZE(usb_otg_sw_configs)); msm_gpiomux_sdc3_install(); }
void __init msm_8974_moto_init_gpiomux(void) { int rc; rc = msm_gpiomux_init_dt(); if (rc) { pr_err("%s failed %d\n", __func__, rc); return; } msm_gpiomux_install(msm_blsp_configs, ARRAY_SIZE(msm_blsp_configs)); msm_gpiomux_install(msm_blsp2_uart7_configs, ARRAY_SIZE(msm_blsp2_uart7_configs)); msm_gpiomux_install(wcnss_5wire_interface, ARRAY_SIZE(wcnss_5wire_interface)); if (of_board_is_liquid()) msm_gpiomux_install_nowrite(ath_gpio_configs, ARRAY_SIZE(ath_gpio_configs)); msm_gpiomux_install(msm8974_slimbus_config, ARRAY_SIZE(msm8974_slimbus_config)); msm_gpiomux_install(msm_touch_configs, ARRAY_SIZE(msm_touch_configs)); msm_gpiomux_install(msm_blsp12_fps_spi_configs, ARRAY_SIZE(msm_blsp12_fps_spi_configs)); msm_gpiomux_install(msm_sensor_configs, ARRAY_SIZE(msm_sensor_configs)); msm_gpiomux_sdc3_install(); msm_gpiomux_sdc4_install(); msm_gpiomux_install(msm_taiko_config, ARRAY_SIZE(msm_taiko_config)); msm_gpiomux_install(stm401_configs, ARRAY_SIZE(stm401_configs)); if (of_board_is_fluid()) msm_gpiomux_install(msm_mhl_configs, ARRAY_SIZE(msm_mhl_configs)); msm_gpiomux_install(c55_i2s_configs, ARRAY_SIZE(c55_i2s_configs)); msm_gpiomux_install(msm_lcd_configs, ARRAY_SIZE(msm_lcd_configs)); if (of_board_is_rumi()) msm_gpiomux_install(msm_rumi_blsp_configs, ARRAY_SIZE(msm_rumi_blsp_configs)); msm_gpiomux_install(&vib_en_gpio, 1); msm_gpiomux_install(c55_configs, ARRAY_SIZE(c55_configs)); msm_gpiomux_install(cycapsence_issp_gpio_configs, ARRAY_SIZE(cycapsence_issp_gpio_configs)); msm_gpiomux_install(wm5110_spi_configs, ARRAY_SIZE(wm5110_spi_configs)); }
void __init msm8226_init_gpiomux(void) { int rc; int gpio_index = 0; hw_rev_type hw_rev; hw_rev = lge_get_board_revno(); // Device Tree Initailize rc = msm_gpiomux_init_dt(); if (rc) { pr_err("%s failed %d\n", __func__, rc); return; } //-------------------------------------------- // MSM8X26 GPIO Confiuration via JAGUAR //-------------------------------------------- // GPIO related function <<0.Resreved Pin>> // GPIO related function <<1.SENSOR>> // GPIO related function <<2.I2C>> // GPIO related function <<3.UART>> // GPIO related function <<4.TOUCH>> // GPIO related function <<5.NFC>> // GPIO related function <<6.LCD>> // GPIO related function <<7.CAMERA>> // GPIO related function <<8.FLASH LED>> // GPIO related function <<9.IRRC>> // GPIO related function <<10.AUDIO>> // GPIO related function <<11.SD CARD>> // GPIO related function <<12.BATTERY>> // GPIO related function <<13.BT>> // GPIO related function <<14.WIFI>> // GPIO related function <<15.FM>> // GPIO related function <<16.WLC>> // GPIO related function <<17.SIM>> // GPIO related function <<18.SLIMBUS>> // GPIO related function <<19.RF>> // GPIO related function <<20.KEY PAD>> // GPIO related function <<21.LOGIC>> // GPIO related function <<0.Resreved Pin>> switch ( hw_rev ){ case HW_REV_0 : #if 0 for ( gpio_index = 0 ; gpio_reserved_pin_rev_zero[gpio_index] < MSM8x26_GPIO_END ; gpio_index++ ){ gpio_func_reserved_pin_config.gpio = gpio_reserved_pin_rev_zero[gpio_index]; msm_gpiomux_install(&gpio_func_reserved_pin_config, 1); } #endif break; case HW_REV_A : for ( gpio_index = 0 ; gpio_reserved_pin_rev_A[gpio_index] < MSM8x26_GPIO_END ; gpio_index++ ){ gpio_func_reserved_pin_config.gpio = gpio_reserved_pin_rev_A[gpio_index]; msm_gpiomux_install(&gpio_func_reserved_pin_config, 1); } break; case HW_REV_B : for ( gpio_index = 0 ; gpio_reserved_pin_rev_B[gpio_index] < MSM8x26_GPIO_END ; gpio_index++ ){ gpio_func_reserved_pin_config.gpio = gpio_reserved_pin_rev_B[gpio_index]; msm_gpiomux_install(&gpio_func_reserved_pin_config, 1); } break; case HW_REV_C : case HW_REV_D : case HW_REV_E : case HW_REV_1_0 : case HW_REV_1_1 : default : for ( gpio_index = 0 ; gpio_reserved_pin_rev_B[gpio_index] < MSM8x26_GPIO_END ; gpio_index++ ){ gpio_func_reserved_pin_config.gpio = gpio_reserved_pin_rev_B[gpio_index]; msm_gpiomux_install(&gpio_func_reserved_pin_config, 1); } break; } // GPIO related function <<1.SENSOR>> msm_gpiomux_install(msm_sensor_ic_configs, ARRAY_SIZE(msm_sensor_ic_configs)); // GPIO related function <<2.I2C>> msm_gpiomux_install(msm_i2c_configs, ARRAY_SIZE(msm_i2c_configs)); // GPIO related function <<3.UART>> msm_gpiomux_install(gpio_func_uart_configs, ARRAY_SIZE(gpio_func_uart_configs)); // GPIO related function <<4.TOUCH>> if (hw_rev >= HW_REV_A) { msm_gpiomux_install(msm_touch_configs, ARRAY_SIZE(msm_touch_configs)); printk(KERN_ERR "[Touch] HW_REV_A configs \n"); } // GPIO related function <<5.NFC>> /* LGE_CHANGE_S, [NFC][[email protected]], NFC Bring up */ #ifdef CONFIG_LGE_NFC_PN544_C3 msm_gpiomux_install(msm_nfc_configs, ARRAY_SIZE(msm_nfc_configs)); #endif /* LGE_CHANGE_E, [NFC][[email protected]], NFC Bring up */ // GPIO related function <<6.LCD>> msm_gpiomux_install_nowrite(msm_lcd_configs, ARRAY_SIZE(msm_lcd_configs)); // GPIO related function <<7.CAMERA>> msm_gpiomux_install(msm_sensor_configs, ARRAY_SIZE(msm_sensor_configs)); // GPIO related function <<8.FLASH LED>> msm_gpiomux_install(gpio_func_flash_led_configs, ARRAY_SIZE(gpio_func_flash_led_configs)); // GPIO related function <<10.AUDIO>> // GPIO related function <<11.SD CARD>> msm_gpiomux_sdc3_install(); // GPIO related function <<12.BATTERY>> msm_gpiomux_install(power_configs, ARRAY_SIZE(power_configs)); // GPIO related function <<13.BT>> #ifdef CONFIG_LGE_BLUETOOTH bluetooth_msm_gpiomux_install(); #endif /* CONFIG_LGE_BLUETOOTH */ // GPIO related function <<14.WIFI>> msm_gpiomux_install(wcnss_5wire_interface, ARRAY_SIZE(wcnss_5wire_interface)); // GPIO related function <<15.FM>> msm_gpiomux_install(msm_auxpcm_configs, ARRAY_SIZE(msm_auxpcm_configs)); // GPIO related function <<16.WLC>> msm_gpiomux_install(&gpio_func_wlc_config, 1); // GPIO related function <<17.SIM>> msm_gpiomux_install(gpio_func_sim_configs, ARRAY_SIZE(gpio_func_sim_configs)); // GPIO related function <<18.SLIMBUS>> msm_gpiomux_install(gpio_func_slimbus_configs, ARRAY_SIZE(gpio_func_slimbus_configs)); // GPIO related function <<19.RF>> msm_gpiomux_install(gpio_func_rf_configs, ARRAY_SIZE(gpio_func_rf_configs)); // GPIO related function <<20.KEY PAD>> msm_gpiomux_install(msm_keypad_configs, ARRAY_SIZE(msm_keypad_configs)); // GPIO related function <<21.LOGIC>> msm_gpiomux_install(ext_ldo_en_configs, ARRAY_SIZE(ext_ldo_en_configs)); #if defined(CONFIG_KS8851) || defined(CONFIG_KS8851_MODULE) msm_gpiomux_install(msm_eth_configs, ARRAY_SIZE(msm_eth_configs)); #endif #ifndef CONFIG_MACH_LGE if (of_board_is_cdp() || of_board_is_mtp() || of_board_is_xpm()) msm_gpiomux_install(usb_otg_sw_configs, ARRAY_SIZE(usb_otg_sw_configs)); #endif #ifdef CONFIG_SND_BRCM_FM_RADIO msm_gpiomux_install(msm_pri_mi2s_configs, ARRAY_SIZE(msm_pri_mi2s_configs)); #endif }
int __init msm8960_init_gpiomux(void) { int rc = msm_gpiomux_init(NR_GPIO_IRQS); if (rc) { pr_err(KERN_ERR "msm_gpiomux_init failed %d\n", rc); return rc; } #if defined(CONFIG_KS8851) || defined(CONFIG_KS8851_MODULE) msm_gpiomux_install(msm8960_ethernet_configs, ARRAY_SIZE(msm8960_ethernet_configs)); #endif 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)); #ifdef CONFIG_USB_EHCI_MSM_HSIC if ((SOCINFO_VERSION_MAJOR(socinfo_get_version()) != 1) && (PLATFORM_IS_CHARM25() || machine_is_msm8960_liquid())) msm_gpiomux_install(msm8960_hsic_configs, ARRAY_SIZE(msm8960_hsic_configs)); #endif #ifdef CONFIG_FB_MSM_HDMI_MSM_PANEL msm_gpiomux_install(msm8960_hdmi_configs, ARRAY_SIZE(msm8960_hdmi_configs)); #endif msm_gpiomux_install(msm8960_mdp_vsync_configs, ARRAY_SIZE(msm8960_mdp_vsync_configs)); return 0; }
static void msm_gpiomux_sdc3_install(void) { msm_gpiomux_install(&sd_card_det, 1); }
/* */ static struct msm_gpiomux_config msm_keypad_configs[] __initdata = { { .gpio = 72, .settings = { [GPIOMUX_ACTIVE] = &gpio_keys_active, [GPIOMUX_SUSPENDED] = &gpio_keys_suspend, }, }, { .gpio = 73, .settings = { [GPIOMUX_ACTIVE] = &gpio_keys_active, [GPIOMUX_SUSPENDED] = &gpio_keys_suspend, }, }, { .gpio = 74, .settings = { [GPIOMUX_ACTIVE] = &gpio_keys_active, [GPIOMUX_SUSPENDED] = &gpio_keys_suspend, }, }, }; static struct gpiomux_setting sd_card_det_active_config = { .func = GPIOMUX_FUNC_GPIO, .drv = GPIOMUX_DRV_2MA, .pull = GPIOMUX_PULL_NONE, .dir = GPIOMUX_IN, }; #ifdef CONFIG_MACH_LGE static struct gpiomux_setting sd_card_det_suspend_config = { .func = GPIOMUX_FUNC_GPIO, .drv = GPIOMUX_DRV_2MA, .pull = GPIOMUX_PULL_NONE, .dir = GPIOMUX_IN, }; #else static struct gpiomux_setting sd_card_det_suspend_config = { .func = GPIOMUX_FUNC_GPIO, .drv = GPIOMUX_DRV_2MA, .pull = GPIOMUX_PULL_UP, .dir = GPIOMUX_IN, }; #endif static struct msm_gpiomux_config sd_card_det[] __initdata = { { .gpio = 42, .settings = { [GPIOMUX_ACTIVE] = &sd_card_det_active_config, [GPIOMUX_SUSPENDED] = &sd_card_det_suspend_config, }, }, }; #if defined(CONFIG_MACH_LGE) && defined(CONFIG_SWITCH_SPK_RCV) // static struct gpiomux_setting spk_rcv_active_config = { .func = GPIOMUX_FUNC_GPIO, .drv = GPIOMUX_DRV_8MA, .pull = GPIOMUX_PULL_DOWN, .dir = GPIOMUX_OUT_HIGH }; static struct msm_gpiomux_config msm_spk_rcv_det[] __initdata = { { .gpio = 19, .settings = { [GPIOMUX_ACTIVE] = &spk_rcv_active_config, }, } }; #endif/* */ #ifdef CONFIG_FMR_INTENNA // static struct gpiomux_setting fmr_intenna_config = { .func = GPIOMUX_FUNC_GPIO, .drv = GPIOMUX_DRV_8MA, .pull = GPIOMUX_PULL_DOWN, .dir = GPIOMUX_OUT_HIGH }; static struct msm_gpiomux_config fmr_intenna_det[] __initdata = { { .gpio = 58, .settings = { [GPIOMUX_ACTIVE] = &fmr_intenna_config, }, } }; #endif /// Rev_E #ifdef CONFIG_MACH_LGE static struct gpiomux_setting pcb_indicator_config = { .func = GPIOMUX_FUNC_GPIO, .drv = GPIOMUX_DRV_2MA, .pull = GPIOMUX_PULL_NONE, .dir = GPIOMUX_IN }; static struct msm_gpiomux_config pcb_indicator[] __initdata = { { .gpio = 59, /* Low Band */ .settings = { [GPIOMUX_ACTIVE] = &pcb_indicator_config, [GPIOMUX_SUSPENDED] = &pcb_indicator_config, }, }, { .gpio = 83, /* High Band */ .settings = { [GPIOMUX_ACTIVE] = &pcb_indicator_config, [GPIOMUX_SUSPENDED] = &pcb_indicator_config, }, }, { .gpio = 84, /* FMR */ .settings = { [GPIOMUX_ACTIVE] = &pcb_indicator_config, [GPIOMUX_SUSPENDED] = &pcb_indicator_config, }, } }; #endif /* */ #ifdef CONFIG_MACH_LGE static struct gpiomux_setting main_cam_id_gpio_act_config = { .func = GPIOMUX_FUNC_GPIO, .drv = GPIOMUX_DRV_2MA, .pull = GPIOMUX_PULL_UP, .dir = GPIOMUX_IN }; static struct gpiomux_setting main_cam_id_gpio_sus_config = { .func = GPIOMUX_FUNC_GPIO, .drv = GPIOMUX_DRV_2MA, .pull = GPIOMUX_PULL_NONE, .dir = GPIOMUX_IN }; static struct msm_gpiomux_config main_cam_id_gpio[] __initdata = { { .gpio = 71, .settings = { [GPIOMUX_ACTIVE] = &main_cam_id_gpio_act_config, [GPIOMUX_SUSPENDED] = &main_cam_id_gpio_sus_config, } } }; #endif /* */ void __init msm8610_init_gpiomux(void) { int rc; #ifdef CONFIG_MACH_LGE int gpio_index = 0; //2013-07-29, seungkyu.joo, add gpio85 config for revA[End] hw_rev_type lge_bd_rev = lge_get_board_revno(); //2013-07-29, seungkyu.joo, add gpio85 config for revA[End] #endif rc = msm_gpiomux_init_dt(); if (rc) { pr_err("%s failed %d\n", __func__, rc); return; } #ifdef CONFIG_MACH_LGE //-------------------------------------------- // MSM8X10 GPIO Confiuration via W3 //-------------------------------------------- // GPIO related function <<0.Resreved Pin>> // GPIO related function <<1.SENSOR>> // GPIO related function <<2.I2C>> // GPIO related function <<3.UART>> // GPIO related function <<4.TOUCH>> // GPIO related function <<5.NFC>> // GPIO related function <<6.LCD>> // GPIO related function <<7.CAMERA>> // GPIO related function <<8.FLASH LED>> // GPIO related function <<9.IRRC>> // GPIO related function <<10.AUDIO>> // GPIO related function <<11.SD CARD>> // GPIO related function <<12.BATTERY>> // GPIO related function <<13.BT>> // GPIO related function <<14.WIFI>> // GPIO related function <<15.FM>> // GPIO related function <<16.SIM>> // GPIO related function <<17.SLIMBUS>> // GPIO related function <<18.RF>> // GPIO related function <<19.KEY PAD>> // GPIO related function <<20.LOGIC>> switch ( lge_bd_rev ){ case HW_REV_0 : for ( gpio_index = 0 ; gpio_reserved_pin_rev_0[gpio_index] < MSM8x10_GPIO_END ; gpio_index++ ){ gpio_func_reserved_pin_config.gpio = gpio_reserved_pin_rev_0[gpio_index]; msm_gpiomux_install(&gpio_func_reserved_pin_config, 1); } msm_gpiomux_install(msm_sensor_configs_revA, ARRAY_SIZE(msm_sensor_configs_revA)); // break; case HW_REV_A : for ( gpio_index = 0 ; gpio_reserved_pin_rev_A[gpio_index] < MSM8x10_GPIO_END ; gpio_index++ ){ gpio_func_reserved_pin_config.gpio = gpio_reserved_pin_rev_A[gpio_index]; msm_gpiomux_install(&gpio_func_reserved_pin_config, 1); } msm_gpiomux_install(msm_sensor_configs_revA, ARRAY_SIZE(msm_sensor_configs_revA)); // break; case HW_REV_B : case HW_REV_C : for ( gpio_index = 0 ; gpio_reserved_pin_rev_C[gpio_index] < MSM8x10_GPIO_END ; gpio_index++ ){ gpio_func_reserved_pin_config.gpio = gpio_reserved_pin_rev_C[gpio_index]; msm_gpiomux_install(&gpio_func_reserved_pin_config, 1); } msm_gpiomux_install(msm_sensor_configs_revB, ARRAY_SIZE(msm_sensor_configs_revB)); // break; case HW_REV_D : case HW_REV_E : case HW_REV_1_0 : case HW_REV_1_1 : default : for ( gpio_index = 0 ; gpio_reserved_pin_rev_E[gpio_index] < MSM8x10_GPIO_END ; gpio_index++ ){ gpio_func_reserved_pin_config.gpio = gpio_reserved_pin_rev_E[gpio_index]; msm_gpiomux_install(&gpio_func_reserved_pin_config, 1); } msm_gpiomux_install(msm_sensor_configs_revB, ARRAY_SIZE(msm_sensor_configs_revB)); // msm_gpiomux_install(pcb_indicator, ARRAY_SIZE(pcb_indicator)); msm_gpiomux_install(main_cam_id_gpio, ARRAY_SIZE(main_cam_id_gpio)); /* MAIN_CAM_ID */ break; } #endif msm_gpiomux_install(msm_blsp_configs, ARRAY_SIZE(msm_blsp_configs)); if (of_board_is_qrd()) { msm_gpiomux_install(msm_focaltech_configs, ARRAY_SIZE(msm_focaltech_configs)); } else { if(lge_bd_rev < HW_REV_E) { printk(KERN_ERR "[TOUCH] Set GPIO for MELFAS \n"); msm_gpiomux_install(msm_melfas_configs, ARRAY_SIZE(msm_melfas_configs)); }else{ printk(KERN_ERR "[TOUCH] Set GPIO for greater than Rev.E \n"); msm_gpiomux_install(msm_syunap_configs, ARRAY_SIZE(msm_syunap_configs)); } } msm_gpiomux_install(wcnss_5wire_interface, ARRAY_SIZE(wcnss_5wire_interface)); msm_gpiomux_install_nowrite(msm_lcd_configs, ARRAY_SIZE(msm_lcd_configs)); msm_gpiomux_install(msm_keypad_configs, ARRAY_SIZE(msm_keypad_configs)); msm_gpiomux_install(sd_card_det, ARRAY_SIZE(sd_card_det)); msm_gpiomux_install(msm_gpio_int_configs, ARRAY_SIZE(msm_gpio_int_configs)); #if defined (CONFIG_LGE_BROADCAST_ONESEG) if(lge_get_board_revno()>= HW_REV_B) msm_gpiomux_install(lge_1seg_blsp_configs, ARRAY_SIZE(lge_1seg_blsp_configs)); else if(lge_get_board_revno()== HW_REV_A) msm_gpiomux_install(lge_1seg_blsp_configs_revA, ARRAY_SIZE(lge_1seg_blsp_configs_revA)); else msm_gpiomux_install(lge_1seg_blsp_configs_rev0, ARRAY_SIZE(lge_1seg_blsp_configs_rev0)); #endif /* */ #if defined(CONFIG_MACH_LGE) && defined(CONFIG_SWITCH_SPK_RCV) // msm_gpiomux_install(msm_spk_rcv_det, ARRAY_SIZE(msm_spk_rcv_det)); #endif/* */ #ifdef CONFIG_FMR_INTENNA // msm_gpiomux_install(fmr_intenna_det, ARRAY_SIZE(fmr_intenna_det)); #endif }
static void msm_gpiomux_wlan_host_wakeup_install(void) { msm_gpiomux_install(wlan_host_wakeup_configs, ARRAY_SIZE(wlan_host_wakeup_configs)); }
void __init msm_8974_init_gpiomux(void) { int rc; rc = msm_gpiomux_init_dt(); if (rc) { pr_err("%s failed %d\n", __func__, rc); return; } pr_err("%s:%d socinfo_get_version %x\n", __func__, __LINE__, socinfo_get_version()); if (socinfo_get_version() >= 0x20000) msm_tlmm_misc_reg_write(TLMM_SPARE_REG, 0xf); #if defined(CONFIG_KS8851) || defined(CONFIG_KS8851_MODULE) if (!(of_board_is_dragonboard() && machine_is_apq8074())) msm_gpiomux_install(msm_eth_configs, \ ARRAY_SIZE(msm_eth_configs)); #endif msm_gpiomux_install(msm_blsp_configs, ARRAY_SIZE(msm_blsp_configs)); #ifdef CONFIG_MFD_MAX77888 msm_gpiomux_install(msm8974_muic_configs, ARRAY_SIZE(msm8974_muic_configs)); #endif msm_gpiomux_install(msm_battery_configs, ARRAY_SIZE(msm_battery_configs)); msm_gpiomux_install(msm_batteryotg_configs, ARRAY_SIZE(msm_batteryotg_configs)); #if !defined(CONFIG_BT_BCM4335) && !defined(CONFIG_BT_BCM4339) msm_gpiomux_install(msm_blsp2_uart7_configs, ARRAY_SIZE(msm_blsp2_uart7_configs)); #endif #ifdef CONFIG_INPUT_WACOM msm_gpiomux_install(msm8974_wacom_configs, ARRAY_SIZE(msm8974_wacom_configs)); #endif #if defined(CONFIG_BT_BCM4335) || defined(CONFIG_BT_BCM4339) msm_gpiomux_btuart_install(); msm_gpiomux_btwake_install(); #endif if (of_board_is_liquid()) msm_gpiomux_install_nowrite(ath_gpio_configs, ARRAY_SIZE(ath_gpio_configs)); msm_gpiomux_install(msm8974_slimbus_config, ARRAY_SIZE(msm8974_slimbus_config)); msm_gpiomux_install(hap_lvl_shft_config, ARRAY_SIZE(hap_lvl_shft_config)); if (of_board_is_dragonboard() && machine_is_apq8074()) msm_gpiomux_install(msm_sensor_configs_dragonboard, \ ARRAY_SIZE(msm_sensor_configs_dragonboard)); else msm_gpiomux_install(msm_sensor_configs, \ ARRAY_SIZE(msm_sensor_configs)); msm_gpiomux_install(&sd_card_det, 1); msm_gpiomux_sdc3_install(); if (!(of_board_is_dragonboard() && machine_is_apq8074())) msm_gpiomux_sdc4_install(); msm_gpiomux_install(msm_taiko_config, ARRAY_SIZE(msm_taiko_config)); msm_gpiomux_install(speaker_enable_config, ARRAY_SIZE(speaker_enable_config)); msm_gpiomux_install(ear_send_end_config, ARRAY_SIZE(ear_send_end_config)); msm_gpiomux_install(msm_hsic_hub_configs, ARRAY_SIZE(msm_hsic_hub_configs)); msm_gpiomux_install(msm_hdmi_configs, ARRAY_SIZE(msm_hdmi_configs)); #ifdef CONFIG_VIDEO_MHL_V2 msm_gpiomux_install(mhl_configs, ARRAY_SIZE(mhl_configs)); #endif #if 0 msm_gpiomux_install(wcnss_5wire_interface, ARRAY_SIZE(wcnss_5wire_interface)); #endif if (of_board_is_liquid() || (of_board_is_dragonboard() && machine_is_apq8074())) msm_gpiomux_install(msm8974_pri_ter_auxpcm_configs, ARRAY_SIZE(msm8974_pri_ter_auxpcm_configs)); else msm_gpiomux_install(msm8974_pri_pri_auxpcm_configs, ARRAY_SIZE(msm8974_pri_pri_auxpcm_configs)); #if defined(CONFIG_BCM4335) || defined(CONFIG_BCM4335_MODULE) || defined(CONFIG_BCM4339) || defined(CONFIG_BCM4339_MODULE) || defined(CONFIG_BCM4354) msm_gpiomux_wlan_host_wakeup_install(); #endif /* defined(CONFIG_BCM4335) || defined(CONFIG_BCM4335_MODULE) || defined(CONFIG_BCM4339) || defined(CONFIG_BCM4339_MODULE) || defined(CONFIG_BCM4354) */ #ifdef CONFIG_USB_SWITCH_FSA9485 if (system_rev >= 10) msm_gpiomux_install(vienna_r10_muic_configs, ARRAY_SIZE(vienna_r10_muic_configs)); else msm_gpiomux_install(vienna_muic_configs, ARRAY_SIZE(vienna_muic_configs)); #endif if (of_board_is_cdp()) { #if 0 /* Not used at Mondrian */ msm_gpiomux_install(msm8974_sec_auxpcm_configs, ARRAY_SIZE(msm8974_sec_auxpcm_configs)); #endif } else if (of_board_is_liquid() || of_board_is_fluid() || of_board_is_mtp()) msm_gpiomux_install(msm_epm_configs, ARRAY_SIZE(msm_epm_configs)); msm_gpiomux_install_nowrite(msm_lcd_configs, ARRAY_SIZE(msm_lcd_configs)); #if !defined(CONFIG_BT_BCM4335) && !defined(CONFIG_BT_BCM4339) if (of_board_is_rumi()) msm_gpiomux_install(msm_rumi_blsp_configs, ARRAY_SIZE(msm_rumi_blsp_configs)); #endif if (socinfo_get_platform_subtype() == PLATFORM_SUBTYPE_MDM) msm_gpiomux_install(mdm_configs, ARRAY_SIZE(mdm_configs)); if (of_board_is_dragonboard() && machine_is_apq8074()) msm_gpiomux_install(apq8074_dragonboard_ts_config, ARRAY_SIZE(apq8074_dragonboard_ts_config)); msm_gpiomux_install(msm_grip_configs, ARRAY_SIZE(msm_grip_configs)); msm_gpiomux_install(msm_sensors_configs, ARRAY_SIZE(msm_sensors_configs)); #ifdef CONFIG_FB_MSM_EDP_SAMSUNG msm_gpiomux_install(msm8974_lcd_config, ARRAY_SIZE(msm8974_lcd_config)); #endif msm_gpiomux_install(gpio_nc_configs, ARRAY_SIZE(gpio_nc_configs)); if (system_rev >= 9) msm_gpiomux_install(gpio_rev05_nc_configs, ARRAY_SIZE(gpio_rev05_nc_configs)); }