SND_SOC_DPCM_TRIGGER_POST},
                .ops = &mt2701_cs42448_48k_fe_ops,
                .dynamic = 1,
-               .dpcm_playback = 1,
+               .playback_only = 1,
                SND_SOC_DAILINK_REG(fe_multi_ch_out),
        },
        [DAI_LINK_FE_PCM0_IN] = {
                            SND_SOC_DPCM_TRIGGER_POST},
                .ops = &mt2701_cs42448_48k_fe_ops,
                .dynamic = 1,
-               .dpcm_capture = 1,
+               .capture_only = 1,
                SND_SOC_DAILINK_REG(fe_pcm0_in),
        },
        [DAI_LINK_FE_PCM1_IN] = {
                            SND_SOC_DPCM_TRIGGER_POST},
                .ops = &mt2701_cs42448_48k_fe_ops,
                .dynamic = 1,
-               .dpcm_capture = 1,
+               .capture_only = 1,
                SND_SOC_DAILINK_REG(fe_pcm1_in),
        },
        [DAI_LINK_FE_BT_OUT] = {
                .trigger = {SND_SOC_DPCM_TRIGGER_POST,
                            SND_SOC_DPCM_TRIGGER_POST},
                .dynamic = 1,
-               .dpcm_playback = 1,
+               .playback_only = 1,
                SND_SOC_DAILINK_REG(fe_bt_out),
        },
        [DAI_LINK_FE_BT_IN] = {
                .trigger = {SND_SOC_DPCM_TRIGGER_POST,
                            SND_SOC_DPCM_TRIGGER_POST},
                .dynamic = 1,
-               .dpcm_capture = 1,
+               .capture_only = 1,
                SND_SOC_DAILINK_REG(fe_bt_in),
        },
        /* BE */
                .dai_fmt = SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_CBS_CFS
                         | SND_SOC_DAIFMT_GATED,
                .ops = &mt2701_cs42448_be_ops,
-               .dpcm_playback = 1,
-               .dpcm_capture = 1,
                SND_SOC_DAILINK_REG(be_i2s0),
        },
        [DAI_LINK_BE_I2S1] = {
                .dai_fmt = SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_CBS_CFS
                         | SND_SOC_DAIFMT_GATED,
                .ops = &mt2701_cs42448_be_ops,
-               .dpcm_playback = 1,
-               .dpcm_capture = 1,
                SND_SOC_DAILINK_REG(be_i2s1),
        },
        [DAI_LINK_BE_I2S2] = {
                .dai_fmt = SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_CBS_CFS
                         | SND_SOC_DAIFMT_GATED,
                .ops = &mt2701_cs42448_be_ops,
-               .dpcm_playback = 1,
-               .dpcm_capture = 1,
                SND_SOC_DAILINK_REG(be_i2s2),
        },
        [DAI_LINK_BE_I2S3] = {
                .dai_fmt = SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_CBS_CFS
                         | SND_SOC_DAIFMT_GATED,
                .ops = &mt2701_cs42448_be_ops,
-               .dpcm_playback = 1,
-               .dpcm_capture = 1,
                SND_SOC_DAILINK_REG(be_i2s3),
        },
        [DAI_LINK_BE_MRG_BT] = {
                .name = "mt2701-cs42448-MRG-BT",
                .no_pcm = 1,
-               .dpcm_playback = 1,
-               .dpcm_capture = 1,
                SND_SOC_DAILINK_REG(be_mrg_bt),
        },
 };
 
                .trigger = {SND_SOC_DPCM_TRIGGER_POST,
                            SND_SOC_DPCM_TRIGGER_POST},
                .dynamic = 1,
-               .dpcm_playback = 1,
+               .playback_only = 1,
                SND_SOC_DAILINK_REG(playback),
        },
        {
                .trigger = {SND_SOC_DPCM_TRIGGER_POST,
                            SND_SOC_DPCM_TRIGGER_POST},
                .dynamic = 1,
-               .dpcm_capture = 1,
+               .capture_only = 1,
                SND_SOC_DAILINK_REG(capture),
        },
        /* BE */
                .dai_fmt = SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_CBS_CFS
                        | SND_SOC_DAIFMT_GATED,
                .ops = &mt2701_wm8960_be_ops,
-               .dpcm_playback = 1,
-               .dpcm_capture = 1,
                SND_SOC_DAILINK_REG(codec),
        },
 };
 
                .trigger = {SND_SOC_DPCM_TRIGGER_PRE,
                            SND_SOC_DPCM_TRIGGER_PRE},
                .dynamic = 1,
-               .dpcm_playback = 1,
+               .playback_only = 1,
                SND_SOC_DAILINK_REG(playback_1),
        },
        {
                .trigger = {SND_SOC_DPCM_TRIGGER_PRE,
                            SND_SOC_DPCM_TRIGGER_PRE},
                .dynamic = 1,
-               .dpcm_playback = 1,
+               .playback_only = 1,
                SND_SOC_DAILINK_REG(playback_2),
        },
        {
                .trigger = {SND_SOC_DPCM_TRIGGER_PRE,
                            SND_SOC_DPCM_TRIGGER_PRE},
                .dynamic = 1,
-               .dpcm_playback = 1,
+               .playback_only = 1,
                SND_SOC_DAILINK_REG(playback_3),
        },
        {
                .trigger = {SND_SOC_DPCM_TRIGGER_PRE,
                            SND_SOC_DPCM_TRIGGER_PRE},
                .dynamic = 1,
-               .dpcm_capture = 1,
+               .capture_only = 1,
                SND_SOC_DAILINK_REG(capture_1),
        },
        {
                .trigger = {SND_SOC_DPCM_TRIGGER_PRE,
                            SND_SOC_DPCM_TRIGGER_PRE},
                .dynamic = 1,
-               .dpcm_capture = 1,
+               .capture_only = 1,
                SND_SOC_DAILINK_REG(capture_2),
        },
        {
                .trigger = {SND_SOC_DPCM_TRIGGER_PRE,
                            SND_SOC_DPCM_TRIGGER_PRE},
                .dynamic = 1,
-               .dpcm_capture = 1,
+               .capture_only = 1,
                SND_SOC_DAILINK_REG(capture_3),
        },
        {
                .trigger = {SND_SOC_DPCM_TRIGGER_PRE,
                            SND_SOC_DPCM_TRIGGER_PRE},
                .dynamic = 1,
-               .dpcm_capture = 1,
+               .capture_only = 1,
                SND_SOC_DAILINK_REG(capture_mono_1),
        },
        {
                .trigger = {SND_SOC_DPCM_TRIGGER_PRE,
                            SND_SOC_DPCM_TRIGGER_PRE},
                .dynamic = 1,
-               .dpcm_playback = 1,
-               .dpcm_capture = 1,
                .ignore_suspend = 1,
                SND_SOC_DAILINK_REG(hostless_lpbk),
        },
                .trigger = {SND_SOC_DPCM_TRIGGER_PRE,
                            SND_SOC_DPCM_TRIGGER_PRE},
                .dynamic = 1,
-               .dpcm_playback = 1,
-               .dpcm_capture = 1,
                .ignore_suspend = 1,
                SND_SOC_DAILINK_REG(hostless_speech),
        },
        {
                .name = "Primary Codec",
                .no_pcm = 1,
-               .dpcm_playback = 1,
-               .dpcm_capture = 1,
                .ignore_suspend = 1,
                SND_SOC_DAILINK_REG(primary_codec),
        },
        {
                .name = "PCM 1",
                .no_pcm = 1,
-               .dpcm_playback = 1,
-               .dpcm_capture = 1,
                .ignore_suspend = 1,
                SND_SOC_DAILINK_REG(pcm1),
        },
        {
                .name = "PCM 2",
                .no_pcm = 1,
-               .dpcm_playback = 1,
-               .dpcm_capture = 1,
                .ignore_suspend = 1,
                SND_SOC_DAILINK_REG(pcm2),
        },
 
                .trigger = {SND_SOC_DPCM_TRIGGER_POST,
                            SND_SOC_DPCM_TRIGGER_POST},
                .dynamic = 1,
-               .dpcm_playback = 1,
+               .playback_only = 1,
                SND_SOC_DAILINK_REG(playback),
        },
        {
                .trigger = {SND_SOC_DPCM_TRIGGER_POST,
                            SND_SOC_DPCM_TRIGGER_POST},
                .dynamic = 1,
-               .dpcm_capture = 1,
+               .capture_only = 1,
                SND_SOC_DAILINK_REG(capture),
        },
        /* BE */
                        SND_SOC_DAIFMT_NB_NF |
                        SND_SOC_DAIFMT_CBS_CFS |
                        SND_SOC_DAIFMT_GATED,
-               .dpcm_playback = 1,
-               .dpcm_capture = 1,
                SND_SOC_DAILINK_REG(codec),
        },
 };
 
                .stream_name = "MAX98090 Playback",
                .trigger = {SND_SOC_DPCM_TRIGGER_POST, SND_SOC_DPCM_TRIGGER_POST},
                .dynamic = 1,
-               .dpcm_playback = 1,
+               .playback_only = 1,
                SND_SOC_DAILINK_REG(playback),
        },
        {
                .stream_name = "MAX98090 Capture",
                .trigger = {SND_SOC_DPCM_TRIGGER_POST, SND_SOC_DPCM_TRIGGER_POST},
                .dynamic = 1,
-               .dpcm_capture = 1,
+               .capture_only = 1,
                SND_SOC_DAILINK_REG(capture),
        },
        /* Back End DAI links */
                .ops = &mt8173_max98090_ops,
                .dai_fmt = SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_NB_NF |
                           SND_SOC_DAIFMT_CBS_CFS,
-               .dpcm_playback = 1,
-               .dpcm_capture = 1,
                SND_SOC_DAILINK_REG(hifi),
        },
 };
 
                .stream_name = "rt5650_rt5514 Playback",
                .trigger = {SND_SOC_DPCM_TRIGGER_POST, SND_SOC_DPCM_TRIGGER_POST},
                .dynamic = 1,
-               .dpcm_playback = 1,
+               .playback_only = 1,
                SND_SOC_DAILINK_REG(playback),
        },
        [DAI_LINK_CAPTURE] = {
                .stream_name = "rt5650_rt5514 Capture",
                .trigger = {SND_SOC_DPCM_TRIGGER_POST, SND_SOC_DPCM_TRIGGER_POST},
                .dynamic = 1,
-               .dpcm_capture = 1,
+               .capture_only = 1,
                SND_SOC_DAILINK_REG(capture),
        },
        /* Back End DAI links */
                           SND_SOC_DAIFMT_CBS_CFS,
                .ops = &mt8173_rt5650_rt5514_ops,
                .ignore_pmdown_time = 1,
-               .dpcm_playback = 1,
-               .dpcm_capture = 1,
                SND_SOC_DAILINK_REG(codec),
        },
 };
 
                .stream_name = "rt5650_rt5676 Playback",
                .trigger = {SND_SOC_DPCM_TRIGGER_POST, SND_SOC_DPCM_TRIGGER_POST},
                .dynamic = 1,
-               .dpcm_playback = 1,
+               .playback_only = 1,
                SND_SOC_DAILINK_REG(playback),
        },
        [DAI_LINK_CAPTURE] = {
                .stream_name = "rt5650_rt5676 Capture",
                .trigger = {SND_SOC_DPCM_TRIGGER_POST, SND_SOC_DPCM_TRIGGER_POST},
                .dynamic = 1,
-               .dpcm_capture = 1,
+               .capture_only = 1,
                SND_SOC_DAILINK_REG(capture),
        },
        [DAI_LINK_HDMI] = {
                .stream_name = "HDMI PCM",
                .trigger = {SND_SOC_DPCM_TRIGGER_POST, SND_SOC_DPCM_TRIGGER_POST},
                .dynamic = 1,
-               .dpcm_playback = 1,
+               .playback_only = 1,
                SND_SOC_DAILINK_REG(hdmi_pcm),
        },
 
                           SND_SOC_DAIFMT_CBS_CFS,
                .ops = &mt8173_rt5650_rt5676_ops,
                .ignore_pmdown_time = 1,
-               .dpcm_playback = 1,
-               .dpcm_capture = 1,
                SND_SOC_DAILINK_REG(codec),
        },
        [DAI_LINK_HDMI_I2S] = {
                .name = "HDMI BE",
                .no_pcm = 1,
-               .dpcm_playback = 1,
+               .playback_only = 1,
                SND_SOC_DAILINK_REG(hdmi_be),
        },
        /* rt5676 <-> rt5650 intercodec link: Sets rt5676 I2S2 as master */
 
                .stream_name = "rt5650 Playback",
                .trigger = {SND_SOC_DPCM_TRIGGER_POST, SND_SOC_DPCM_TRIGGER_POST},
                .dynamic = 1,
-               .dpcm_playback = 1,
+               .playback_only = 1,
                SND_SOC_DAILINK_REG(playback),
        },
        [DAI_LINK_CAPTURE] = {
                .stream_name = "rt5650 Capture",
                .trigger = {SND_SOC_DPCM_TRIGGER_POST, SND_SOC_DPCM_TRIGGER_POST},
                .dynamic = 1,
-               .dpcm_capture = 1,
+               .capture_only = 1,
                SND_SOC_DAILINK_REG(capture),
        },
        [DAI_LINK_HDMI] = {
                .stream_name = "HDMI PCM",
                .trigger = {SND_SOC_DPCM_TRIGGER_POST, SND_SOC_DPCM_TRIGGER_POST},
                .dynamic = 1,
-               .dpcm_playback = 1,
+               .playback_only = 1,
                SND_SOC_DAILINK_REG(hdmi_pcm),
        },
        /* Back End DAI links */
                           SND_SOC_DAIFMT_CBS_CFS,
                .ops = &mt8173_rt5650_ops,
                .ignore_pmdown_time = 1,
-               .dpcm_playback = 1,
-               .dpcm_capture = 1,
                SND_SOC_DAILINK_REG(codec),
        },
        [DAI_LINK_HDMI_I2S] = {
                .name = "HDMI BE",
                .no_pcm = 1,
-               .dpcm_playback = 1,
+               .playback_only = 1,
                .init = mt8173_rt5650_hdmi_init,
                SND_SOC_DAILINK_REG(hdmi_be),
        },
 
                .trigger = {SND_SOC_DPCM_TRIGGER_PRE,
                            SND_SOC_DPCM_TRIGGER_PRE},
                .dynamic = 1,
-               .dpcm_playback = 1,
+               .playback_only = 1,
                .ops = &mt8183_da7219_max98357_ops,
                SND_SOC_DAILINK_REG(playback1),
        },
                .trigger = {SND_SOC_DPCM_TRIGGER_PRE,
                            SND_SOC_DPCM_TRIGGER_PRE},
                .dynamic = 1,
-               .dpcm_playback = 1,
+               .playback_only = 1,
                .ops = &mt8183_da7219_max98357_bt_sco_ops,
                SND_SOC_DAILINK_REG(playback2),
        },
                .trigger = {SND_SOC_DPCM_TRIGGER_PRE,
                            SND_SOC_DPCM_TRIGGER_PRE},
                .dynamic = 1,
-               .dpcm_playback = 1,
+               .playback_only = 1,
                SND_SOC_DAILINK_REG(playback3),
        },
        {
                .trigger = {SND_SOC_DPCM_TRIGGER_PRE,
                            SND_SOC_DPCM_TRIGGER_PRE},
                .dynamic = 1,
-               .dpcm_capture = 1,
+               .capture_only = 1,
                .ops = &mt8183_da7219_max98357_bt_sco_ops,
                SND_SOC_DAILINK_REG(capture1),
        },
                .trigger = {SND_SOC_DPCM_TRIGGER_PRE,
                            SND_SOC_DPCM_TRIGGER_PRE},
                .dynamic = 1,
-               .dpcm_capture = 1,
+               .capture_only = 1,
                SND_SOC_DAILINK_REG(capture2),
        },
        {
                .trigger = {SND_SOC_DPCM_TRIGGER_PRE,
                            SND_SOC_DPCM_TRIGGER_PRE},
                .dynamic = 1,
-               .dpcm_capture = 1,
+               .capture_only = 1,
                .ops = &mt8183_da7219_max98357_ops,
                SND_SOC_DAILINK_REG(capture3),
        },
                .trigger = {SND_SOC_DPCM_TRIGGER_PRE,
                            SND_SOC_DPCM_TRIGGER_PRE},
                .dynamic = 1,
-               .dpcm_capture = 1,
+               .capture_only = 1,
                SND_SOC_DAILINK_REG(capture_mono),
        },
        {
                .trigger = {SND_SOC_DPCM_TRIGGER_PRE,
                            SND_SOC_DPCM_TRIGGER_PRE},
                .dynamic = 1,
-               .dpcm_playback = 1,
+               .playback_only = 1,
                SND_SOC_DAILINK_REG(playback_hdmi),
        },
        /* BE */
        {
                .name = "Primary Codec",
                .no_pcm = 1,
-               .dpcm_playback = 1,
-               .dpcm_capture = 1,
                .ignore_suspend = 1,
                SND_SOC_DAILINK_REG(primary_codec),
        },
        {
                .name = "PCM 1",
                .no_pcm = 1,
-               .dpcm_playback = 1,
-               .dpcm_capture = 1,
                .ignore_suspend = 1,
                SND_SOC_DAILINK_REG(pcm1),
        },
        {
                .name = "PCM 2",
                .no_pcm = 1,
-               .dpcm_playback = 1,
-               .dpcm_capture = 1,
                .ignore_suspend = 1,
                SND_SOC_DAILINK_REG(pcm2),
        },
        {
                .name = "I2S0",
                .no_pcm = 1,
-               .dpcm_capture = 1,
+               .capture_only = 1,
                .ignore_suspend = 1,
                .be_hw_params_fixup = mt8183_i2s_hw_params_fixup,
                .ops = &mt8183_mt6358_i2s_ops,
        {
                .name = "I2S1",
                .no_pcm = 1,
-               .dpcm_playback = 1,
+               .playback_only = 1,
                .ignore_suspend = 1,
                .be_hw_params_fixup = mt8183_i2s_hw_params_fixup,
                .ops = &mt8183_mt6358_i2s_ops,
        {
                .name = "I2S2",
                .no_pcm = 1,
-               .dpcm_capture = 1,
+               .capture_only = 1,
                .ignore_suspend = 1,
                .be_hw_params_fixup = mt8183_i2s_hw_params_fixup,
                .ops = &mt8183_da7219_i2s_ops,
        {
                .name = "I2S3",
                .no_pcm = 1,
-               .dpcm_playback = 1,
+               .playback_only = 1,
                .ignore_suspend = 1,
        },
        {
                .name = "I2S5",
                .no_pcm = 1,
-               .dpcm_playback = 1,
+               .playback_only = 1,
                .ignore_suspend = 1,
                .be_hw_params_fixup = mt8183_i2s_hw_params_fixup,
                .ops = &mt8183_mt6358_i2s_ops,
                .dai_fmt = SND_SOC_DAIFMT_I2S |
                           SND_SOC_DAIFMT_IB_IF |
                           SND_SOC_DAIFMT_CBM_CFM,
-               .dpcm_playback = 1,
+               .playback_only = 1,
                .ignore_suspend = 1,
                .be_hw_params_fixup = mt8183_i2s_hw_params_fixup,
                .ignore = 1,
 
                .trigger = {SND_SOC_DPCM_TRIGGER_PRE,
                            SND_SOC_DPCM_TRIGGER_PRE},
                .dynamic = 1,
-               .dpcm_playback = 1,
+               .playback_only = 1,
                .ops = &mt8183_mt6358_ops,
                SND_SOC_DAILINK_REG(playback1),
        },
                .trigger = {SND_SOC_DPCM_TRIGGER_PRE,
                            SND_SOC_DPCM_TRIGGER_PRE},
                .dynamic = 1,
-               .dpcm_playback = 1,
+               .playback_only = 1,
                .ops = &mt8183_mt6358_ts3a227_max98357_bt_sco_ops,
                SND_SOC_DAILINK_REG(playback2),
        },
                .trigger = {SND_SOC_DPCM_TRIGGER_PRE,
                            SND_SOC_DPCM_TRIGGER_PRE},
                .dynamic = 1,
-               .dpcm_playback = 1,
+               .playback_only = 1,
                SND_SOC_DAILINK_REG(playback3),
        },
        {
                .trigger = {SND_SOC_DPCM_TRIGGER_PRE,
                            SND_SOC_DPCM_TRIGGER_PRE},
                .dynamic = 1,
-               .dpcm_capture = 1,
+               .capture_only = 1,
                .ops = &mt8183_mt6358_ts3a227_max98357_bt_sco_ops,
                SND_SOC_DAILINK_REG(capture1),
        },
                .trigger = {SND_SOC_DPCM_TRIGGER_PRE,
                            SND_SOC_DPCM_TRIGGER_PRE},
                .dynamic = 1,
-               .dpcm_capture = 1,
+               .capture_only = 1,
                SND_SOC_DAILINK_REG(capture2),
        },
        {
                .trigger = {SND_SOC_DPCM_TRIGGER_PRE,
                            SND_SOC_DPCM_TRIGGER_PRE},
                .dynamic = 1,
-               .dpcm_capture = 1,
+               .capture_only = 1,
                .ops = &mt8183_mt6358_ops,
                SND_SOC_DAILINK_REG(capture3),
        },
                .trigger = {SND_SOC_DPCM_TRIGGER_PRE,
                            SND_SOC_DPCM_TRIGGER_PRE},
                .dynamic = 1,
-               .dpcm_capture = 1,
+               .capture_only = 1,
                SND_SOC_DAILINK_REG(capture_mono),
        },
        {
                .trigger = {SND_SOC_DPCM_TRIGGER_PRE,
                            SND_SOC_DPCM_TRIGGER_PRE},
                .dynamic = 1,
-               .dpcm_playback = 1,
+               .playback_only = 1,
                SND_SOC_DAILINK_REG(playback_hdmi),
        },
        {
        {
                .name = "Primary Codec",
                .no_pcm = 1,
-               .dpcm_playback = 1,
-               .dpcm_capture = 1,
                .ignore_suspend = 1,
                SND_SOC_DAILINK_REG(primary_codec),
        },
        {
                .name = "PCM 1",
                .no_pcm = 1,
-               .dpcm_playback = 1,
-               .dpcm_capture = 1,
                .ignore_suspend = 1,
                SND_SOC_DAILINK_REG(pcm1),
        },
        {
                .name = "PCM 2",
                .no_pcm = 1,
-               .dpcm_playback = 1,
-               .dpcm_capture = 1,
                .ignore_suspend = 1,
                SND_SOC_DAILINK_REG(pcm2),
        },
        {
                .name = "I2S0",
                .no_pcm = 1,
-               .dpcm_capture = 1,
+               .capture_only = 1,
                .ignore_suspend = 1,
                .ops = &mt8183_mt6358_i2s_ops,
                SND_SOC_DAILINK_REG(i2s0),
        {
                .name = "I2S1",
                .no_pcm = 1,
-               .dpcm_playback = 1,
+               .playback_only = 1,
                .ignore_suspend = 1,
                .be_hw_params_fixup = mt8183_i2s_hw_params_fixup,
                .ops = &mt8183_mt6358_i2s_ops,
        {
                .name = "I2S2",
                .no_pcm = 1,
-               .dpcm_capture = 1,
+               .capture_only = 1,
                .ignore_suspend = 1,
                .be_hw_params_fixup = mt8183_i2s_hw_params_fixup,
                .ops = &mt8183_mt6358_i2s_ops,
        {
                .name = "I2S3",
                .no_pcm = 1,
-               .dpcm_playback = 1,
+               .playback_only = 1,
                .ignore_suspend = 1,
        },
        {
                .name = "I2S5",
                .no_pcm = 1,
-               .dpcm_playback = 1,
+               .playback_only = 1,
                .ignore_suspend = 1,
                .ops = &mt8183_mt6358_i2s_ops,
                .init = &mt8183_bt_init,
                .dai_fmt = SND_SOC_DAIFMT_I2S |
                           SND_SOC_DAIFMT_IB_IF |
                           SND_SOC_DAIFMT_CBM_CFM,
-               .dpcm_playback = 1,
+               .playback_only = 1,
                .ignore_suspend = 1,
                .be_hw_params_fixup = mt8183_i2s_hw_params_fixup,
                .ops = &mt8183_mt6358_tdm_ops,
 
                .trigger = {SND_SOC_DPCM_TRIGGER_PRE,
                            SND_SOC_DPCM_TRIGGER_PRE},
                .dynamic = 1,
-               .dpcm_playback = 1,
+               .playback_only = 1,
                .dpcm_merged_format = 1,
                .dpcm_merged_chan = 1,
                .dpcm_merged_rate = 1,
                .trigger = {SND_SOC_DPCM_TRIGGER_PRE,
                            SND_SOC_DPCM_TRIGGER_PRE},
                .dynamic = 1,
-               .dpcm_playback = 1,
+               .playback_only = 1,
                SND_SOC_DAILINK_REG(playback12),
        },
        {
                .trigger = {SND_SOC_DPCM_TRIGGER_PRE,
                            SND_SOC_DPCM_TRIGGER_PRE},
                .dynamic = 1,
-               .dpcm_playback = 1,
+               .playback_only = 1,
                .dpcm_merged_format = 1,
                .dpcm_merged_chan = 1,
                .dpcm_merged_rate = 1,
                .trigger = {SND_SOC_DPCM_TRIGGER_PRE,
                            SND_SOC_DPCM_TRIGGER_PRE},
                .dynamic = 1,
-               .dpcm_playback = 1,
+               .playback_only = 1,
                .dpcm_merged_format = 1,
                .dpcm_merged_chan = 1,
                .dpcm_merged_rate = 1,
                .trigger = {SND_SOC_DPCM_TRIGGER_PRE,
                            SND_SOC_DPCM_TRIGGER_PRE},
                .dynamic = 1,
-               .dpcm_playback = 1,
+               .playback_only = 1,
                SND_SOC_DAILINK_REG(playback4),
        },
        {
                .trigger = {SND_SOC_DPCM_TRIGGER_PRE,
                            SND_SOC_DPCM_TRIGGER_PRE},
                .dynamic = 1,
-               .dpcm_playback = 1,
+               .playback_only = 1,
                SND_SOC_DAILINK_REG(playback5),
        },
        {
                .trigger = {SND_SOC_DPCM_TRIGGER_PRE,
                            SND_SOC_DPCM_TRIGGER_PRE},
                .dynamic = 1,
-               .dpcm_playback = 1,
+               .playback_only = 1,
                SND_SOC_DAILINK_REG(playback6),
        },
        {
                .trigger = {SND_SOC_DPCM_TRIGGER_PRE,
                            SND_SOC_DPCM_TRIGGER_PRE},
                .dynamic = 1,
-               .dpcm_playback = 1,
+               .playback_only = 1,
                SND_SOC_DAILINK_REG(playback7),
        },
        {
                .trigger = {SND_SOC_DPCM_TRIGGER_PRE,
                            SND_SOC_DPCM_TRIGGER_PRE},
                .dynamic = 1,
-               .dpcm_playback = 1,
+               .playback_only = 1,
                SND_SOC_DAILINK_REG(playback8),
        },
        {
                .trigger = {SND_SOC_DPCM_TRIGGER_PRE,
                            SND_SOC_DPCM_TRIGGER_PRE},
                .dynamic = 1,
-               .dpcm_capture = 1,
+               .capture_only = 1,
                SND_SOC_DAILINK_REG(capture1),
        },
        {
                .trigger = {SND_SOC_DPCM_TRIGGER_PRE,
                            SND_SOC_DPCM_TRIGGER_PRE},
                .dynamic = 1,
-               .dpcm_capture = 1,
+               .capture_only = 1,
                .dpcm_merged_format = 1,
                .dpcm_merged_chan = 1,
                .dpcm_merged_rate = 1,
                .trigger = {SND_SOC_DPCM_TRIGGER_PRE,
                            SND_SOC_DPCM_TRIGGER_PRE},
                .dynamic = 1,
-               .dpcm_capture = 1,
+               .capture_only = 1,
                SND_SOC_DAILINK_REG(capture3),
        },
        {
                .trigger = {SND_SOC_DPCM_TRIGGER_PRE,
                            SND_SOC_DPCM_TRIGGER_PRE},
                .dynamic = 1,
-               .dpcm_capture = 1,
+               .capture_only = 1,
                .dpcm_merged_format = 1,
                .dpcm_merged_chan = 1,
                .dpcm_merged_rate = 1,
                .trigger = {SND_SOC_DPCM_TRIGGER_PRE,
                            SND_SOC_DPCM_TRIGGER_PRE},
                .dynamic = 1,
-               .dpcm_capture = 1,
+               .capture_only = 1,
                SND_SOC_DAILINK_REG(capture5),
        },
        {
                .trigger = {SND_SOC_DPCM_TRIGGER_PRE,
                            SND_SOC_DPCM_TRIGGER_PRE},
                .dynamic = 1,
-               .dpcm_capture = 1,
+               .capture_only = 1,
                .dpcm_merged_format = 1,
                .dpcm_merged_chan = 1,
                .dpcm_merged_rate = 1,
                .trigger = {SND_SOC_DPCM_TRIGGER_PRE,
                            SND_SOC_DPCM_TRIGGER_PRE},
                .dynamic = 1,
-               .dpcm_capture = 1,
+               .capture_only = 1,
                SND_SOC_DAILINK_REG(capture7),
        },
        {
                .trigger = {SND_SOC_DPCM_TRIGGER_PRE,
                            SND_SOC_DPCM_TRIGGER_PRE},
                .dynamic = 1,
-               .dpcm_playback = 1,
-               .dpcm_capture = 1,
                .ignore_suspend = 1,
                SND_SOC_DAILINK_REG(hostless_lpbk),
        },
                .trigger = {SND_SOC_DPCM_TRIGGER_PRE,
                            SND_SOC_DPCM_TRIGGER_PRE},
                .dynamic = 1,
-               .dpcm_playback = 1,
-               .dpcm_capture = 1,
                .ignore_suspend = 1,
                SND_SOC_DAILINK_REG(hostless_fm),
        },
                .trigger = {SND_SOC_DPCM_TRIGGER_PRE,
                            SND_SOC_DPCM_TRIGGER_PRE},
                .dynamic = 1,
-               .dpcm_playback = 1,
-               .dpcm_capture = 1,
                .ignore_suspend = 1,
                SND_SOC_DAILINK_REG(hostless_src1),
        },
                .trigger = {SND_SOC_DPCM_TRIGGER_PRE,
                            SND_SOC_DPCM_TRIGGER_PRE},
                .dynamic = 1,
-               .dpcm_playback = 1,
-               .dpcm_capture = 1,
                .ignore_suspend = 1,
                SND_SOC_DAILINK_REG(hostless_src_bargein),
        },
                .trigger = {SND_SOC_DPCM_TRIGGER_PRE,
                            SND_SOC_DPCM_TRIGGER_PRE},
                .dynamic = 1,
-               .dpcm_capture = 1,
+               .capture_only = 1,
                .ignore_suspend = 1,
                SND_SOC_DAILINK_REG(hostless_hw_gain_aaudio),
        },
                .trigger = {SND_SOC_DPCM_TRIGGER_PRE,
                            SND_SOC_DPCM_TRIGGER_PRE},
                .dynamic = 1,
-               .dpcm_playback = 1,
-               .dpcm_capture = 1,
                .ignore_suspend = 1,
                SND_SOC_DAILINK_REG(hostless_src_aaudio),
        },
        {
                .name = "Primary Codec",
                .no_pcm = 1,
-               .dpcm_playback = 1,
-               .dpcm_capture = 1,
                .ignore_suspend = 1,
                .init = primary_codec_init,
                SND_SOC_DAILINK_REG(adda),
                .dai_fmt = SND_SOC_DAIFMT_I2S |
                           SND_SOC_DAIFMT_IB_IF |
                           SND_SOC_DAIFMT_CBM_CFM,
-               .dpcm_playback = 1,
+               .playback_only = 1,
                .ignore_suspend = 1,
                .init = mt8186_mt6366_rt1019_rt5682s_hdmi_init,
                SND_SOC_DAILINK_REG(i2s3),
        {
                .name = "I2S0",
                .no_pcm = 1,
-               .dpcm_capture = 1,
+               .capture_only = 1,
                .ignore_suspend = 1,
                .ops = &mt8186_rt5682s_i2s_ops,
                SND_SOC_DAILINK_REG(i2s0),
        {
                .name = "I2S1",
                .no_pcm = 1,
-               .dpcm_playback = 1,
+               .playback_only = 1,
                .ignore_suspend = 1,
                .init = mt8186_headset_codec_init,
                SND_SOC_DAILINK_REG(i2s1),
        {
                .name = "I2S2",
                .no_pcm = 1,
-               .dpcm_capture = 1,
+               .capture_only = 1,
                .ignore_suspend = 1,
                SND_SOC_DAILINK_REG(i2s2),
        },
        {
                .name = "HW Gain 1",
                .no_pcm = 1,
-               .dpcm_playback = 1,
-               .dpcm_capture = 1,
                .ignore_suspend = 1,
                SND_SOC_DAILINK_REG(hw_gain1),
        },
        {
                .name = "HW Gain 2",
                .no_pcm = 1,
-               .dpcm_playback = 1,
-               .dpcm_capture = 1,
                .ignore_suspend = 1,
                SND_SOC_DAILINK_REG(hw_gain2),
        },
        {
                .name = "HW_SRC_1",
                .no_pcm = 1,
-               .dpcm_playback = 1,
-               .dpcm_capture = 1,
                .ignore_suspend = 1,
                SND_SOC_DAILINK_REG(hw_src1),
        },
        {
                .name = "HW_SRC_2",
                .no_pcm = 1,
-               .dpcm_playback = 1,
-               .dpcm_capture = 1,
                .ignore_suspend = 1,
                SND_SOC_DAILINK_REG(hw_src2),
        },
        {
                .name = "CONNSYS_I2S",
                .no_pcm = 1,
-               .dpcm_capture = 1,
+               .capture_only = 1,
                .ignore_suspend = 1,
                SND_SOC_DAILINK_REG(connsys_i2s),
        },
                .dai_fmt = SND_SOC_DAIFMT_I2S |
                           SND_SOC_DAIFMT_NB_IF,
                .no_pcm = 1,
-               .dpcm_playback = 1,
-               .dpcm_capture = 1,
                .ignore_suspend = 1,
                SND_SOC_DAILINK_REG(pcm1),
        },
        {
                .name = "TDM IN",
                .no_pcm = 1,
-               .dpcm_capture = 1,
+               .capture_only = 1,
                .ignore_suspend = 1,
                SND_SOC_DAILINK_REG(tdm_in),
        },
        {
                .name = "Hostless_UL1",
                .no_pcm = 1,
-               .dpcm_capture = 1,
+               .capture_only = 1,
                .ignore_suspend = 1,
                SND_SOC_DAILINK_REG(hostless_ul1),
        },
        {
                .name = "Hostless_UL2",
                .no_pcm = 1,
-               .dpcm_capture = 1,
+               .capture_only = 1,
                .ignore_suspend = 1,
                SND_SOC_DAILINK_REG(hostless_ul2),
        },
        {
                .name = "Hostless_UL3",
                .no_pcm = 1,
-               .dpcm_capture = 1,
+               .capture_only = 1,
                .ignore_suspend = 1,
                SND_SOC_DAILINK_REG(hostless_ul3),
        },
        {
                .name = "Hostless_UL5",
                .no_pcm = 1,
-               .dpcm_capture = 1,
+               .capture_only = 1,
                .ignore_suspend = 1,
                SND_SOC_DAILINK_REG(hostless_ul5),
        },
        {
                .name = "Hostless_UL6",
                .no_pcm = 1,
-               .dpcm_capture = 1,
+               .capture_only = 1,
                .ignore_suspend = 1,
                SND_SOC_DAILINK_REG(hostless_ul6),
        },
        {
                .name = "AFE_SOF_DL1",
                .no_pcm = 1,
-               .dpcm_playback = 1,
+               .playback_only = 1,
                SND_SOC_DAILINK_REG(AFE_SOF_DL1),
        },
        {
                .name = "AFE_SOF_DL2",
                .no_pcm = 1,
-               .dpcm_playback = 1,
+               .playback_only = 1,
                SND_SOC_DAILINK_REG(AFE_SOF_DL2),
        },
        {
                .name = "AFE_SOF_UL1",
                .no_pcm = 1,
-               .dpcm_capture = 1,
+               .capture_only = 1,
                SND_SOC_DAILINK_REG(AFE_SOF_UL1),
        },
        {
                .name = "AFE_SOF_UL2",
                .no_pcm = 1,
-               .dpcm_capture = 1,
+               .capture_only = 1,
                SND_SOC_DAILINK_REG(AFE_SOF_UL2),
        },
 };
 
                        SND_SOC_DPCM_TRIGGER_POST,
                },
                .dynamic = 1,
-               .dpcm_playback = 1,
+               .playback_only = 1,
                .dpcm_merged_chan = 1,
                .dpcm_merged_rate = 1,
                .dpcm_merged_format = 1,
                        SND_SOC_DPCM_TRIGGER_POST,
                },
                .dynamic = 1,
-               .dpcm_playback = 1,
+               .playback_only = 1,
                .dpcm_merged_chan = 1,
                .dpcm_merged_rate = 1,
                .dpcm_merged_format = 1,
                        SND_SOC_DPCM_TRIGGER_POST,
                },
                .dynamic = 1,
-               .dpcm_playback = 1,
+               .playback_only = 1,
                .dpcm_merged_chan = 1,
                .dpcm_merged_rate = 1,
                .dpcm_merged_format = 1,
                        SND_SOC_DPCM_TRIGGER_PRE,
                },
                .dynamic = 1,
-               .dpcm_playback = 1,
+               .playback_only = 1,
                SND_SOC_DAILINK_REG(playback7),
        },
        [DAI_LINK_DL8_FE] = {
                        SND_SOC_DPCM_TRIGGER_POST,
                },
                .dynamic = 1,
-               .dpcm_playback = 1,
+               .playback_only = 1,
                SND_SOC_DAILINK_REG(playback8),
        },
        [DAI_LINK_DL10_FE] = {
                        SND_SOC_DPCM_TRIGGER_POST,
                },
                .dynamic = 1,
-               .dpcm_playback = 1,
+               .playback_only = 1,
                SND_SOC_DAILINK_REG(playback10),
        },
        [DAI_LINK_DL11_FE] = {
                        SND_SOC_DPCM_TRIGGER_POST,
                },
                .dynamic = 1,
-               .dpcm_playback = 1,
+               .playback_only = 1,
                SND_SOC_DAILINK_REG(playback11),
        },
        [DAI_LINK_UL1_FE] = {
                        SND_SOC_DPCM_TRIGGER_PRE,
                },
                .dynamic = 1,
-               .dpcm_capture = 1,
+               .capture_only = 1,
                SND_SOC_DAILINK_REG(capture1),
        },
        [DAI_LINK_UL2_FE] = {
                        SND_SOC_DPCM_TRIGGER_POST,
                },
                .dynamic = 1,
-               .dpcm_capture = 1,
+               .capture_only = 1,
                SND_SOC_DAILINK_REG(capture2),
        },
        [DAI_LINK_UL3_FE] = {
                        SND_SOC_DPCM_TRIGGER_POST,
                },
                .dynamic = 1,
-               .dpcm_capture = 1,
+               .capture_only = 1,
                SND_SOC_DAILINK_REG(capture3),
        },
        [DAI_LINK_UL4_FE] = {
                        SND_SOC_DPCM_TRIGGER_POST,
                },
                .dynamic = 1,
-               .dpcm_capture = 1,
+               .capture_only = 1,
                .dpcm_merged_chan = 1,
                .dpcm_merged_rate = 1,
                .dpcm_merged_format = 1,
                        SND_SOC_DPCM_TRIGGER_POST,
                },
                .dynamic = 1,
-               .dpcm_capture = 1,
+               .capture_only = 1,
                .dpcm_merged_chan = 1,
                .dpcm_merged_rate = 1,
                .dpcm_merged_format = 1,
                        SND_SOC_DPCM_TRIGGER_PRE,
                },
                .dynamic = 1,
-               .dpcm_capture = 1,
+               .capture_only = 1,
                SND_SOC_DAILINK_REG(capture6),
        },
        [DAI_LINK_UL8_FE] = {
                        SND_SOC_DPCM_TRIGGER_POST,
                },
                .dynamic = 1,
-               .dpcm_capture = 1,
+               .capture_only = 1,
                SND_SOC_DAILINK_REG(capture8),
        },
        [DAI_LINK_UL9_FE] = {
                        SND_SOC_DPCM_TRIGGER_POST,
                },
                .dynamic = 1,
-               .dpcm_capture = 1,
+               .capture_only = 1,
                SND_SOC_DAILINK_REG(capture9),
        },
        [DAI_LINK_UL10_FE] = {
                        SND_SOC_DPCM_TRIGGER_POST,
                },
                .dynamic = 1,
-               .dpcm_capture = 1,
+               .capture_only = 1,
                SND_SOC_DAILINK_REG(capture10),
        },
        /* BE */
        [DAI_LINK_DL_SRC_BE] = {
                .name = "DL_SRC_BE",
                .no_pcm = 1,
-               .dpcm_playback = 1,
+               .playback_only = 1,
                SND_SOC_DAILINK_REG(dl_src),
        },
        [DAI_LINK_DPTX_BE] = {
                .ops = &mt8188_dptx_ops,
                .be_hw_params_fixup = mt8188_dptx_hw_params_fixup,
                .no_pcm = 1,
-               .dpcm_playback = 1,
+               .playback_only = 1,
                SND_SOC_DAILINK_REG(dptx),
        },
        [DAI_LINK_ETDM1_IN_BE] = {
                .dai_fmt = SND_SOC_DAIFMT_I2S |
                        SND_SOC_DAIFMT_NB_NF |
                        SND_SOC_DAIFMT_CBP_CFP,
-               .dpcm_capture = 1,
+               .capture_only = 1,
                .ignore_suspend = 1,
                SND_SOC_DAILINK_REG(etdm1_in),
        },
                .dai_fmt = SND_SOC_DAIFMT_I2S |
                        SND_SOC_DAIFMT_NB_NF |
                        SND_SOC_DAIFMT_CBP_CFP,
-               .dpcm_capture = 1,
+               .capture_only = 1,
                SND_SOC_DAILINK_REG(etdm2_in),
        },
        [DAI_LINK_ETDM1_OUT_BE] = {
                .dai_fmt = SND_SOC_DAIFMT_I2S |
                        SND_SOC_DAIFMT_NB_NF |
                        SND_SOC_DAIFMT_CBC_CFC,
-               .dpcm_playback = 1,
+               .playback_only = 1,
                SND_SOC_DAILINK_REG(etdm1_out),
        },
        [DAI_LINK_ETDM2_OUT_BE] = {
                .dai_fmt = SND_SOC_DAIFMT_I2S |
                        SND_SOC_DAIFMT_NB_NF |
                        SND_SOC_DAIFMT_CBC_CFC,
-               .dpcm_playback = 1,
+               .playback_only = 1,
                SND_SOC_DAILINK_REG(etdm2_out),
        },
        [DAI_LINK_ETDM3_OUT_BE] = {
                .dai_fmt = SND_SOC_DAIFMT_I2S |
                        SND_SOC_DAIFMT_NB_NF |
                        SND_SOC_DAIFMT_CBC_CFC,
-               .dpcm_playback = 1,
+               .playback_only = 1,
                SND_SOC_DAILINK_REG(etdm3_out),
        },
        [DAI_LINK_PCM1_BE] = {
                .dai_fmt = SND_SOC_DAIFMT_I2S |
                        SND_SOC_DAIFMT_NB_NF |
                        SND_SOC_DAIFMT_CBC_CFC,
-               .dpcm_playback = 1,
-               .dpcm_capture = 1,
                SND_SOC_DAILINK_REG(pcm1),
        },
        [DAI_LINK_UL_SRC_BE] = {
                .name = "UL_SRC_BE",
                .no_pcm = 1,
-               .dpcm_capture = 1,
+               .capture_only = 1,
                SND_SOC_DAILINK_REG(ul_src),
        },
 
        [DAI_LINK_SOF_DL2_BE] = {
                .name = "AFE_SOF_DL2",
                .no_pcm = 1,
-               .dpcm_playback = 1,
+               .playback_only = 1,
                .ops = &mt8188_sof_be_ops,
                SND_SOC_DAILINK_REG(AFE_SOF_DL2),
        },
        [DAI_LINK_SOF_DL3_BE] = {
                .name = "AFE_SOF_DL3",
                .no_pcm = 1,
-               .dpcm_playback = 1,
+               .playback_only = 1,
                .ops = &mt8188_sof_be_ops,
                SND_SOC_DAILINK_REG(AFE_SOF_DL3),
        },
        [DAI_LINK_SOF_UL4_BE] = {
                .name = "AFE_SOF_UL4",
                .no_pcm = 1,
-               .dpcm_capture = 1,
+               .capture_only = 1,
                .ops = &mt8188_sof_be_ops,
                SND_SOC_DAILINK_REG(AFE_SOF_UL4),
        },
        [DAI_LINK_SOF_UL5_BE] = {
                .name = "AFE_SOF_UL5",
                .no_pcm = 1,
-               .dpcm_capture = 1,
+               .capture_only = 1,
                .ops = &mt8188_sof_be_ops,
                SND_SOC_DAILINK_REG(AFE_SOF_UL5),
        },
 
                .trigger = {SND_SOC_DPCM_TRIGGER_PRE,
                            SND_SOC_DPCM_TRIGGER_PRE},
                .dynamic = 1,
-               .dpcm_playback = 1,
+               .playback_only = 1,
                SND_SOC_DAILINK_REG(playback1),
        },
        {
                .trigger = {SND_SOC_DPCM_TRIGGER_PRE,
                            SND_SOC_DPCM_TRIGGER_PRE},
                .dynamic = 1,
-               .dpcm_playback = 1,
+               .playback_only = 1,
                SND_SOC_DAILINK_REG(playback12),
        },
        {
                .trigger = {SND_SOC_DPCM_TRIGGER_PRE,
                            SND_SOC_DPCM_TRIGGER_PRE},
                .dynamic = 1,
-               .dpcm_playback = 1,
+               .playback_only = 1,
                SND_SOC_DAILINK_REG(playback2),
        },
        {
                .trigger = {SND_SOC_DPCM_TRIGGER_PRE,
                            SND_SOC_DPCM_TRIGGER_PRE},
                .dynamic = 1,
-               .dpcm_playback = 1,
+               .playback_only = 1,
                .ops = &mtk_soundcard_common_playback_ops,
                SND_SOC_DAILINK_REG(playback3),
        },
                .trigger = {SND_SOC_DPCM_TRIGGER_PRE,
                            SND_SOC_DPCM_TRIGGER_PRE},
                .dynamic = 1,
-               .dpcm_playback = 1,
+               .playback_only = 1,
                SND_SOC_DAILINK_REG(playback4),
        },
        {
                .trigger = {SND_SOC_DPCM_TRIGGER_PRE,
                            SND_SOC_DPCM_TRIGGER_PRE},
                .dynamic = 1,
-               .dpcm_playback = 1,
+               .playback_only = 1,
                SND_SOC_DAILINK_REG(playback5),
        },
        {
                .trigger = {SND_SOC_DPCM_TRIGGER_PRE,
                            SND_SOC_DPCM_TRIGGER_PRE},
                .dynamic = 1,
-               .dpcm_playback = 1,
+               .playback_only = 1,
                SND_SOC_DAILINK_REG(playback6),
        },
        {
                .trigger = {SND_SOC_DPCM_TRIGGER_PRE,
                            SND_SOC_DPCM_TRIGGER_PRE},
                .dynamic = 1,
-               .dpcm_playback = 1,
+               .playback_only = 1,
                SND_SOC_DAILINK_REG(playback7),
        },
        {
                .trigger = {SND_SOC_DPCM_TRIGGER_PRE,
                            SND_SOC_DPCM_TRIGGER_PRE},
                .dynamic = 1,
-               .dpcm_playback = 1,
+               .playback_only = 1,
                SND_SOC_DAILINK_REG(playback8),
        },
        {
                .trigger = {SND_SOC_DPCM_TRIGGER_PRE,
                            SND_SOC_DPCM_TRIGGER_PRE},
                .dynamic = 1,
-               .dpcm_playback = 1,
+               .playback_only = 1,
                SND_SOC_DAILINK_REG(playback9),
        },
        {
                .trigger = {SND_SOC_DPCM_TRIGGER_PRE,
                            SND_SOC_DPCM_TRIGGER_PRE},
                .dynamic = 1,
-               .dpcm_capture = 1,
+               .capture_only = 1,
                .ops = &mtk_soundcard_common_capture_ops,
                SND_SOC_DAILINK_REG(capture1),
        },
                .trigger = {SND_SOC_DPCM_TRIGGER_PRE,
                            SND_SOC_DPCM_TRIGGER_PRE},
                .dynamic = 1,
-               .dpcm_capture = 1,
+               .capture_only = 1,
                .ops = &mtk_soundcard_common_playback_ops,
                SND_SOC_DAILINK_REG(capture2),
        },
                .trigger = {SND_SOC_DPCM_TRIGGER_PRE,
                            SND_SOC_DPCM_TRIGGER_PRE},
                .dynamic = 1,
-               .dpcm_capture = 1,
+               .capture_only = 1,
                SND_SOC_DAILINK_REG(capture3),
        },
        {
                .trigger = {SND_SOC_DPCM_TRIGGER_PRE,
                            SND_SOC_DPCM_TRIGGER_PRE},
                .dynamic = 1,
-               .dpcm_capture = 1,
+               .capture_only = 1,
                SND_SOC_DAILINK_REG(capture4),
        },
        {
                .trigger = {SND_SOC_DPCM_TRIGGER_PRE,
                            SND_SOC_DPCM_TRIGGER_PRE},
                .dynamic = 1,
-               .dpcm_capture = 1,
+               .capture_only = 1,
                SND_SOC_DAILINK_REG(capture5),
        },
        {
                .trigger = {SND_SOC_DPCM_TRIGGER_PRE,
                            SND_SOC_DPCM_TRIGGER_PRE},
                .dynamic = 1,
-               .dpcm_capture = 1,
+               .capture_only = 1,
                SND_SOC_DAILINK_REG(capture6),
        },
        {
                .trigger = {SND_SOC_DPCM_TRIGGER_PRE,
                            SND_SOC_DPCM_TRIGGER_PRE},
                .dynamic = 1,
-               .dpcm_capture = 1,
+               .capture_only = 1,
                SND_SOC_DAILINK_REG(capture7),
        },
        {
                .trigger = {SND_SOC_DPCM_TRIGGER_PRE,
                            SND_SOC_DPCM_TRIGGER_PRE},
                .dynamic = 1,
-               .dpcm_capture = 1,
+               .capture_only = 1,
                SND_SOC_DAILINK_REG(capture8),
        },
        {
                .trigger = {SND_SOC_DPCM_TRIGGER_PRE,
                            SND_SOC_DPCM_TRIGGER_PRE},
                .dynamic = 1,
-               .dpcm_capture = 1,
+               .capture_only = 1,
                SND_SOC_DAILINK_REG(capture_mono1),
        },
        {
                .trigger = {SND_SOC_DPCM_TRIGGER_PRE,
                            SND_SOC_DPCM_TRIGGER_PRE},
                .dynamic = 1,
-               .dpcm_capture = 1,
+               .capture_only = 1,
                SND_SOC_DAILINK_REG(capture_mono2),
        },
        {
                .trigger = {SND_SOC_DPCM_TRIGGER_PRE,
                            SND_SOC_DPCM_TRIGGER_PRE},
                .dynamic = 1,
-               .dpcm_capture = 1,
+               .capture_only = 1,
                SND_SOC_DAILINK_REG(capture_mono3),
        },
        {
                .trigger = {SND_SOC_DPCM_TRIGGER_PRE,
                            SND_SOC_DPCM_TRIGGER_PRE},
                .dynamic = 1,
-               .dpcm_playback = 1,
+               .playback_only = 1,
                SND_SOC_DAILINK_REG(playback_hdmi),
        },
        /* Back End DAI links */
        {
                .name = "Primary Codec",
                .no_pcm = 1,
-               .dpcm_playback = 1,
-               .dpcm_capture = 1,
                .ignore_suspend = 1,
                .init = mt8192_mt6359_init,
                SND_SOC_DAILINK_REG(primary_codec),
        {
                .name = "Primary Codec CH34",
                .no_pcm = 1,
-               .dpcm_playback = 1,
-               .dpcm_capture = 1,
                .ignore_suspend = 1,
                SND_SOC_DAILINK_REG(primary_codec_ch34),
        },
        {
                .name = "AP_DMIC",
                .no_pcm = 1,
-               .dpcm_capture = 1,
+               .capture_only = 1,
                .ignore_suspend = 1,
                SND_SOC_DAILINK_REG(ap_dmic),
        },
        {
                .name = "AP_DMIC_CH34",
                .no_pcm = 1,
-               .dpcm_capture = 1,
+               .capture_only = 1,
                .ignore_suspend = 1,
                SND_SOC_DAILINK_REG(ap_dmic_ch34),
        },
        {
                .name = "I2S0",
                .no_pcm = 1,
-               .dpcm_capture = 1,
+               .capture_only = 1,
                .ignore_suspend = 1,
                .be_hw_params_fixup = mt8192_i2s_hw_params_fixup,
                SND_SOC_DAILINK_REG(i2s0),
        {
                .name = "I2S1",
                .no_pcm = 1,
-               .dpcm_playback = 1,
+               .playback_only = 1,
                .ignore_suspend = 1,
                .be_hw_params_fixup = mt8192_i2s_hw_params_fixup,
                SND_SOC_DAILINK_REG(i2s1),
        {
                .name = "I2S2",
                .no_pcm = 1,
-               .dpcm_capture = 1,
+               .capture_only = 1,
                .ignore_suspend = 1,
                .be_hw_params_fixup = mt8192_i2s_hw_params_fixup,
                SND_SOC_DAILINK_REG(i2s2),
        {
                .name = "I2S3",
                .no_pcm = 1,
-               .dpcm_playback = 1,
+               .playback_only = 1,
                .ignore_suspend = 1,
                .be_hw_params_fixup = mt8192_i2s_hw_params_fixup,
                SND_SOC_DAILINK_REG(i2s3),
        {
                .name = "I2S5",
                .no_pcm = 1,
-               .dpcm_playback = 1,
+               .playback_only = 1,
                .ignore_suspend = 1,
                .be_hw_params_fixup = mt8192_i2s_hw_params_fixup,
                SND_SOC_DAILINK_REG(i2s5),
        {
                .name = "I2S6",
                .no_pcm = 1,
-               .dpcm_capture = 1,
+               .capture_only = 1,
                .ignore_suspend = 1,
                .be_hw_params_fixup = mt8192_i2s_hw_params_fixup,
                SND_SOC_DAILINK_REG(i2s6),
        {
                .name = "I2S7",
                .no_pcm = 1,
-               .dpcm_playback = 1,
+               .playback_only = 1,
                .ignore_suspend = 1,
                .be_hw_params_fixup = mt8192_i2s_hw_params_fixup,
                SND_SOC_DAILINK_REG(i2s7),
        {
                .name = "I2S8",
                .no_pcm = 1,
-               .dpcm_capture = 1,
+               .capture_only = 1,
                .ignore_suspend = 1,
                .init = mt8192_rt5682_init,
                .be_hw_params_fixup = mt8192_i2s_hw_params_fixup,
        {
                .name = "I2S9",
                .no_pcm = 1,
-               .dpcm_playback = 1,
+               .playback_only = 1,
                .ignore_suspend = 1,
                .be_hw_params_fixup = mt8192_i2s_hw_params_fixup,
                SND_SOC_DAILINK_REG(i2s9),
        {
                .name = "CONNSYS_I2S",
                .no_pcm = 1,
-               .dpcm_capture = 1,
+               .capture_only = 1,
                .ignore_suspend = 1,
                SND_SOC_DAILINK_REG(connsys_i2s),
        },
        {
                .name = "PCM 1",
                .no_pcm = 1,
-               .dpcm_playback = 1,
-               .dpcm_capture = 1,
                .ignore_suspend = 1,
                SND_SOC_DAILINK_REG(pcm1),
        },
        {
                .name = "PCM 2",
                .no_pcm = 1,
-               .dpcm_playback = 1,
-               .dpcm_capture = 1,
                .ignore_suspend = 1,
                SND_SOC_DAILINK_REG(pcm2),
        },
                .dai_fmt = SND_SOC_DAIFMT_DSP_A |
                           SND_SOC_DAIFMT_IB_NF |
                           SND_SOC_DAIFMT_CBM_CFM,
-               .dpcm_playback = 1,
+               .playback_only = 1,
                .ignore_suspend = 1,
                .be_hw_params_fixup = mt8192_i2s_hw_params_fixup,
                .ignore = 1,
 
                        SND_SOC_DPCM_TRIGGER_POST,
                },
                .dynamic = 1,
-               .dpcm_playback = 1,
+               .playback_only = 1,
                .ops = &mtk_soundcard_common_playback_ops,
                SND_SOC_DAILINK_REG(DL2_FE),
        },
                        SND_SOC_DPCM_TRIGGER_POST,
                },
                .dynamic = 1,
-               .dpcm_playback = 1,
+               .playback_only = 1,
                .ops = &mtk_soundcard_common_playback_ops,
                SND_SOC_DAILINK_REG(DL3_FE),
        },
                        SND_SOC_DPCM_TRIGGER_POST,
                },
                .dynamic = 1,
-               .dpcm_playback = 1,
+               .playback_only = 1,
                .ops = &mtk_soundcard_common_playback_ops,
                SND_SOC_DAILINK_REG(DL6_FE),
        },
                        SND_SOC_DPCM_TRIGGER_PRE,
                },
                .dynamic = 1,
-               .dpcm_playback = 1,
+               .playback_only = 1,
                SND_SOC_DAILINK_REG(DL7_FE),
        },
        [DAI_LINK_DL8_FE] = {
                        SND_SOC_DPCM_TRIGGER_POST,
                },
                .dynamic = 1,
-               .dpcm_playback = 1,
+               .playback_only = 1,
                .ops = &mtk_soundcard_common_playback_ops,
                SND_SOC_DAILINK_REG(DL8_FE),
        },
                        SND_SOC_DPCM_TRIGGER_POST,
                },
                .dynamic = 1,
-               .dpcm_playback = 1,
+               .playback_only = 1,
                .ops = &mt8195_hdmitx_dptx_playback_ops,
                SND_SOC_DAILINK_REG(DL10_FE),
        },
                        SND_SOC_DPCM_TRIGGER_POST,
                },
                .dynamic = 1,
-               .dpcm_playback = 1,
+               .playback_only = 1,
                .ops = &mtk_soundcard_common_playback_ops,
                SND_SOC_DAILINK_REG(DL11_FE),
        },
                        SND_SOC_DPCM_TRIGGER_PRE,
                },
                .dynamic = 1,
-               .dpcm_capture = 1,
+               .capture_only = 1,
                SND_SOC_DAILINK_REG(UL1_FE),
        },
        [DAI_LINK_UL2_FE] = {
                        SND_SOC_DPCM_TRIGGER_POST,
                },
                .dynamic = 1,
-               .dpcm_capture = 1,
+               .capture_only = 1,
                .ops = &mtk_soundcard_common_capture_ops,
                SND_SOC_DAILINK_REG(UL2_FE),
        },
                        SND_SOC_DPCM_TRIGGER_POST,
                },
                .dynamic = 1,
-               .dpcm_capture = 1,
+               .capture_only = 1,
                .ops = &mtk_soundcard_common_capture_ops,
                SND_SOC_DAILINK_REG(UL3_FE),
        },
                        SND_SOC_DPCM_TRIGGER_POST,
                },
                .dynamic = 1,
-               .dpcm_capture = 1,
+               .capture_only = 1,
                .ops = &mtk_soundcard_common_capture_ops,
                SND_SOC_DAILINK_REG(UL4_FE),
        },
                        SND_SOC_DPCM_TRIGGER_POST,
                },
                .dynamic = 1,
-               .dpcm_capture = 1,
+               .capture_only = 1,
                .ops = &mtk_soundcard_common_capture_ops,
                SND_SOC_DAILINK_REG(UL5_FE),
        },
                        SND_SOC_DPCM_TRIGGER_PRE,
                },
                .dynamic = 1,
-               .dpcm_capture = 1,
+               .capture_only = 1,
                SND_SOC_DAILINK_REG(UL6_FE),
        },
        [DAI_LINK_UL8_FE] = {
                        SND_SOC_DPCM_TRIGGER_POST,
                },
                .dynamic = 1,
-               .dpcm_capture = 1,
+               .capture_only = 1,
                .ops = &mtk_soundcard_common_capture_ops,
                SND_SOC_DAILINK_REG(UL8_FE),
        },
                        SND_SOC_DPCM_TRIGGER_POST,
                },
                .dynamic = 1,
-               .dpcm_capture = 1,
+               .capture_only = 1,
                .ops = &mtk_soundcard_common_capture_ops,
                SND_SOC_DAILINK_REG(UL9_FE),
        },
                        SND_SOC_DPCM_TRIGGER_POST,
                },
                .dynamic = 1,
-               .dpcm_capture = 1,
+               .capture_only = 1,
                .ops = &mtk_soundcard_common_capture_ops,
                SND_SOC_DAILINK_REG(UL10_FE),
        },
        [DAI_LINK_DL_SRC_BE] = {
                .name = "DL_SRC_BE",
                .no_pcm = 1,
-               .dpcm_playback = 1,
+               .playback_only = 1,
                SND_SOC_DAILINK_REG(DL_SRC_BE),
        },
        [DAI_LINK_DPTX_BE] = {
                .name = "DPTX_BE",
                .no_pcm = 1,
-               .dpcm_playback = 1,
+               .playback_only = 1,
                .ops = &mt8195_dptx_ops,
                .be_hw_params_fixup = mt8195_dptx_hw_params_fixup,
                SND_SOC_DAILINK_REG(DPTX_BE),
                .dai_fmt = SND_SOC_DAIFMT_I2S |
                        SND_SOC_DAIFMT_NB_NF |
                        SND_SOC_DAIFMT_CBS_CFS,
-               .dpcm_capture = 1,
+               .capture_only = 1,
                SND_SOC_DAILINK_REG(ETDM1_IN_BE),
        },
        [DAI_LINK_ETDM2_IN_BE] = {
                .dai_fmt = SND_SOC_DAIFMT_I2S |
                        SND_SOC_DAIFMT_NB_NF |
                        SND_SOC_DAIFMT_CBS_CFS,
-               .dpcm_capture = 1,
+               .capture_only = 1,
                .be_hw_params_fixup = mt8195_etdm_hw_params_fixup,
                SND_SOC_DAILINK_REG(ETDM2_IN_BE),
        },
                .dai_fmt = SND_SOC_DAIFMT_I2S |
                        SND_SOC_DAIFMT_NB_NF |
                        SND_SOC_DAIFMT_CBS_CFS,
-               .dpcm_playback = 1,
+               .playback_only = 1,
                .be_hw_params_fixup = mt8195_etdm_hw_params_fixup,
                SND_SOC_DAILINK_REG(ETDM1_OUT_BE),
        },
                .dai_fmt = SND_SOC_DAIFMT_I2S |
                        SND_SOC_DAIFMT_NB_NF |
                        SND_SOC_DAIFMT_CBS_CFS,
-               .dpcm_playback = 1,
+               .playback_only = 1,
                SND_SOC_DAILINK_REG(ETDM2_OUT_BE),
        },
        [DAI_LINK_ETDM3_OUT_BE] = {
                .dai_fmt = SND_SOC_DAIFMT_I2S |
                        SND_SOC_DAIFMT_NB_NF |
                        SND_SOC_DAIFMT_CBS_CFS,
-               .dpcm_playback = 1,
+               .playback_only = 1,
                SND_SOC_DAILINK_REG(ETDM3_OUT_BE),
        },
        [DAI_LINK_PCM1_BE] = {
                .dai_fmt = SND_SOC_DAIFMT_I2S |
                        SND_SOC_DAIFMT_NB_NF |
                        SND_SOC_DAIFMT_CBS_CFS,
-               .dpcm_playback = 1,
-               .dpcm_capture = 1,
                SND_SOC_DAILINK_REG(PCM1_BE),
        },
        [DAI_LINK_UL_SRC1_BE] = {
                .name = "UL_SRC1_BE",
                .no_pcm = 1,
-               .dpcm_capture = 1,
+               .capture_only = 1,
                SND_SOC_DAILINK_REG(UL_SRC1_BE),
        },
        [DAI_LINK_UL_SRC2_BE] = {
                .name = "UL_SRC2_BE",
                .no_pcm = 1,
-               .dpcm_capture = 1,
+               .capture_only = 1,
                SND_SOC_DAILINK_REG(UL_SRC2_BE),
        },
        /* SOF BE */
        [DAI_LINK_SOF_DL2_BE] = {
                .name = "AFE_SOF_DL2",
                .no_pcm = 1,
-               .dpcm_playback = 1,
+               .playback_only = 1,
                .ops = &mt8195_sof_be_ops,
                SND_SOC_DAILINK_REG(AFE_SOF_DL2),
        },
        [DAI_LINK_SOF_DL3_BE] = {
                .name = "AFE_SOF_DL3",
                .no_pcm = 1,
-               .dpcm_playback = 1,
+               .playback_only = 1,
                .ops = &mt8195_sof_be_ops,
                SND_SOC_DAILINK_REG(AFE_SOF_DL3),
        },
        [DAI_LINK_SOF_UL4_BE] = {
                .name = "AFE_SOF_UL4",
                .no_pcm = 1,
-               .dpcm_capture = 1,
+               .capture_only = 1,
                .ops = &mt8195_sof_be_ops,
                SND_SOC_DAILINK_REG(AFE_SOF_UL4),
        },
        [DAI_LINK_SOF_UL5_BE] = {
                .name = "AFE_SOF_UL5",
                .no_pcm = 1,
-               .dpcm_capture = 1,
+               .capture_only = 1,
                .ops = &mt8195_sof_be_ops,
                SND_SOC_DAILINK_REG(AFE_SOF_UL5),
        },
 
                        SND_SOC_DPCM_TRIGGER_POST
                },
                .dynamic = 1,
-               .dpcm_playback = 1,
+               .playback_only = 1,
                .dpcm_merged_rate = 1,
                SND_SOC_DAILINK_REG(playback1),
        },
                        SND_SOC_DPCM_TRIGGER_POST
                },
                .dynamic = 1,
-               .dpcm_playback = 1,
+               .playback_only = 1,
                .dpcm_merged_rate = 1,
                SND_SOC_DAILINK_REG(playback2),
        },
                        SND_SOC_DPCM_TRIGGER_POST
                },
                .dynamic = 1,
-               .dpcm_capture = 1,
+               .capture_only = 1,
                .dpcm_merged_rate = 1,
                SND_SOC_DAILINK_REG(awb_capture),
        },
                        SND_SOC_DPCM_TRIGGER_POST
                },
                .dynamic = 1,
-               .dpcm_capture = 1,
+               .capture_only = 1,
                .dpcm_merged_rate = 1,
                SND_SOC_DAILINK_REG(vul),
        },
                .dai_fmt = SND_SOC_DAIFMT_I2S |
                                SND_SOC_DAIFMT_NB_NF |
                                SND_SOC_DAIFMT_CBS_CFS,
-               .dpcm_playback = 1,
-               .dpcm_capture = 1,
                SND_SOC_DAILINK_REG(i2s3),
        },
        [DAI_LINK_DMIC] = {
                .name = "DMIC_BE",
                .no_pcm = 1,
                .id = DAI_LINK_DMIC,
-               .dpcm_capture = 1,
+               .capture_only = 1,
                SND_SOC_DAILINK_REG(dmic),
        },
        [DAI_LINK_INT_ADDA] = {
                .name = "MTK_Codec",
                .no_pcm = 1,
                .id = DAI_LINK_INT_ADDA,
-               .dpcm_playback = 1,
-               .dpcm_capture = 1,
                .ops = &mt8365_mt6357_int_adda_ops,
                SND_SOC_DAILINK_REG(primary_codec),
        },