void __init rider_audio_init(void)
{
	mutex_init(&bt_sco_lock);
	mutex_init(&mic_lock);

#ifdef CONFIG_MSM8X60_AUDIO
	pr_aud_info("%s\n", __func__);
	htc_8x60_register_analog_ops(&ops);
	htc_8x60_register_icodec_ops(&iops);
	htc_8x60_register_ecodec_ops(&eops);
	acoustic_register_ops(&acoustic);
	htc_8x60_register_aic3254_ops(&aops);
	msm_set_voc_freq(8000, 8000);
#endif

	aic3254_register_ctl_ops(&cops);

	/* PMIC GPIO Init (See board-rider.c) */
	/* Reset AIC3254 */
	rider_reset_3254();
	gpio_tlmm_config(
		GPIO_CFG(RIDER_AUD_CDC_LDO_SEL, 0, GPIO_CFG_OUTPUT,
			GPIO_CFG_PULL_DOWN, GPIO_CFG_2MA), GPIO_CFG_DISABLE);
	gpio_tlmm_config(msm_snddev_gpio[0], GPIO_CFG_DISABLE);
	gpio_tlmm_config(msm_snddev_gpio[1], GPIO_CFG_DISABLE);
	gpio_tlmm_config(msm_snddev_gpio[2], GPIO_CFG_DISABLE);
}
Ejemplo n.º 2
0
void __init doubleshot_audio_init(void)
{
	mutex_init(&mic_lock);

	pr_aud_info("%s\n", __func__);
	htc_8x60_register_analog_ops(&ops);
	htc_register_q6asm_ops(&qops);
	acoustic_register_ops(&acoustic);
	htc_8x60_register_aic3254_ops(&aops);
	msm_set_voc_freq(8000, 8000);	
	aic3254_register_ctl_ops(&cops);
	doubleshot_audio_gpios_init();
	doubleshot_reset_3254();
}
void __init doubleshot_audio_init(void)
{
	int i = 0;
	mutex_init(&bt_sco_lock);
	mutex_init(&mic_lock);

#ifdef CONFIG_MSM8X60_AUDIO
	pr_aud_info("%s\n", __func__);
	htc_8x60_register_analog_ops(&ops);
	htc_8x60_register_icodec_ops(&iops);
	htc_8x60_register_ecodec_ops(&eops);
	acoustic_register_ops(&acoustic);
	htc_8x60_register_aic3254_ops(&aops);

	/*fix voice sample rate as 8KHz for 3254 dual mic.*/
	msm_set_voc_freq(8000, 8000);
#endif
	aic3254_register_ctl_ops(&cops);

	/* PMIC GPIO Init (See board-doubleshot.c) */

	/*
	EVT XA : 0x0000FFFF
	DVT XB : 0x0101FFFF
	DVT XC : 0x0202FFFF

	Use XB as critiria because there are some XA devices did
	not follow this rule.
	*/
	pr_info("%s: system_rev = 0x%08x", __func__, system_rev);
	switch (system_rev)
	{
	case XA_DEV:
		emic_micbias = OTHC_MICBIAS_1;
		bmic_micbias = OTHC_MICBIAS_2;
		break;
	case XB_DEV:
	case XC_DEV:
	default:
		emic_micbias = OTHC_MICBIAS_2;
		bmic_micbias = OTHC_MICBIAS_1;
		break;
	}
	/* Reset AIC3254 */
	doubleshot_reset_3254();
	for (i=0 ; i<sizeof(msm_snddev_gpio); i++)
		gpio_tlmm_config(msm_snddev_gpio[i], GPIO_CFG_DISABLE);
}
void __init holiday_audio_init(void)
{
	int i = 0;
	mutex_init(&bt_sco_lock);
	mutex_init(&mic_lock);
	pr_aud_info("%s: 0x%x\n", __func__, skuid);
	switch (skuid) {
	case SKU_ATT1:
	case SKU_ATT2:
	case SKU_ATT3:
		support_audience = 1;
		break;
	default:
		support_audience = 0;
		break;
	}

#ifdef CONFIG_MSM8X60_AUDIO
	pr_aud_info("%s\n", __func__);
	htc_8x60_register_analog_ops(&ops);
	htc_8x60_register_ecodec_ops(&eops);
	htc_8x60_register_icodec_ops(&iops);
	acoustic_register_ops(&acoustic);
	htc_8x60_register_aic3254_ops(&aops);
	htc_8x60_register_q6asm_ops(&qops);

#ifdef CONFIG_VP_A1026
	a1026_register_ctl_ops(&a1026ops);
#endif

	if (!support_audience)
		/*fix voice sample rate as 8KHz for 3254 dual mic.*/
		msm_set_voc_freq(8000, 8000);

	aic3254_register_ctl_ops(&cops);
#endif

	/* PMIC GPIO Init (See board-holiday.c) */
	/* Reset AIC3254 */
	holiday_reset_3254();
	for (i = 0; i < sizeof(msm_snddev_gpio); i++)
		gpio_tlmm_config(msm_snddev_gpio[i], GPIO_CFG_DISABLE);

	/* Configure A1026 GPIOs */
	audience_gpio_init();
}
void __init shooter_u_audio_init(void)
{
	int i = 0;
	mutex_init(&mic_lock);

	pr_aud_info("%s\n", __func__);
	htc_8x60_register_analog_ops(&ops);
	htc_8x60_register_icodec_ops(&iops);
	htc_register_q6asm_ops(&qops);
	acoustic_register_ops(&acoustic);

	
	for (i = 0 ; i < ARRAY_SIZE(msm_snddev_gpio); i++)
		gpio_tlmm_config(msm_snddev_gpio[i], GPIO_CFG_DISABLE);

	shooter_u_audio_gpios_init();
}
void __init villec2_audio_init(void)
{
	int i = 0;
	mutex_init(&bt_sco_lock);
	mutex_init(&mic_lock);

	pr_aud_info("%s\n", __func__);
	htc_8x60_register_analog_ops(&ops);
	htc_8x60_register_ecodec_ops(&eops);
	htc_8x60_register_icodec_ops(&iops);
	htc_8x60_register_dev_ctrl_ops(&dops);
	htc_register_q6asm_ops(&qops);
	acoustic_register_ops(&acoustic);

	/* PMIC GPIO Init (See board-villec2.c) */
	for (i = 0 ; i < ARRAY_SIZE(msm_snddev_gpio); i++)
		gpio_tlmm_config(msm_snddev_gpio[i], GPIO_CFG_DISABLE);
}
Ejemplo n.º 7
0
void __init pyramid_audio_init(void)
{
	mutex_init(&bt_sco_lock);
	mutex_init(&mic_lock);

#ifdef CONFIG_MSM8X60_AUDIO
	pr_aud_info("%s\n", __func__);
	htc_8x60_register_analog_ops(&ops);
	htc_8x60_register_icodec_ops(&iops);
	htc_8x60_register_ecodec_ops(&eops);
	acoustic_register_ops(&acoustic);
	htc_8x60_register_aic3254_ops(&aops);
	htc_8x60_register_q6asm_ops(&qops);
	msm_set_voc_freq(8000, 8000);
#endif

	aic3254_register_ctl_ops(&cops);

	/* PMIC GPIO Init (See board-pyramid.c) */

	/* Reset AIC3254 */
	pyramid_reset_3254();
}
Ejemplo n.º 8
0
void __init verdi_lte_audio_init(void)
{
	mutex_init(&bt_sco_lock);
	mutex_init(&mic_lock);

#ifdef CONFIG_MSM8X60_AUDIO_LTE
	pr_aud_info("%s\n", __func__);
	htc_8x60_register_analog_ops(&ops);
	htc_8x60_register_icodec_ops(&iops);
	htc_8x60_register_ecodec_ops(&eops);
	acoustic_register_ops(&acoustic);
	htc_8x60_register_aic3254_ops(&aops);
#endif

	aic3254_register_ctl_ops(&cops);

	/* PMIC GPIO Init (See board-verdi-lte.c) */

	mutex_init(&audio_2v85_usage_lock);
	audio_2v85_usage_counter = 0;
	verdi_lte_audio_2v85_set_voltage(1);

	/* Reset AIC3254 */
	gpio_tlmm_config(msm_aic3254_reset_gpio[0], GPIO_CFG_ENABLE);

	/* this PIN is only defined in XA board */
	if (system_rev == 0) {
		gpio_set_value(VERDI_LTE_AUD_LDO_SEL, 0);

		mdelay(1);
		config_gpio_table(msm_snddev_gpio_on, \
			ARRAY_SIZE(msm_snddev_gpio_on));
		gpio_set_value(VERDI_LTE_AUD_RX_MCLK1, 0);
		gpio_set_value(VERDI_LTE_AUD_QTR_TX_MCLK1, 0);
		gpio_set_value(VERDI_LTE_AUD_QTR_TX_I2S_SD2, 0);
	} else {
		config_gpio_table(msm_snddev_gpio_off, \
			ARRAY_SIZE(msm_snddev_gpio_off));
		gpio_set_value(VERDI_LTE_AUD_RX_MCLK1, 0);
		gpio_set_value(VERDI_LTE_AUD_QTR_TX_MCLK1, 0);
		gpio_set_value(VERDI_LTE_AUD_QTR_TX_I2S_SD2, 0);
	}

	config_gpio_table(verdi_lte_a1028_gpio, \
		ARRAY_SIZE(verdi_lte_a1028_gpio));
	gpio_set_value(VERDI_LTE_AUD_A1028_RESET, 0);
	gpio_set_value(VERDI_LTE_AUD_A1028_WAKEUP, 0);
	gpio_set_value(VERDI_LTE_AUD_A1028_INT, 0);

	config_gpio_table(verdi_lte_i2s_rx2_gpio, \
		ARRAY_SIZE(verdi_lte_i2s_rx2_gpio));
	gpio_set_value(VERDI_LTE_AUD_RX_CLK2, 0);
	gpio_set_value(VERDI_LTE_AUD_RX_WS2, 0);
	gpio_set_value(VERDI_LTE_AUD_RX_SD2, 0);
	gpio_set_value(VERDI_LTE_AUD_RX_MCLK2, 0);

	gpio_tlmm_config(msm_qtr_reset_gpio[0], GPIO_CFG_ENABLE);
	gpio_set_value(VERDI_LTE_AUD_QTR_RESET, 1);

	/* BT AUX PCM PIN init */
	config_gpio_table(aux_pcm_gpio_off, ARRAY_SIZE(aux_pcm_gpio_off));
	gpio_set_value(VERDI_LTE_GPIO_BT_PCM_OUT, 0);
	gpio_set_value(VERDI_LTE_GPIO_BT_PCM_SYNC, 0);
	gpio_set_value(VERDI_LTE_GPIO_BT_PCM_CLK, 0);

	audio_first_boot_counter = 0;
}