diff options
author | Thomas Ryu <smilesr.ryu@samsung.com> | 2011-03-15 00:41:10 -0700 |
---|---|---|
committer | Arve Hjønnevåg <arve@android.com> | 2011-11-17 17:53:33 -0800 |
commit | 437faafcb53149c27df0a7c354be8379eb890c48 (patch) | |
tree | f915914fa36177472deff234709b4c1791bbaaca /sound | |
parent | c8221058237dcc850a654eefb56341254e36db2d (diff) | |
download | kernel_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-x | sound/soc/codecs/wm8994_herring.c | 22 |
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 */ |