forked from Minki/linux
ASoC: wm_hubs: Clamp inputs to VMID while we ramp
Reduces the amount of time taken to stabilise them. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
This commit is contained in:
parent
5f2f389040
commit
d60d6c3b65
@ -31,6 +31,7 @@
|
||||
#define WM8993_GPIO_CTRL_1 0x12
|
||||
#define WM8993_GPIO1 0x13
|
||||
#define WM8993_IRQ_DEBOUNCE 0x14
|
||||
#define WM8993_INPUTS_CLAMP_REG 0x15
|
||||
#define WM8993_GPIOCTRL_2 0x16
|
||||
#define WM8993_GPIO_POL 0x17
|
||||
#define WM8993_LEFT_LINE_INPUT_1_2_VOLUME 0x18
|
||||
@ -655,6 +656,14 @@
|
||||
#define WM8993_GPIO1_DB_SHIFT 0 /* GPIO1_DB */
|
||||
#define WM8993_GPIO1_DB_WIDTH 1 /* GPIO1_DB */
|
||||
|
||||
/*
|
||||
* R21 (0x15) - Inputs Clamp
|
||||
*/
|
||||
#define WM8993_INPUTS_CLAMP 0x0040 /* INPUTS_CLAMP */
|
||||
#define WM8993_INPUTS_CLAMP_MASK 0x0040 /* INPUTS_CLAMP */
|
||||
#define WM8993_INPUTS_CLAMP_SHIFT 7 /* INPUTS_CLAMP */
|
||||
#define WM8993_INPUTS_CLAMP_WIDTH 1 /* INPUTS_CLAMP */
|
||||
|
||||
/*
|
||||
* R22 (0x16) - GPIOCTRL 2
|
||||
*/
|
||||
|
@ -1040,6 +1040,12 @@ void wm_hubs_set_bias_level(struct snd_soc_codec *codec,
|
||||
int val;
|
||||
|
||||
switch (level) {
|
||||
case SND_SOC_BIAS_STANDBY:
|
||||
/* Clamp the inputs to VMID while we ramp to charge caps */
|
||||
snd_soc_update_bits(codec, WM8993_INPUTS_CLAMP_REG,
|
||||
WM8993_INPUTS_CLAMP, WM8993_INPUTS_CLAMP);
|
||||
break;
|
||||
|
||||
case SND_SOC_BIAS_ON:
|
||||
/* Turn off any unneded single ended outputs */
|
||||
val = 0;
|
||||
@ -1067,6 +1073,10 @@ void wm_hubs_set_bias_level(struct snd_soc_codec *codec,
|
||||
!hubs->lineout2n_ena && !hubs->lineout2p_ena)
|
||||
snd_soc_update_bits(codec, WM8993_ANTIPOP1,
|
||||
WM8993_LINEOUT_VMID_BUF_ENA, 0);
|
||||
|
||||
/* Remove the input clamps */
|
||||
snd_soc_update_bits(codec, WM8993_INPUTS_CLAMP_REG,
|
||||
WM8993_INPUTS_CLAMP, 0);
|
||||
break;
|
||||
|
||||
default:
|
||||
|
Loading…
Reference in New Issue
Block a user