Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
        struct snd_soc_pcm_runtime *rtd = substream->private_data;
        struct snd_soc_dai *codec_dai = rtd->dai->codec_dai;
        struct snd_soc_dai *cpu_dai = rtd->dai->cpu_dai;
+       unsigned int pll_out = 0;
        unsigned int acds = 0;
        unsigned int wm9713_div = 0;
        int ret = 0;
        switch (params_rate(params)) {
        case 8000:
                wm9713_div = 12;
+               pll_out = 2048000;
                break;
        case 16000:
                wm9713_div = 6;
+               pll_out = 4096000;
                break;
        case 48000:
        default:
                wm9713_div = 2;
+               pll_out = 12288000;
                acds = 1;
                break;
        }
        if (ret < 0)
                return ret;
 
+       ret = snd_soc_dai_set_pll(cpu_dai, 0, 0, pll_out);
+       if (ret < 0)
+               return ret;
+
        ret = snd_soc_dai_set_clkdiv(cpu_dai, PXA_SSP_AUDIO_DIV_ACDS, acds);
        if (ret < 0)
                return ret;