void mecha_snddev_hsed_pamp_on(int en)
{
	pr_aud_info("%s %d\n", __func__, en);
	if (en) {
		if (system_rev == 0){
			/*gpio_set_value(PM8058_GPIO_PM_TO_SYS(MECHA_GPIO_AUD_AMP_EN_XA), 1);*/
			gpio_request(PM8058_GPIO_PM_TO_SYS(MECHA_GPIO_AUD_AMP_EN_XA),"HP_AMP_EN");
			gpio_direction_output(PM8058_GPIO_PM_TO_SYS(MECHA_GPIO_AUD_AMP_EN_XA), 1);
		}else{
			/*gpio_set_value(MECHA_GPIO_AUD_AMP_EN, 1);*/
			gpio_request(MECHA_GPIO_AUD_AMP_EN,"HP_AMP_EN");
			gpio_direction_output(MECHA_GPIO_AUD_AMP_EN, 1);
		}
		mdelay(90);
		set_headset_amp(1);
		if (!atomic_read(&aic3254_ctl))
			curr_rx_mode |= BIT_HEADSET;
		mdelay(30);
	} else {
		set_headset_amp(0);
		if (system_rev == 0){
			/*gpio_set_value(PM8058_GPIO_PM_TO_SYS(MECHA_GPIO_AUD_AMP_EN_XA), 0);*/
			gpio_request(PM8058_GPIO_PM_TO_SYS(MECHA_GPIO_AUD_AMP_EN_XA),"HP_AMP_EN");
			gpio_direction_output(PM8058_GPIO_PM_TO_SYS(MECHA_GPIO_AUD_AMP_EN_XA), 0);
		}else{
			/*gpio_set_value(MECHA_GPIO_AUD_AMP_EN, 0);*/
			gpio_request(MECHA_GPIO_AUD_AMP_EN,"HP_AMP_EN");
			gpio_direction_output(MECHA_GPIO_AUD_AMP_EN, 0);
		}
		if (!atomic_read(&aic3254_ctl))
			curr_rx_mode &= ~BIT_HEADSET;
	}
}
void speedy_snddev_hsed_pamp_on(int en)
{
	pr_info("%s %d\n", __func__, en);
	if (en) {
		vreg_ncp_enable(1);
		pm8058_spkr_gpio_cfg(1);
		mdelay(30);
		set_headset_amp(1);
	} else {
		set_headset_amp(0);
		pm8058_spkr_gpio_cfg(0);
		vreg_ncp_enable(0);
		}
}
void holiday_snddev_fmhs_pamp_on(int en)
{
	pr_aud_info("%s %d\n", __func__, en);
	if (en) {
		gpio_set_value(PM8058_GPIO_PM_TO_SYS(HOLIDAY_AUD_HANDSET_ENO), 1);
		set_headset_amp(1);
		if (!atomic_read(&aic3254_ctl))
			curr_rx_mode |= BIT_FM_HS;
	} else {
		set_headset_amp(0);
		gpio_set_value(PM8058_GPIO_PM_TO_SYS(HOLIDAY_AUD_HANDSET_ENO), 0);
		if (!atomic_read(&aic3254_ctl))
			curr_rx_mode &= ~BIT_FM_HS;
	}
}
void pyramid_snddev_fmhs_pamp_on(int en)
{
	pr_aud_info("%s %d\n", __func__, en);
	if (en) {
		gpio_set_value(PM8058_GPIO_PM_TO_SYS(PYRAMID_AUD_HP_EN), 1);
		set_headset_amp(1);
		if (!atomic_read(&aic3254_ctl))
			curr_rx_mode |= BIT_FM_HS;
	} else {
		set_headset_amp(0);
		gpio_set_value(PM8058_GPIO_PM_TO_SYS(PYRAMID_AUD_HP_EN), 0);
		if (!atomic_read(&aic3254_ctl))
			curr_rx_mode &= ~BIT_FM_HS;
	}
}
void runnymede_snddev_hsed_pamp_on(int en)
{
	pr_aud_info("%s %d\n", __func__, en);
	if (en) {
		gpio_set_value(PM8058_GPIO_PM_TO_SYS(runnymede_AUD_AMP_EN), 1);
		mdelay(30);
		set_headset_amp(1);
		if (!atomic_read(&aic3254_ctl))
			curr_rx_mode |= BIT_HEADSET;
	} else {
		set_headset_amp(0);
		gpio_set_value(PM8058_GPIO_PM_TO_SYS(runnymede_AUD_AMP_EN), 0);
		if (!atomic_read(&aic3254_ctl))
			curr_rx_mode &= ~BIT_HEADSET;
	}
}
void incrediblec_headset_enable(int en)
{
	D("%s %d\n", __func__, en);
        /* enable audio amp */
	if (en != headset_status) {
		headset_status = en;
		if(en) {
			gpio_set_value(INCREDIBLEC_AUD_JACKHP_EN, 1);
			mdelay(10);
			set_headset_amp(1);
		} else {
			set_headset_amp(0);
			gpio_set_value(INCREDIBLEC_AUD_JACKHP_EN, 0);
		}
	}
}
void doubleshot_snddev_hsed_pamp_on(int en)
{
	pr_aud_info("%s %d\n", __func__, en);
	if (en) {
		msleep(50);
		gpio_direction_output(PM8058_GPIO_PM_TO_SYS(DOUBLESHOT_AUD_HP_EN), 1);
		set_headset_amp(1);
		if (!atomic_read(&aic3254_ctl))
			curr_rx_mode |= BIT_HEADSET;
	} else {
		set_headset_amp(0);
		gpio_direction_output(PM8058_GPIO_PM_TO_SYS(DOUBLESHOT_AUD_HP_EN), 0);
		if (!atomic_read(&aic3254_ctl))
			curr_rx_mode &= ~BIT_HEADSET;
	}
}
Beispiel #8
0
void supersonic_headset_enable(int en)
{
	D("%s %d\n", __func__, en);
        /* enable audio amp */
	if (en != headset_status) {
		headset_status = en;
		if(en) {
			gpio_set_value(SUPERSONIC_AUD_JACKHP_EN, 1);
			mdelay(10);
			if (system_rev == 0)
				set_headset_amp(1);
		} else {
			if (system_rev == 0)
				set_headset_amp(0);
			gpio_set_value(SUPERSONIC_AUD_JACKHP_EN, 0);
		}
	}
}
void shooteru_snddev_fmhs_pamp_on(int en)
{
	pr_aud_info("%s %d\n", __func__, en);
	if (en) {
		msleep(50);
		gpio_set_value(PM8058_GPIO_PM_TO_SYS(SHOOTERU_AUD_HANDSET_ENO), 1);
		set_headset_amp(1);

		if (!atomic_read(&aic3254_ctl))
			curr_rx_mode |= BIT_FM_HS;
		msleep(5);
	} else {
		set_headset_amp(0);
		gpio_set_value(PM8058_GPIO_PM_TO_SYS(SHOOTERU_AUD_HANDSET_ENO), 0);
		if (!atomic_read(&aic3254_ctl))
			curr_rx_mode &= ~BIT_FM_HS;
	}
}
void doubleshot_snddev_hsed_pamp_on(int en)
{
	pr_aud_info("%s %d\n", __func__, en);
	if (en) {
		/* enable rx route */
		gpio_set_value(PM8058_GPIO_PM_TO_SYS(DOUBLESHOT_AUD_HANDSET_ENO), 1);
		msleep(50);
		set_headset_amp(1);

		if (!atomic_read(&aic3254_ctl))
			curr_rx_mode |= BIT_HEADSET;
	} else {
		/* disable rx route */
		set_headset_amp(0);
		gpio_set_value(PM8058_GPIO_PM_TO_SYS(DOUBLESHOT_AUD_HANDSET_ENO), 0);
		if (!atomic_read(&aic3254_ctl))
			curr_rx_mode &= ~BIT_HEADSET;
	}
}
void shooter_u_snddev_hsed_pamp_on(int en)
{
	pr_aud_info("%s %d\n", __func__, en);
	if (en) {
		msleep(30);
		gpio_request(PM8058_GPIO_PM_TO_SYS(SHOOTER_U_AUD_HP_EN),
						"AUD_HP_EN");
		gpio_direction_output(PM8058_GPIO_PM_TO_SYS(SHOOTER_U_AUD_HP_EN), 1);
		set_headset_amp(1);
		if (!atomic_read(&aic3254_ctl))
			curr_rx_mode |= BIT_HEADSET;
	} else {
		set_headset_amp(0);
		gpio_request(PM8058_GPIO_PM_TO_SYS(SHOOTER_U_AUD_HP_EN),
						"AUD_HP_EN");
		gpio_direction_output(PM8058_GPIO_PM_TO_SYS(SHOOTER_U_AUD_HP_EN), 0);
		if (!atomic_read(&aic3254_ctl))
			curr_rx_mode &= ~BIT_HEADSET;
	}
}
void mecha_snddev_hsed_pamp_on(int en)
{
	pr_info("%s %d\n", __func__, en);
	if (en) {
		if (system_rev == 0)
			gpio_set_value(PM8058_GPIO_PM_TO_SYS(MECHA_GPIO_AUD_AMP_EN_XA), 1);
		else
			gpio_set_value(MECHA_GPIO_AUD_AMP_EN, 1);
		mdelay(30);
		set_headset_amp(1);
		if (!atomic_read(&aic3254_ctl))
			curr_rx_mode |= BIT_HEADSET;
	} else {
		set_headset_amp(0);
		if (system_rev == 0)
			gpio_set_value(PM8058_GPIO_PM_TO_SYS(MECHA_GPIO_AUD_AMP_EN_XA), 0);
		else
			gpio_set_value(MECHA_GPIO_AUD_AMP_EN, 0);

		if (!atomic_read(&aic3254_ctl))
			curr_rx_mode &= ~BIT_HEADSET;
	}
}