if (ret)
                return ret;
 
-       /* TDM 4 slots 24 bit, set Rx & Tx bitmask to 4 active slots */
-       ret = snd_soc_dai_set_tdm_slot(codec_dai, 0xF, 0xF, 4, 24);
-       if (ret < 0) {
-               dev_err(runtime->dev, "can't set codec TDM slot %d\n", ret);
-               return ret;
-       }
-
        if (ctx->acpi_card->codec_type == CODEC_TYPE_RT5650)
                jack_type = SND_JACK_HEADPHONE | SND_JACK_MICROPHONE |
                                        SND_JACK_BTN_0 | SND_JACK_BTN_1 |
                 */
                ret = snd_soc_dai_set_fmt(rtd->cpu_dai,
                                        SND_SOC_DAIFMT_I2S     |
-                                       SND_SOC_DAIFMT_NB_IF   |
+                                       SND_SOC_DAIFMT_NB_NF   |
+                                       SND_SOC_DAIFMT_CBS_CFS
+                       );
+               if (ret < 0) {
+                       dev_err(rtd->dev, "can't set format to I2S, err %d\n", ret);
+                       return ret;
+               }
+
+               ret = snd_soc_dai_set_fmt(rtd->codec_dai,
+                                       SND_SOC_DAIFMT_I2S     |
+                                       SND_SOC_DAIFMT_NB_NF   |
                                        SND_SOC_DAIFMT_CBS_CFS
                        );
                if (ret < 0) {
                /* set SSP2 to 24-bit */
                params_set_format(params, SNDRV_PCM_FORMAT_S24_LE);
 
+               /*
+                * Default mode for SSP configuration is TDM 4 slot
+                */
+               ret = snd_soc_dai_set_fmt(rtd->codec_dai,
+                                       SND_SOC_DAIFMT_DSP_B |
+                                       SND_SOC_DAIFMT_IB_NF |
+                                       SND_SOC_DAIFMT_CBS_CFS);
+               if (ret < 0) {
+                       dev_err(rtd->dev, "can't set format to TDM %d\n", ret);
+                       return ret;
+               }
+
+               /* TDM 4 slots 24 bit, set Rx & Tx bitmask to 4 active slots */
+               ret = snd_soc_dai_set_tdm_slot(rtd->codec_dai, 0xF, 0xF, 4, 24);
+               if (ret < 0) {
+                       dev_err(rtd->dev, "can't set codec TDM slot %d\n", ret);
+                       return ret;
+               }
        }
        return 0;
 }
                .no_pcm = 1,
                .codec_dai_name = "rt5645-aif1",
                .codec_name = "i2c-10EC5645:00",
-               .dai_fmt = SND_SOC_DAIFMT_DSP_B | SND_SOC_DAIFMT_IB_NF
-                                       | SND_SOC_DAIFMT_CBS_CFS,
                .init = cht_codec_init,
                .be_hw_params_fixup = cht_codec_fixup,
                .nonatomic = true,