aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sound/soc/omap/omap-abe-twl6040.c25
1 files changed, 22 insertions, 3 deletions
diff --git a/sound/soc/omap/omap-abe-twl6040.c b/sound/soc/omap/omap-abe-twl6040.c
index f2b5fec8f680..5b781f904cd7 100644
--- a/sound/soc/omap/omap-abe-twl6040.c
+++ b/sound/soc/omap/omap-abe-twl6040.c
@@ -212,7 +212,7 @@ static int omap_abe_dmic_init(struct snd_soc_pcm_runtime *rtd)
212} 212}
213 213
214/* Digital audio interface glue - connects codec <--> CPU */ 214/* Digital audio interface glue - connects codec <--> CPU */
215static struct snd_soc_dai_link sdp4430_dai[] = { 215static struct snd_soc_dai_link twl6040_dmic_dai[] = {
216 { 216 {
217 .name = "TWL6040", 217 .name = "TWL6040",
218 .stream_name = "TWL6040", 218 .stream_name = "TWL6040",
@@ -235,11 +235,22 @@ static struct snd_soc_dai_link sdp4430_dai[] = {
235 }, 235 },
236}; 236};
237 237
238static struct snd_soc_dai_link twl6040_only_dai[] = {
239 {
240 .name = "TWL6040",
241 .stream_name = "TWL6040",
242 .cpu_dai_name = "omap-mcpdm",
243 .codec_dai_name = "twl6040-legacy",
244 .platform_name = "omap-pcm-audio",
245 .codec_name = "twl6040-codec",
246 .init = omap_abe_twl6040_init,
247 .ops = &omap_abe_ops,
248 },
249};
250
238/* Audio machine driver */ 251/* Audio machine driver */
239static struct snd_soc_card omap_abe_card = { 252static struct snd_soc_card omap_abe_card = {
240 .owner = THIS_MODULE, 253 .owner = THIS_MODULE,
241 .dai_link = sdp4430_dai,
242 .num_links = ARRAY_SIZE(sdp4430_dai),
243 254
244 .dapm_widgets = twl6040_dapm_widgets, 255 .dapm_widgets = twl6040_dapm_widgets,
245 .num_dapm_widgets = ARRAY_SIZE(twl6040_dapm_widgets), 256 .num_dapm_widgets = ARRAY_SIZE(twl6040_dapm_widgets),
@@ -267,6 +278,14 @@ static __devinit int omap_abe_probe(struct platform_device *pdev)
267 return -ENODEV; 278 return -ENODEV;
268 } 279 }
269 280
281 if (pdata->has_dmic) {
282 card->dai_link = twl6040_dmic_dai;
283 card->num_links = ARRAY_SIZE(twl6040_dmic_dai);
284 } else {
285 card->dai_link = twl6040_only_dai;
286 card->num_links = ARRAY_SIZE(twl6040_only_dai);
287 }
288
270 ret = snd_soc_register_card(card); 289 ret = snd_soc_register_card(card);
271 if (ret) 290 if (ret)
272 dev_err(&pdev->dev, "snd_soc_register_card() failed: %d\n", 291 dev_err(&pdev->dev, "snd_soc_register_card() failed: %d\n",