return 0;
 }
 
+static int kabylake_ssp0_hw_params(struct snd_pcm_substream *substream,
+                                       struct snd_pcm_hw_params *params)
+{
+       struct snd_soc_pcm_runtime *rtd = substream->private_data;
+       int ret = 0, j;
+
+       for (j = 0; j < rtd->num_codecs; j++) {
+               struct snd_soc_dai *codec_dai = rtd->codec_dais[j];
+
+               if (!strcmp(codec_dai->component->name, MAXIM_DEV0_NAME)) {
+                       /*
+                        * Use channel 4 and 5 for the first amp
+                        */
+                       ret = snd_soc_dai_set_tdm_slot(codec_dai, 0x30, 3, 8, 16);
+                       if (ret < 0) {
+                               dev_err(rtd->dev, "set TDM slot err:%d\n", ret);
+                               return ret;
+                       }
+               }
+               if (!strcmp(codec_dai->component->name, MAXIM_DEV1_NAME)) {
+                       /*
+                        * Use channel 6 and 7 for the second amp
+                        */
+                       ret = snd_soc_dai_set_tdm_slot(codec_dai, 0xC0, 3, 8, 16);
+                       if (ret < 0) {
+                               dev_err(rtd->dev, "set TDM slot err:%d\n", ret);
+                               return ret;
+                       }
+               }
+       }
+       return ret;
+}
+
+static struct snd_soc_ops kabylake_ssp0_ops = {
+       .hw_params = kabylake_ssp0_hw_params,
+};
+
 static unsigned int channels_dmic[] = {
        2, 4,
 };
                .no_pcm = 1,
                .codecs = max98927_codec_components,
                .num_codecs = ARRAY_SIZE(max98927_codec_components),
-               .dai_fmt = SND_SOC_DAIFMT_I2S |
+               .dai_fmt = SND_SOC_DAIFMT_DSP_B |
                        SND_SOC_DAIFMT_NB_NF |
                        SND_SOC_DAIFMT_CBS_CFS,
                .ignore_pmdown_time = 1,
                .be_hw_params_fixup = kabylake_ssp_fixup,
                .dpcm_playback = 1,
+               .ops = &kabylake_ssp0_ops,
        },
        {
                /* SSP1 - Codec */