};
 
 /* magician digital audio interface glue - connects codec <--> CPU */
+SND_SOC_DAILINK_DEFS(playback,
+       DAILINK_COMP_ARRAY(COMP_CPU("pxa-ssp-dai.0")),
+       DAILINK_COMP_ARRAY(COMP_CODEC("uda1380-codec.0-0018",
+                                     "uda1380-hifi-playback")),
+       DAILINK_COMP_ARRAY(COMP_PLATFORM("pxa-pcm-audio")));
+
+SND_SOC_DAILINK_DEFS(capture,
+       DAILINK_COMP_ARRAY(COMP_CPU("pxa2xx-i2s")),
+       DAILINK_COMP_ARRAY(COMP_CODEC("uda1380-codec.0-0018",
+                                     "uda1380-hifi-capture")),
+       DAILINK_COMP_ARRAY(COMP_PLATFORM("pxa-pcm-audio")));
+
 static struct snd_soc_dai_link magician_dai[] = {
 {
        .name = "uda1380",
        .stream_name = "UDA1380 Playback",
-       .cpu_dai_name = "pxa-ssp-dai.0",
-       .codec_dai_name = "uda1380-hifi-playback",
-       .platform_name = "pxa-pcm-audio",
-       .codec_name = "uda1380-codec.0-0018",
        .ops = &magician_playback_ops,
+       SND_SOC_DAILINK_REG(playback),
 },
 {
        .name = "uda1380",
        .stream_name = "UDA1380 Capture",
-       .cpu_dai_name = "pxa2xx-i2s",
-       .codec_dai_name = "uda1380-hifi-capture",
-       .platform_name = "pxa-pcm-audio",
-       .codec_name = "uda1380-codec.0-0018",
        .ops = &magician_capture_ops,
+       SND_SOC_DAILINK_REG(capture),
 }
 };