#include <linux/slab.h>
  #include <linux/dma-mapping.h>
  #include <linux/clk.h>
+ #include <linux/clk-provider.h>
  #include <linux/delay.h>
  #include <linux/time.h>
 -#include <linux/fsl/mxs-dma.h>
 -#include <linux/pinctrl/consumer.h>
  #include <sound/core.h>
  #include <sound/pcm.h>
  #include <sound/pcm_params.h>
                return ret;
        }
  
 -      saif->dma_param.dma_data.chan_irq = platform_get_irq(pdev, 1);
 -      if (saif->dma_param.dma_data.chan_irq < 0) {
 -              ret = saif->dma_param.dma_data.chan_irq;
 -              dev_err(&pdev->dev, "failed to get dma irq resource: %d\n",
 -                      ret);
 -              return ret;
 -      }
 -
        platform_set_drvdata(pdev, saif);
  
+       /* We only support saif0 being tx and clock master */
+       if (saif->id == 0) {
+               ret = mxs_saif_mclk_init(pdev);
+               if (ret)
+                       dev_warn(&pdev->dev, "failed to init clocks\n");
+       }
+ 
        ret = snd_soc_register_component(&pdev->dev, &mxs_saif_component,
                                         &mxs_saif_dai, 1);
        if (ret) {