diff options
Diffstat (limited to 'sound/soc/codecs/wm8978.c')
-rw-r--r-- | sound/soc/codecs/wm8978.c | 19 |
1 files changed, 4 insertions, 15 deletions
diff --git a/sound/soc/codecs/wm8978.c b/sound/soc/codecs/wm8978.c index 8dcebaa8604a..ec2624b4c370 100644 --- a/sound/soc/codecs/wm8978.c +++ b/sound/soc/codecs/wm8978.c | |||
@@ -210,6 +210,10 @@ static const struct snd_kcontrol_new wm8978_snd_controls[] = { | |||
210 | /* Speaker */ | 210 | /* Speaker */ |
211 | SOC_DOUBLE_R("Speaker Switch", | 211 | SOC_DOUBLE_R("Speaker Switch", |
212 | WM8978_LOUT2_SPK_CONTROL, WM8978_ROUT2_SPK_CONTROL, 6, 1, 1), | 212 | WM8978_LOUT2_SPK_CONTROL, WM8978_ROUT2_SPK_CONTROL, 6, 1, 1), |
213 | |||
214 | /* DAC / ADC oversampling */ | ||
215 | SOC_SINGLE("DAC 128x Oversampling Switch", WM8978_DAC_CONTROL, 8, 1, 0), | ||
216 | SOC_SINGLE("ADC 128x Oversampling Switch", WM8978_ADC_CONTROL, 8, 1, 0), | ||
213 | }; | 217 | }; |
214 | 218 | ||
215 | /* Mixer #1: Output (OUT1, OUT2) Mixer: mix AUX, Input mixer output and DAC */ | 219 | /* Mixer #1: Output (OUT1, OUT2) Mixer: mix AUX, Input mixer output and DAC */ |
@@ -513,21 +517,6 @@ static int wm8978_set_dai_clkdiv(struct snd_soc_dai *codec_dai, | |||
513 | if (wm8978->f_mclk) | 517 | if (wm8978->f_mclk) |
514 | ret = wm8978_configure_pll(codec); | 518 | ret = wm8978_configure_pll(codec); |
515 | break; | 519 | break; |
516 | case WM8978_MCLKDIV: | ||
517 | if (div & ~0xe0) | ||
518 | return -EINVAL; | ||
519 | snd_soc_update_bits(codec, WM8978_CLOCKING, 0xe0, div); | ||
520 | break; | ||
521 | case WM8978_ADCCLK: | ||
522 | if (div & ~8) | ||
523 | return -EINVAL; | ||
524 | snd_soc_update_bits(codec, WM8978_ADC_CONTROL, 8, div); | ||
525 | break; | ||
526 | case WM8978_DACCLK: | ||
527 | if (div & ~8) | ||
528 | return -EINVAL; | ||
529 | snd_soc_update_bits(codec, WM8978_DAC_CONTROL, 8, div); | ||
530 | break; | ||
531 | case WM8978_BCLKDIV: | 520 | case WM8978_BCLKDIV: |
532 | if (div & ~0x1c) | 521 | if (div & ~0x1c) |
533 | return -EINVAL; | 522 | return -EINVAL; |