ASoC: Add stub baseband link on Speyside
authorMark Brown <broonie@opensource.wolfsonmicro.com>
Tue, 12 Apr 2011 21:15:10 +0000 (14:15 -0700)
committerMark Brown <broonie@opensource.wolfsonmicro.com>
Wed, 13 Apr 2011 17:02:17 +0000 (10:02 -0700)
Demonstrate the connection of a baseband to the system. We add a DAI for
the link to the baseband. This will become visible to the application
layer - audio should be started from the application layer using an
application such as this:

   http://opensource.wolfsonmicro.com/~gg/bluetooth-pcm/bluetooth_pcm.c

which starts up audio as for CPU based playback and record up to the point
where data is streamed.

Due to non-availability of baseband simulation hardware we reuse the
configuration for the CPU link with the CODEC acting as clock master,
allowing signals to be observed with a scope. A more standard system
would have separate configuration for the baseband with its own ops
structure and operations. Normally the baseband would be clock master
as the baseband audio will be synchronised to the external telephony
network.

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 e171a321889fbf6d6454544fb7278a8b6621d56e..a0c14a87e23d8e215bcbb00b5b5fe91b8bb81915 100644 (file)
@@ -164,6 +164,15 @@ static struct snd_soc_dai_link speyside_dai[] = {
                .init = speyside_wm8915_init,
                .ops = &speyside_ops,
        },
+       {
+               .name = "Baseband",
+               .stream_name = "Baseband",
+               .cpu_dai_name = "wm8915-aif2",
+               .codec_dai_name = "wm1250-ev1",
+               .codec_name = "wm1250-ev1.1-0027",
+               .platform_name = "samsung-audio",
+               .ops = &speyside_ops,
+       },
 };
 
 static int speyside_wm9081_init(struct snd_soc_dapm_context *dapm)
@@ -194,6 +203,8 @@ static const struct snd_kcontrol_new controls[] = {
        SOC_DAPM_PIN_SWITCH("Main Speaker"),
        SOC_DAPM_PIN_SWITCH("Main DMIC"),
        SOC_DAPM_PIN_SWITCH("Main AMIC"),
+       SOC_DAPM_PIN_SWITCH("WM1250 Input"),
+       SOC_DAPM_PIN_SWITCH("WM1250 Output"),
 };
 
 static struct snd_soc_dapm_widget widgets[] = {