ASoC: Add basic widgets for WM8915 Speyside
authorMark Brown <broonie@opensource.wolfsonmicro.com>
Tue, 12 Apr 2011 06:09:15 +0000 (23:09 -0700)
committerMark Brown <broonie@opensource.wolfsonmicro.com>
Wed, 13 Apr 2011 17:01:52 +0000 (10:01 -0700)
Provide widgets for the basic widgets connected directly to the WM8915
on Speyside - the headphones, speaker, digital and analogue microphones.
For the outputs this is just documentation, for the inputs this ensures
that the relevant microphone biases are enabled when they are in use.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Jassi Brar <jassisinghbrar@gmail.com>
Acked-by: Liam Girdwood <lrg@ti.com>
sound/soc/samsung/speyside.c

index f6dcee7b218b5c3efbe5c47f84646f8fba3991bb..6ec44a354a6df29ebb8235f099d680b65cfc6134 100644 (file)
@@ -63,10 +63,38 @@ static struct snd_soc_dai_link speyside_dai[] = {
        },
 };
 
+static struct snd_soc_dapm_widget widgets[] = {
+       SND_SOC_DAPM_HP("Headphone", NULL),
+
+       SND_SOC_DAPM_SPK("Main Speaker", NULL),
+
+       SND_SOC_DAPM_MIC("Main AMIC", NULL),
+       SND_SOC_DAPM_MIC("Main DMIC", NULL),
+};
+
+static struct snd_soc_dapm_route audio_paths[] = {
+       { "IN1LP", NULL, "MICB2" },
+       { "MICB2", NULL, "Main AMIC" },
+
+       { "DMIC1DAT", NULL, "MICB1" },
+       { "DMIC2DAT", NULL, "MICB1" },
+       { "MICB1", NULL, "Main DMIC" },
+
+       { "Headphone", NULL, "HPOUT1L" },
+       { "Headphone", NULL, "HPOUT1R" },
+
+       { "Main Speaker", NULL, "SPKDAT" },
+};
+
 static struct snd_soc_card speyside = {
        .name = "Speyside",
        .dai_link = speyside_dai,
        .num_links = ARRAY_SIZE(speyside_dai),
+
+       .dapm_widgets = widgets,
+       .num_dapm_widgets = ARRAY_SIZE(widgets),
+       .dapm_routes = audio_paths,
+       .num_dapm_routes = ARRAY_SIZE(audio_paths),
 };
 
 static __devinit int speyside_probe(struct platform_device *pdev)