ASoC: Enable WM8990 ADC clocking workaround
authorMark Brown <broonie@opensource.wolfsonmicro.com>
Mon, 17 Nov 2008 17:09:34 +0000 (17:09 +0000)
committerMark Brown <broonie@opensource.wolfsonmicro.com>
Mon, 17 Nov 2008 17:24:54 +0000 (17:24 +0000)
Enable a hardware workaround which avoids problems with the clocking of
the ADCs in certain configurations.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
sound/soc/codecs/wm8990.c
sound/soc/codecs/wm8990.h

index 5c84f02c4579b044d4bd55869c3d1b5c289275dd..938e1542920784795325ff8740e09018203e8b98 100644 (file)
@@ -1272,9 +1272,11 @@ static int wm8990_set_bias_level(struct snd_soc_codec *codec,
 
                        /* disable POBCTRL, SOFT_ST and BUFDCOPEN */
                        wm8990_write(codec, WM8990_ANTIPOP2, WM8990_BUFIOEN);
-               } else {
-                       /* ON -> standby */
 
+                       /* Enable workaround for ADC clocking issue. */
+                       wm8990_write(codec, WM8990_EXT_ACCESS_ENA, 0x2);
+                       wm8990_write(codec, WM8990_EXT_CTL1, 0xa003);
+                       wm8990_write(codec, WM8990_EXT_ACCESS_ENA, 0);
                }
                break;
 
index 0e192f3b07882a44cb7950486c3f8bacafa4a09f..7114ddc88b4ba5fb6c2dff17712b7b05c36ac39c 100644 (file)
@@ -80,8 +80,8 @@
 #define WM8990_PLL3                             0x3E
 #define WM8990_INTDRIVBITS                     0x3F
 
-#define WM8990_REGISTER_COUNT                   60
-#define WM8990_MAX_REGISTER                     0x3F
+#define WM8990_EXT_ACCESS_ENA                  0x75
+#define WM8990_EXT_CTL1                                0x7a
 
 /*
  * Field Definitions.