phonepad: rt3261 add HDMI codec_set_spk function.

This commit is contained in:
宋秀杰
2012-10-09 18:37:39 +08:00
parent a197e87b57
commit ef39e638be
3 changed files with 39 additions and 0 deletions

View File

@@ -484,6 +484,29 @@ static int rt3261_readable_register(
}
}
void codec_set_spk(bool on)
{
struct snd_soc_codec *codec = rt3261_codec;
DBG("%s: %d\n", __func__, on);
if(!codec)
return;
if(on){
DBG("snd_soc_dapm_enable_pin\n");
snd_soc_dapm_enable_pin(&codec->dapm, "Headphone Jack");
snd_soc_dapm_enable_pin(&codec->dapm, "Ext Spk");
}else{
DBG("snd_soc_dapm_disable_pin\n");
snd_soc_dapm_disable_pin(&codec->dapm, "Headphone Jack");
snd_soc_dapm_disable_pin(&codec->dapm, "Ext Spk");
}
snd_soc_dapm_sync(&codec->dapm);
}
/**
* rt3261_headset_mic_detect - Detect headset.
* @codec: SoC audio codec device.

View File

@@ -2071,6 +2071,8 @@ enum {
#define RT3261_HEADSET_DET BIT(1)
#define RT3261_HEADPHO_DET BIT(2)
void codec_set_spk(bool on);
int rt3261_headset_mic_detect(int jack_insert);
/* System Clock Source */

View File

@@ -172,6 +172,8 @@ static int rt3261_voice_hw_params(struct snd_pcm_substream *substream,
static const struct snd_soc_dapm_widget rt3261_dapm_widgets[] = {
SND_SOC_DAPM_MIC("Mic Jack", NULL),
SND_SOC_DAPM_MIC("Headset Jack", NULL),
SND_SOC_DAPM_SPK("Ext Spk", NULL),
SND_SOC_DAPM_HP("Headphone Jack", NULL),
};
static const struct snd_soc_dapm_route audio_map[]={
@@ -183,11 +185,21 @@ static const struct snd_soc_dapm_route audio_map[]={
// HP MIC
{"micbias1", NULL, "Headset Jack"},
{"MIC3", NULL, "micbias1"},
{"Ext Spk", NULL, "SPOLP"},
{"Ext Spk", NULL, "SPOLN"},
{"Ext Spk", NULL, "SPORP"},
{"Ext Spk", NULL, "SPORN"},
{"Headphone Jack", NULL, "HPOL"},
{"Headphone Jack", NULL, "HPOR"},
} ;
static const struct snd_kcontrol_new rk_controls[] = {
SOC_DAPM_PIN_SWITCH("Mic Jack"),
SOC_DAPM_PIN_SWITCH("Headset Jack"),
SOC_DAPM_PIN_SWITCH("Ext Spk"),
SOC_DAPM_PIN_SWITCH("Headphone Jack"),
};
/*
@@ -211,6 +223,8 @@ static int rk29_rt3261_init(struct snd_soc_pcm_runtime *rtd)
snd_soc_dapm_enable_pin(dapm, "Mic Jack");
snd_soc_dapm_enable_pin(dapm, "Headset Jack");
snd_soc_dapm_enable_pin(dapm, "Ext Spk");
snd_soc_dapm_enable_pin(dapm, "Headphone Jack");
snd_soc_dapm_sync(dapm);
return 0;