diff options
author | Lopez Cruz, Misael <x0052729@ti.com> | 2009-03-19 02:07:34 -0400 |
---|---|---|
committer | Mark Brown <broonie@opensource.wolfsonmicro.com> | 2009-03-19 07:56:16 -0400 |
commit | 632087748c3795a54d5631e640df65592774e045 (patch) | |
tree | 9012485098b8f69b09b450ddcbdd5f3852e2857f /sound/soc | |
parent | f8d5fc924b1bec95f47b0a9e8f9a6e22fa1c7b05 (diff) |
ASoC: Declare Headset as Mic and Headphone widgets for SDP3430
Headset was declared previously as a Headphone widget connecting
HSMIC and HSOL/HSOR pins of TWL4030 codec in SDP430 machine driver.
The capture path becomes invalid as the Headphone widget is not a
valid input endpoint.
Instead of that, the Headset is declared as separate Microphone
and Headphone widgets. Current patch modifies audio map:
- Headset Mic: HSMIC with bias
- Headset Stereophone: HSOL, HSOR
Signed-off-by: Misael Lopez Cruz <x0052729@ti.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Diffstat (limited to 'sound/soc')
-rw-r--r-- | sound/soc/omap/sdp3430.c | 24 |
1 files changed, 16 insertions, 8 deletions
diff --git a/sound/soc/omap/sdp3430.c b/sound/soc/omap/sdp3430.c index 0a41de677e77..10f1c867f11d 100644 --- a/sound/soc/omap/sdp3430.c +++ b/sound/soc/omap/sdp3430.c | |||
@@ -90,8 +90,12 @@ static struct snd_soc_jack hs_jack; | |||
90 | /* Headset jack detection DAPM pins */ | 90 | /* Headset jack detection DAPM pins */ |
91 | static struct snd_soc_jack_pin hs_jack_pins[] = { | 91 | static struct snd_soc_jack_pin hs_jack_pins[] = { |
92 | { | 92 | { |
93 | .pin = "Headset Jack", | 93 | .pin = "Headset Mic", |
94 | .mask = SND_JACK_HEADSET, | 94 | .mask = SND_JACK_MICROPHONE, |
95 | }, | ||
96 | { | ||
97 | .pin = "Headset Stereophone", | ||
98 | .mask = SND_JACK_HEADPHONE, | ||
95 | }, | 99 | }, |
96 | }; | 100 | }; |
97 | 101 | ||
@@ -109,7 +113,8 @@ static struct snd_soc_jack_gpio hs_jack_gpios[] = { | |||
109 | static const struct snd_soc_dapm_widget sdp3430_twl4030_dapm_widgets[] = { | 113 | static const struct snd_soc_dapm_widget sdp3430_twl4030_dapm_widgets[] = { |
110 | SND_SOC_DAPM_MIC("Ext Mic", NULL), | 114 | SND_SOC_DAPM_MIC("Ext Mic", NULL), |
111 | SND_SOC_DAPM_SPK("Ext Spk", NULL), | 115 | SND_SOC_DAPM_SPK("Ext Spk", NULL), |
112 | SND_SOC_DAPM_HP("Headset Jack", NULL), | 116 | SND_SOC_DAPM_MIC("Headset Mic", NULL), |
117 | SND_SOC_DAPM_HP("Headset Stereophone", NULL), | ||
113 | }; | 118 | }; |
114 | 119 | ||
115 | static const struct snd_soc_dapm_route audio_map[] = { | 120 | static const struct snd_soc_dapm_route audio_map[] = { |
@@ -123,11 +128,13 @@ static const struct snd_soc_dapm_route audio_map[] = { | |||
123 | {"Ext Spk", NULL, "HFL"}, | 128 | {"Ext Spk", NULL, "HFL"}, |
124 | {"Ext Spk", NULL, "HFR"}, | 129 | {"Ext Spk", NULL, "HFR"}, |
125 | 130 | ||
126 | /* Headset: HSMIC (with bias), HSOL, HSOR */ | 131 | /* Headset Mic: HSMIC with bias */ |
127 | {"Headset Jack", NULL, "HSOL"}, | ||
128 | {"Headset Jack", NULL, "HSOR"}, | ||
129 | {"HSMIC", NULL, "Headset Mic Bias"}, | 132 | {"HSMIC", NULL, "Headset Mic Bias"}, |
130 | {"Headset Mic Bias", NULL, "Headset Jack"}, | 133 | {"Headset Mic Bias", NULL, "Headset Mic"}, |
134 | |||
135 | /* Headset Stereophone (Headphone): HSOL, HSOR */ | ||
136 | {"Headset Stereophone", NULL, "HSOL"}, | ||
137 | {"Headset Stereophone", NULL, "HSOR"}, | ||
131 | }; | 138 | }; |
132 | 139 | ||
133 | static int sdp3430_twl4030_init(struct snd_soc_codec *codec) | 140 | static int sdp3430_twl4030_init(struct snd_soc_codec *codec) |
@@ -146,7 +153,8 @@ static int sdp3430_twl4030_init(struct snd_soc_codec *codec) | |||
146 | /* SDP3430 connected pins */ | 153 | /* SDP3430 connected pins */ |
147 | snd_soc_dapm_enable_pin(codec, "Ext Mic"); | 154 | snd_soc_dapm_enable_pin(codec, "Ext Mic"); |
148 | snd_soc_dapm_enable_pin(codec, "Ext Spk"); | 155 | snd_soc_dapm_enable_pin(codec, "Ext Spk"); |
149 | snd_soc_dapm_disable_pin(codec, "Headset Jack"); | 156 | snd_soc_dapm_disable_pin(codec, "Headset Mic"); |
157 | snd_soc_dapm_disable_pin(codec, "Headset Stereophone"); | ||
150 | 158 | ||
151 | /* TWL4030 not connected pins */ | 159 | /* TWL4030 not connected pins */ |
152 | snd_soc_dapm_nc_pin(codec, "AUXL"); | 160 | snd_soc_dapm_nc_pin(codec, "AUXL"); |