static int config_pcm(int mode) { int pin, rc = 0; if (mode == BT_PCM_ON) { config_pcm_i2s_mode(1); pr_err("%s mode =BT_PCM_ON", __func__); for (pin = 0; pin < ARRAY_SIZE(bt_config_pcm_on); pin++) { rc = gpio_tlmm_config(bt_config_pcm_on[pin], GPIO_CFG_ENABLE); if (rc < 0) return rc; } } else if (mode == BT_PCM_OFF) { pr_err("%s mode =BT_PCM_OFF", __func__); for (pin = 0; pin < ARRAY_SIZE(bt_config_pcm_off); pin++) { rc = gpio_tlmm_config(bt_config_pcm_off[pin], GPIO_CFG_ENABLE); if (rc < 0) return rc; } } return rc; }
static int config_i2s(int mode) { int pin, rc = 0; if (mode == FM_I2S_ON) { if (machine_is_msm7x27a_surf() || machine_is_msm7625a_surf() || machine_is_msm8625_surf()) config_pcm_i2s_mode(0); pr_err("%s mode = FM_I2S_ON", __func__); rc = switch_pcm_i2s_reg_mode(0); if (rc) { pr_err("switch mode failed"); return rc; } for (pin = 0; pin < ARRAY_SIZE(fm_i2s_config_power_on); pin++) { rc = gpio_tlmm_config( fm_i2s_config_power_on[pin], GPIO_CFG_ENABLE ); if (rc < 0) return rc; } } else if (mode == FM_I2S_OFF) { pr_err("%s mode = FM_I2S_OFF", __func__); rc = switch_pcm_i2s_reg_mode(1); if (rc) { pr_err("switch mode failed"); return rc; } for (pin = 0; pin < ARRAY_SIZE(fm_i2s_config_power_off); pin++) { rc = gpio_tlmm_config( fm_i2s_config_power_off[pin], GPIO_CFG_ENABLE ); if (rc < 0) return rc; } } return rc; }