aboutsummaryrefslogtreecommitdiffstats
path: root/sound
diff options
context:
space:
mode:
authorThomas Ryu <smilesr.ryu@samsung.com>2011-03-15 00:41:10 -0700
committerArve Hjønnevåg <arve@android.com>2011-11-17 17:53:33 -0800
commit437faafcb53149c27df0a7c354be8379eb890c48 (patch)
treef915914fa36177472deff234709b4c1791bbaaca /sound
parentc8221058237dcc850a654eefb56341254e36db2d (diff)
downloadkernel_samsung_crespo-437faafcb53149c27df0a7c354be8379eb890c48.zip
kernel_samsung_crespo-437faafcb53149c27df0a7c354be8379eb890c48.tar.gz
kernel_samsung_crespo-437faafcb53149c27df0a7c354be8379eb890c48.tar.bz2
ASOC: update CDMA specific clock settings
update CDMA specific clok settings to - fix the current wrong values - set the registers when the codec is powered-on by adding 50ms delay Change-Id: I257f0105e8da2bb52f8ef51388739103fd0b9ba2 Signed-off-by: Thomas Ryu <smilesr.ryu@samsung.com>
Diffstat (limited to 'sound')
-rwxr-xr-xsound/soc/codecs/wm8994_herring.c22
1 files changed, 11 insertions, 11 deletions
diff --git a/sound/soc/codecs/wm8994_herring.c b/sound/soc/codecs/wm8994_herring.c
index 6ba5381..b106c0b 100755
--- a/sound/soc/codecs/wm8994_herring.c
+++ b/sound/soc/codecs/wm8994_herring.c
@@ -2408,6 +2408,7 @@ static void wm8994_set_cdma_voicecall_receiver(struct snd_soc_codec *codec)
wm8994_write(codec, 0x0039, 0x0068); /* Anti Pop2 */
wm8994_write(codec, 0x0001, 0x0003); /* Power Management 1 */
+ msleep(50);
wm8994_write(codec, 0x0015, 0x0040);
wm8994_write(codec, 0x0702, 0x8100); /* GPIO 3. Speech PCM Clock */
wm8994_write(codec, 0x0703, 0x8100); /* GPIO 4. Speech PCM Sync */
@@ -2419,15 +2420,23 @@ static void wm8994_set_cdma_voicecall_receiver(struct snd_soc_codec *codec)
wm8994_write(codec, 0x0241, 0x2F00); /* FLL2 Control 2 */
wm8994_write(codec, 0x0243, 0x0600); /* FLL2 Control 4 */
wm8994_write(codec, 0x0240, 0x0001); /* FLL2 Control 1 */
+ msleep(3);
+
+ /* AIF2 Clocking 1. Clock Source Select */
+ wm8994_write(codec, 0x0204, 0x0008);
+
/* Clocking 1. '0x000A' is added for a playback. (original = 0x0007) */
wm8994_write(codec, 0x0208, 0x000F);
- wm8994_write(codec, 0x0204, 0x0009); /* AIF2 Clocking 1 */
+ wm8994_write(codec, 0x0620, 0x0000); /* Oversampling */
wm8994_write(codec, 0x0211, 0x0003); /* AIF2 Rate */
wm8994_write(codec, 0x0310, 0x4118); /* AIF2 Control 1 */
/* AIF2 Control 2 pcm format is changed ulaw to linear */
wm8994_write(codec, 0x0311, 0x0000);
wm8994_write(codec, 0x0520, 0x0000); /* AIF2 DAC Filter 1 */
+ /* AIF2 Clocking 1. AIF2 Clock Enable */
+ wm8994_write(codec, 0x0204, 0x0009);
+
wm8994_write(codec, 0x0601, 0x0005); /* DAC1 Left Mixer Routing */
/* DAC1 Right Mixer Routing(Playback) */
wm8994_write(codec, 0x0602, 0x0001);
@@ -2435,17 +2444,8 @@ static void wm8994_set_cdma_voicecall_receiver(struct snd_soc_codec *codec)
wm8994_write(codec, 0x0604, 0x0030); /* DAC2 Left Mixer Routing */
wm8994_write(codec, 0x0605, 0x0010); /* DAC2 Right Mixer Routing */
wm8994_write(codec, 0x0621, 0x01C0); /* Sidetone */
- wm8994_write(codec, 0x0620, 0x0000); /* Oversampling */
- /* sub mic */
wm8994_write(codec, 0x0002, 0x6240); /* Power Management 2 */
- /* sub mic */
- wm8994_write(codec, 0x0028, 0x0030); /* Input Mixer 2 30 -> 00 */
-
- /* Left Line Input 1&2 Volume */
- val = wm8994_read(codec, 0x0018);
- val &= ~(WM8994_IN1L_MUTE_MASK | WM8994_IN1L_VOL_MASK);
- val |= (0x0100 | 0x16);
- /* sub mic */
+ wm8994_write(codec, 0x0028, 0x0030); /* Input Mixer 2 */
wm8994_write(codec, 0x0018, 0x010A);
/* Output Mixer 5 */