summaryrefslogtreecommitdiff
path: root/sound/soc/samsung/littlemill.c
diff options
context:
space:
mode:
authorMark Brown <broonie@opensource.wolfsonmicro.com>2011-12-02 19:55:52 +0400
committerMark Brown <broonie@opensource.wolfsonmicro.com>2011-12-02 21:37:38 +0400
commitf2e2026c98b74028b55901711c5df98e6d2ad8c6 (patch)
tree0f582158fe6d32e4f5e5371129d878e376043d69 /sound/soc/samsung/littlemill.c
parent3631e8d43e385e851f88637244a287433246c097 (diff)
downloadlinux-f2e2026c98b74028b55901711c5df98e6d2ad8c6.tar.xz
ASoC: Add WM8958 based headset detection on Littlemill
The board supports CODECs that won't work with this but the CODEC driver will check to see if it's running on the right chip for us. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Diffstat (limited to 'sound/soc/samsung/littlemill.c')
-rw-r--r--sound/soc/samsung/littlemill.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/sound/soc/samsung/littlemill.c b/sound/soc/samsung/littlemill.c
index d2a44ab3c207..5d7680f4b7c1 100644
--- a/sound/soc/samsung/littlemill.c
+++ b/sound/soc/samsung/littlemill.c
@@ -154,8 +154,11 @@ static struct snd_soc_dapm_route audio_paths[] = {
{ "Headphone", NULL, "HPOUT1R" },
};
+static struct snd_soc_jack littlemill_headset;
+
static int littlemill_late_probe(struct snd_soc_card *card)
{
+ struct snd_soc_codec *codec = card->rtd[0].codec;
struct snd_soc_dai *codec_dai = card->rtd[0].codec_dai;
int ret;
@@ -164,6 +167,18 @@ static int littlemill_late_probe(struct snd_soc_card *card)
if (ret < 0)
return ret;
+ ret = snd_soc_jack_new(codec, "Headset",
+ SND_JACK_HEADSET | SND_JACK_MECHANICAL |
+ SND_JACK_BTN_0 | SND_JACK_BTN_1 |
+ SND_JACK_BTN_2 | SND_JACK_BTN_3 |
+ SND_JACK_BTN_4 | SND_JACK_BTN_5,
+ &littlemill_headset);
+ if (ret)
+ return ret;
+
+ /* This will check device compatibility itself */
+ wm8958_mic_detect(codec, &littlemill_headset, NULL, NULL);
+
return 0;
}