diff options
-rw-r--r-- | sound/soc/atmel/playpaq_wm8510.c | 24 | ||||
-rw-r--r-- | sound/soc/codecs/wm8510.c | 4 |
2 files changed, 14 insertions, 14 deletions
diff --git a/sound/soc/atmel/playpaq_wm8510.c b/sound/soc/atmel/playpaq_wm8510.c index 43dd8cee83c6..70657534e6b1 100644 --- a/sound/soc/atmel/playpaq_wm8510.c +++ b/sound/soc/atmel/playpaq_wm8510.c | |||
@@ -164,38 +164,38 @@ static int playpaq_wm8510_hw_params(struct snd_pcm_substream *substream, | |||
164 | */ | 164 | */ |
165 | switch (params_rate(params)) { | 165 | switch (params_rate(params)) { |
166 | case 48000: | 166 | case 48000: |
167 | pll_out = 12288000; | 167 | pll_out = 24576000; |
168 | mclk_div = WM8510_MCLKDIV_1; | 168 | mclk_div = WM8510_MCLKDIV_2; |
169 | bclk = WM8510_BCLKDIV_8; | 169 | bclk = WM8510_BCLKDIV_8; |
170 | break; | 170 | break; |
171 | 171 | ||
172 | case 44100: | 172 | case 44100: |
173 | pll_out = 11289600; | 173 | pll_out = 22579200; |
174 | mclk_div = WM8510_MCLKDIV_1; | 174 | mclk_div = WM8510_MCLKDIV_2; |
175 | bclk = WM8510_BCLKDIV_8; | 175 | bclk = WM8510_BCLKDIV_8; |
176 | break; | 176 | break; |
177 | 177 | ||
178 | case 22050: | 178 | case 22050: |
179 | pll_out = 11289600; | 179 | pll_out = 22579200; |
180 | mclk_div = WM8510_MCLKDIV_2; | 180 | mclk_div = WM8510_MCLKDIV_4; |
181 | bclk = WM8510_BCLKDIV_8; | 181 | bclk = WM8510_BCLKDIV_8; |
182 | break; | 182 | break; |
183 | 183 | ||
184 | case 16000: | 184 | case 16000: |
185 | pll_out = 12288000; | 185 | pll_out = 24576000; |
186 | mclk_div = WM8510_MCLKDIV_3; | 186 | mclk_div = WM8510_MCLKDIV_6; |
187 | bclk = WM8510_BCLKDIV_8; | 187 | bclk = WM8510_BCLKDIV_8; |
188 | break; | 188 | break; |
189 | 189 | ||
190 | case 11025: | 190 | case 11025: |
191 | pll_out = 11289600; | 191 | pll_out = 22579200; |
192 | mclk_div = WM8510_MCLKDIV_4; | 192 | mclk_div = WM8510_MCLKDIV_8; |
193 | bclk = WM8510_BCLKDIV_8; | 193 | bclk = WM8510_BCLKDIV_8; |
194 | break; | 194 | break; |
195 | 195 | ||
196 | case 8000: | 196 | case 8000: |
197 | pll_out = 12288000; | 197 | pll_out = 24576000; |
198 | mclk_div = WM8510_MCLKDIV_6; | 198 | mclk_div = WM8510_MCLKDIV_12; |
199 | bclk = WM8510_BCLKDIV_8; | 199 | bclk = WM8510_BCLKDIV_8; |
200 | break; | 200 | break; |
201 | 201 | ||
diff --git a/sound/soc/codecs/wm8510.c b/sound/soc/codecs/wm8510.c index f01078cfbd72..6d4ef71e9195 100644 --- a/sound/soc/codecs/wm8510.c +++ b/sound/soc/codecs/wm8510.c | |||
@@ -336,7 +336,7 @@ static int wm8510_set_dai_pll(struct snd_soc_dai *codec_dai, | |||
336 | return 0; | 336 | return 0; |
337 | } | 337 | } |
338 | 338 | ||
339 | pll_factors(freq_out*8, freq_in); | 339 | pll_factors(freq_out*4, freq_in); |
340 | 340 | ||
341 | wm8510_write(codec, WM8510_PLLN, (pll_div.pre_div << 4) | pll_div.n); | 341 | wm8510_write(codec, WM8510_PLLN, (pll_div.pre_div << 4) | pll_div.n); |
342 | wm8510_write(codec, WM8510_PLLK1, pll_div.k >> 18); | 342 | wm8510_write(codec, WM8510_PLLK1, pll_div.k >> 18); |
@@ -367,7 +367,7 @@ static int wm8510_set_dai_clkdiv(struct snd_soc_dai *codec_dai, | |||
367 | wm8510_write(codec, WM8510_GPIO, reg | div); | 367 | wm8510_write(codec, WM8510_GPIO, reg | div); |
368 | break; | 368 | break; |
369 | case WM8510_MCLKDIV: | 369 | case WM8510_MCLKDIV: |
370 | reg = wm8510_read_reg_cache(codec, WM8510_CLOCK) & 0x1f; | 370 | reg = wm8510_read_reg_cache(codec, WM8510_CLOCK) & 0x11f; |
371 | wm8510_write(codec, WM8510_CLOCK, reg | div); | 371 | wm8510_write(codec, WM8510_CLOCK, reg | div); |
372 | break; | 372 | break; |
373 | case WM8510_ADCCLK: | 373 | case WM8510_ADCCLK: |