aboutsummaryrefslogtreecommitdiffstats
path: root/sound/soc/blackfin
diff options
context:
space:
mode:
Diffstat (limited to 'sound/soc/blackfin')
-rw-r--r--sound/soc/blackfin/bf5xx-ad193x.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/sound/soc/blackfin/bf5xx-ad193x.c b/sound/soc/blackfin/bf5xx-ad193x.c
index d3ccb926b5e4..33678828d57e 100644
--- a/sound/soc/blackfin/bf5xx-ad193x.c
+++ b/sound/soc/blackfin/bf5xx-ad193x.c
@@ -60,8 +60,16 @@ static int bf5xx_ad193x_hw_params(struct snd_pcm_substream *substream,
60 struct snd_soc_pcm_runtime *rtd = substream->private_data; 60 struct snd_soc_pcm_runtime *rtd = substream->private_data;
61 struct snd_soc_dai *cpu_dai = rtd->cpu_dai; 61 struct snd_soc_dai *cpu_dai = rtd->cpu_dai;
62 struct snd_soc_dai *codec_dai = rtd->codec_dai; 62 struct snd_soc_dai *codec_dai = rtd->codec_dai;
63 unsigned int clk = 0;
63 unsigned int channel_map[] = {0, 1, 2, 3, 4, 5, 6, 7}; 64 unsigned int channel_map[] = {0, 1, 2, 3, 4, 5, 6, 7};
64 int ret = 0; 65 int ret = 0;
66
67 switch (params_rate(params)) {
68 case 48000:
69 clk = 12288000;
70 break;
71 }
72
65 /* set cpu DAI configuration */ 73 /* set cpu DAI configuration */
66 ret = snd_soc_dai_set_fmt(cpu_dai, SND_SOC_DAIFMT_DSP_A | 74 ret = snd_soc_dai_set_fmt(cpu_dai, SND_SOC_DAIFMT_DSP_A |
67 SND_SOC_DAIFMT_IB_IF | SND_SOC_DAIFMT_CBM_CFM); 75 SND_SOC_DAIFMT_IB_IF | SND_SOC_DAIFMT_CBM_CFM);
@@ -74,6 +82,12 @@ static int bf5xx_ad193x_hw_params(struct snd_pcm_substream *substream,
74 if (ret < 0) 82 if (ret < 0)
75 return ret; 83 return ret;
76 84
85 /* set the codec system clock for DAC and ADC */
86 ret = snd_soc_dai_set_sysclk(codec_dai, 0, clk,
87 SND_SOC_CLOCK_IN);
88 if (ret < 0)
89 return ret;
90
77 /* set codec DAI slots, 8 channels, all channels are enabled */ 91 /* set codec DAI slots, 8 channels, all channels are enabled */
78 ret = snd_soc_dai_set_tdm_slot(codec_dai, 0xFF, 0xFF, 8, 32); 92 ret = snd_soc_dai_set_tdm_slot(codec_dai, 0xFF, 0xFF, 8, 32);
79 if (ret < 0) 93 if (ret < 0)