ASoC: Unconditionally enable WM8994 AIF1ADC TDM mode
authorMark Brown <broonie@opensource.wolfsonmicro.com>
Tue, 20 Jul 2010 09:13:14 +0000 (10:13 +0100)
committerMark Brown <broonie@opensource.wolfsonmicro.com>
Tue, 20 Jul 2010 09:27:05 +0000 (10:27 +0100)
AIF1ADC TDM mode has no effect other than causing the ADCDAT line to
be tristated rather than driven low on clock cycles where there is no
data to be transmitted. If the clock cycle is idle then there should
be no devices using the data so tristating should have no adverse
effects.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
sound/soc/codecs/wm8994.c

index 0ddb6f1ce6fb23f279aca4d63ed51882bbb4b3fd..a87046a96f2abb01df5bde6d23bc24c29c3bfa3a 100644 (file)
@@ -4074,6 +4074,11 @@ static int wm8994_codec_probe(struct platform_device *pdev)
                            1 << WM8994_AIF2DAC_3D_GAIN_SHIFT,
                            1 << WM8994_AIF2DAC_3D_GAIN_SHIFT);
 
+       /* Unconditionally enable AIF1 ADC TDM mode; it only affects
+        * behaviour on idle TDM clock cycles. */
+       snd_soc_update_bits(codec, WM8994_AIF1_CONTROL_1,
+                           WM8994_AIF1ADC_TDM, WM8994_AIF1ADC_TDM);
+
        wm8994_update_class_w(codec);
 
        ret = snd_soc_register_codec(codec);