]> git.hungrycats.org Git - linux/commitdiff
ASoC: wm8737: Fixup setting VMID Impedance control register
authorAxel Lin <axel.lin@ingics.com>
Sun, 10 May 2015 03:35:06 +0000 (11:35 +0800)
committerZefan Li <lizefan@huawei.com>
Thu, 22 Oct 2015 01:20:01 +0000 (09:20 +0800)
commit 14ba3ec1de043260cecd9e828ea2e3a0ad302893 upstream.

According to the datasheet:
R10 (0Ah) VMID Impedance Control

BIT 3:2 VMIDSEL DEFAULT 00

DESCRIPTION: VMID impedance selection control
00: 75kΩ output
01: 300kΩ output
10: 2.5kΩ output

WM8737_VMIDSEL_MASK is 0xC (VMIDSEL - [3:2]),
so it needs to left shift WM8737_VMIDSEL_SHIFT bits for setting these bits.

Signed-off-by: Axel Lin <axel.lin@ingics.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Zefan Li <lizefan@huawei.com>
sound/soc/codecs/wm8737.c

index 4fe9d191e2774ab7fad2e00a5ba7542b51580669..80460d2a170d15b534e9c6f455ebc188006e9d6e 100644 (file)
@@ -484,7 +484,8 @@ static int wm8737_set_bias_level(struct snd_soc_codec *codec,
 
                        /* Fast VMID ramp at 2*2.5k */
                        snd_soc_update_bits(codec, WM8737_MISC_BIAS_CONTROL,
-                                           WM8737_VMIDSEL_MASK, 0x4);
+                                           WM8737_VMIDSEL_MASK,
+                                           2 << WM8737_VMIDSEL_SHIFT);
 
                        /* Bring VMID up */
                        snd_soc_update_bits(codec, WM8737_POWER_MANAGEMENT,
@@ -498,7 +499,8 @@ static int wm8737_set_bias_level(struct snd_soc_codec *codec,
 
                /* VMID at 2*300k */
                snd_soc_update_bits(codec, WM8737_MISC_BIAS_CONTROL,
-                                   WM8737_VMIDSEL_MASK, 2);
+                                   WM8737_VMIDSEL_MASK,
+                                   1 << WM8737_VMIDSEL_SHIFT);
 
                break;