|
@@ -212,7 +212,7 @@ static int omap_abe_dmic_init(struct snd_soc_pcm_runtime *rtd)
|
|
|
}
|
|
|
|
|
|
/* Digital audio interface glue - connects codec <--> CPU */
|
|
|
-static struct snd_soc_dai_link sdp4430_dai[] = {
|
|
|
+static struct snd_soc_dai_link twl6040_dmic_dai[] = {
|
|
|
{
|
|
|
.name = "TWL6040",
|
|
|
.stream_name = "TWL6040",
|
|
@@ -235,11 +235,22 @@ static struct snd_soc_dai_link sdp4430_dai[] = {
|
|
|
},
|
|
|
};
|
|
|
|
|
|
+static struct snd_soc_dai_link twl6040_only_dai[] = {
|
|
|
+ {
|
|
|
+ .name = "TWL6040",
|
|
|
+ .stream_name = "TWL6040",
|
|
|
+ .cpu_dai_name = "omap-mcpdm",
|
|
|
+ .codec_dai_name = "twl6040-legacy",
|
|
|
+ .platform_name = "omap-pcm-audio",
|
|
|
+ .codec_name = "twl6040-codec",
|
|
|
+ .init = omap_abe_twl6040_init,
|
|
|
+ .ops = &omap_abe_ops,
|
|
|
+ },
|
|
|
+};
|
|
|
+
|
|
|
/* Audio machine driver */
|
|
|
static struct snd_soc_card omap_abe_card = {
|
|
|
.owner = THIS_MODULE,
|
|
|
- .dai_link = sdp4430_dai,
|
|
|
- .num_links = ARRAY_SIZE(sdp4430_dai),
|
|
|
|
|
|
.dapm_widgets = twl6040_dapm_widgets,
|
|
|
.num_dapm_widgets = ARRAY_SIZE(twl6040_dapm_widgets),
|
|
@@ -267,6 +278,14 @@ static __devinit int omap_abe_probe(struct platform_device *pdev)
|
|
|
return -ENODEV;
|
|
|
}
|
|
|
|
|
|
+ if (pdata->has_dmic) {
|
|
|
+ card->dai_link = twl6040_dmic_dai;
|
|
|
+ card->num_links = ARRAY_SIZE(twl6040_dmic_dai);
|
|
|
+ } else {
|
|
|
+ card->dai_link = twl6040_only_dai;
|
|
|
+ card->num_links = ARRAY_SIZE(twl6040_only_dai);
|
|
|
+ }
|
|
|
+
|
|
|
ret = snd_soc_register_card(card);
|
|
|
if (ret)
|
|
|
dev_err(&pdev->dev, "snd_soc_register_card() failed: %d\n",
|