return mtk_dai_etdm_cal_mclk(afe, freq, dai->id);
 }
 
-static const struct snd_soc_dai_ops mtk_dai_etdm_ops = {
-       .startup = mtk_dai_etdm_startup,
-       .shutdown = mtk_dai_etdm_shutdown,
-       .hw_params = mtk_dai_etdm_hw_params,
-       .trigger = mtk_dai_etdm_trigger,
-       .set_sysclk = mtk_dai_etdm_set_sysclk,
-       .set_fmt = mtk_dai_etdm_set_fmt,
-       .set_tdm_slot = mtk_dai_etdm_set_tdm_slot,
-};
-
-static const struct snd_soc_dai_ops mtk_dai_hdmitx_dptx_ops = {
-       .startup        = mtk_dai_hdmitx_dptx_startup,
-       .shutdown       = mtk_dai_hdmitx_dptx_shutdown,
-       .hw_params      = mtk_dai_hdmitx_dptx_hw_params,
-       .trigger        = mtk_dai_hdmitx_dptx_trigger,
-       .set_sysclk     = mtk_dai_hdmitx_dptx_set_sysclk,
-       .set_fmt        = mtk_dai_etdm_set_fmt,
-};
-
 /* dai driver */
 #define MTK_ETDM_RATES (SNDRV_PCM_RATE_8000_384000)
 
        return 0;
 }
 
+static const struct snd_soc_dai_ops mtk_dai_hdmitx_dptx_ops = {
+       .startup        = mtk_dai_hdmitx_dptx_startup,
+       .shutdown       = mtk_dai_hdmitx_dptx_shutdown,
+       .hw_params      = mtk_dai_hdmitx_dptx_hw_params,
+       .trigger        = mtk_dai_hdmitx_dptx_trigger,
+       .set_sysclk     = mtk_dai_hdmitx_dptx_set_sysclk,
+       .set_fmt        = mtk_dai_etdm_set_fmt,
+};
+
+static const struct snd_soc_dai_ops mtk_dai_hdmitx_dptx_ops2 = {
+       .probe          = mtk_dai_etdm_probe,
+       .startup        = mtk_dai_hdmitx_dptx_startup,
+       .shutdown       = mtk_dai_hdmitx_dptx_shutdown,
+       .hw_params      = mtk_dai_hdmitx_dptx_hw_params,
+       .trigger        = mtk_dai_hdmitx_dptx_trigger,
+       .set_sysclk     = mtk_dai_hdmitx_dptx_set_sysclk,
+       .set_fmt        = mtk_dai_etdm_set_fmt,
+};
+
+static const struct snd_soc_dai_ops mtk_dai_etdm_ops = {
+       .probe          = mtk_dai_etdm_probe,
+       .startup        = mtk_dai_etdm_startup,
+       .shutdown       = mtk_dai_etdm_shutdown,
+       .hw_params      = mtk_dai_etdm_hw_params,
+       .trigger        = mtk_dai_etdm_trigger,
+       .set_sysclk     = mtk_dai_etdm_set_sysclk,
+       .set_fmt        = mtk_dai_etdm_set_fmt,
+       .set_tdm_slot   = mtk_dai_etdm_set_tdm_slot,
+};
+
 static struct snd_soc_dai_driver mtk_dai_etdm_driver[] = {
        {
                .name = "DPTX",
                        .formats = MTK_ETDM_FORMATS,
                },
                .ops = &mtk_dai_etdm_ops,
-               .probe = mtk_dai_etdm_probe,
        },
        {
                .name = "ETDM2_IN",
                        .formats = MTK_ETDM_FORMATS,
                },
                .ops = &mtk_dai_etdm_ops,
-               .probe = mtk_dai_etdm_probe,
        },
        {
                .name = "ETDM1_OUT",
                        .formats = MTK_ETDM_FORMATS,
                },
                .ops = &mtk_dai_etdm_ops,
-               .probe = mtk_dai_etdm_probe,
        },
        {
                .name = "ETDM2_OUT",
                        .formats = MTK_ETDM_FORMATS,
                },
                .ops = &mtk_dai_etdm_ops,
-               .probe = mtk_dai_etdm_probe,
        },
        {
                .name = "ETDM3_OUT",
                        .rates = MTK_ETDM_RATES,
                        .formats = MTK_ETDM_FORMATS,
                },
-               .ops = &mtk_dai_hdmitx_dptx_ops,
-               .probe = mtk_dai_etdm_probe,
+               .ops = &mtk_dai_hdmitx_dptx_ops2,
        },
 };