static struct snd_soc_dai_link migor_dai = {
        .name = "wm8978",
        .stream_name = "WM8978",
-       .cpu_dai_name = "siu-i2s-dai",
+       .cpu_dai_name = "siu-pcm-audio",
        .codec_dai_name = "wm8978-hifi",
        .platform_name = "siu-pcm-audio",
        .codec_name = "wm8978.0-001a",
 
        .ops = &siu_dai_ops,
 };
 
+static const struct snd_soc_component_driver siu_i2s_component = {
+       .name           = "siu-i2s",
+};
+
 static int siu_probe(struct platform_device *pdev)
 {
        const struct firmware *fw_entry;
        dev_set_drvdata(&pdev->dev, info);
 
        /* register using ARRAY version so we can keep dai name */
-       ret = snd_soc_register_dais(&pdev->dev, &siu_i2s_dai, 1);
+       ret = snd_soc_register_component(&pdev->dev, &siu_i2s_component,
+                                        &siu_i2s_dai, 1);
        if (ret < 0)
                goto edaiinit;
 
        return ret;
 
 esocregp:
-       snd_soc_unregister_dai(&pdev->dev);
+       snd_soc_unregister_component(&pdev->dev);
 edaiinit:
        iounmap(info->reg);
 emapreg:
        pm_runtime_disable(&pdev->dev);
 
        snd_soc_unregister_platform(&pdev->dev);
-       snd_soc_unregister_dai(&pdev->dev);
+       snd_soc_unregister_component(&pdev->dev);
 
        iounmap(info->reg);
        iounmap(info->yram);