return 0;
 }
 
+SND_SOC_DAILINK_DEF(dummy,
+       DAILINK_COMP_ARRAY(COMP_DUMMY()));
+
+SND_SOC_DAILINK_DEF(system,
+       DAILINK_COMP_ARRAY(COMP_CPU("System Pin")));
+
+SND_SOC_DAILINK_DEF(offload0,
+       DAILINK_COMP_ARRAY(COMP_CPU("Offload0 Pin")));
+
+SND_SOC_DAILINK_DEF(offload1,
+       DAILINK_COMP_ARRAY(COMP_CPU("Offload1 Pin")));
+
+SND_SOC_DAILINK_DEF(loopback,
+       DAILINK_COMP_ARRAY(COMP_CPU("Loopback Pin")));
+
+SND_SOC_DAILINK_DEF(codec,
+       DAILINK_COMP_ARRAY(COMP_CODEC("i2c-INT33CA:00", "rt5640-aif1")));
+
+SND_SOC_DAILINK_DEF(platform,
+       DAILINK_COMP_ARRAY(COMP_PLATFORM("haswell-pcm-audio")));
+
 static struct snd_soc_dai_link haswell_rt5640_dais[] = {
        /* Front End DAI links */
        {
                .name = "System",
                .stream_name = "System Playback/Capture",
-               .cpu_dai_name = "System Pin",
-               .platform_name = "haswell-pcm-audio",
                .dynamic = 1,
-               .codec_name = "snd-soc-dummy",
-               .codec_dai_name = "snd-soc-dummy-dai",
                .init = haswell_rtd_init,
                .trigger = {SND_SOC_DPCM_TRIGGER_POST, SND_SOC_DPCM_TRIGGER_POST},
                .dpcm_playback = 1,
                .dpcm_capture = 1,
+               SND_SOC_DAILINK_REG(system, dummy, platform),
        },
        {
                .name = "Offload0",
                .stream_name = "Offload0 Playback",
-               .cpu_dai_name = "Offload0 Pin",
-               .platform_name = "haswell-pcm-audio",
                .dynamic = 1,
-               .codec_name = "snd-soc-dummy",
-               .codec_dai_name = "snd-soc-dummy-dai",
                .trigger = {SND_SOC_DPCM_TRIGGER_POST, SND_SOC_DPCM_TRIGGER_POST},
                .dpcm_playback = 1,
+               SND_SOC_DAILINK_REG(offload0, dummy, platform),
        },
        {
                .name = "Offload1",
                .stream_name = "Offload1 Playback",
-               .cpu_dai_name = "Offload1 Pin",
-               .platform_name = "haswell-pcm-audio",
                .dynamic = 1,
-               .codec_name = "snd-soc-dummy",
-               .codec_dai_name = "snd-soc-dummy-dai",
                .trigger = {SND_SOC_DPCM_TRIGGER_POST, SND_SOC_DPCM_TRIGGER_POST},
                .dpcm_playback = 1,
+               SND_SOC_DAILINK_REG(offload1, dummy, platform),
        },
        {
                .name = "Loopback",
                .stream_name = "Loopback",
-               .cpu_dai_name = "Loopback Pin",
-               .platform_name = "haswell-pcm-audio",
                .dynamic = 1,
-               .codec_name = "snd-soc-dummy",
-               .codec_dai_name = "snd-soc-dummy-dai",
                .trigger = {SND_SOC_DPCM_TRIGGER_POST, SND_SOC_DPCM_TRIGGER_POST},
                .dpcm_capture = 1,
+               SND_SOC_DAILINK_REG(loopback, dummy, platform),
        },
 
        /* Back End DAI links */
                /* SSP0 - Codec */
                .name = "Codec",
                .id = 0,
-               .cpu_dai_name = "snd-soc-dummy-dai",
-               .platform_name = "snd-soc-dummy",
                .no_pcm = 1,
-               .codec_name = "i2c-INT33CA:00",
-               .codec_dai_name = "rt5640-aif1",
                .dai_fmt = SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_NB_NF |
                        SND_SOC_DAIFMT_CBS_CFS,
                .ignore_suspend = 1,
                .ops = &haswell_rt5640_ops,
                .dpcm_playback = 1,
                .dpcm_capture = 1,
+               SND_SOC_DAILINK_REG(dummy, codec, dummy),
        },
 };