Commit 5a15cd7f authored by Shuming Fan's avatar Shuming Fan Committed by Mark Brown

ASoC: rt5682: enable fast discharge for headset unplugging

To avoid the pop noise, this patch enables the feature of fast discharge.
Signed-off-by: default avatarShuming Fan <shumingf@realtek.com>
Link: https://lore.kernel.org/r/20210111092544.9064-1-shumingf@realtek.comSigned-off-by: default avatarMark Brown <broonie@kernel.org>
parent 867f8d18
...@@ -953,6 +953,8 @@ int rt5682_headset_detect(struct snd_soc_component *component, int jack_insert) ...@@ -953,6 +953,8 @@ int rt5682_headset_detect(struct snd_soc_component *component, int jack_insert)
case 0x1: case 0x1:
case 0x2: case 0x2:
rt5682->jack_type = SND_JACK_HEADSET; rt5682->jack_type = SND_JACK_HEADSET;
snd_soc_component_update_bits(component, RT5682_CBJ_CTRL_1,
RT5682_FAST_OFF_MASK, RT5682_FAST_OFF_EN);
rt5682_enable_push_button_irq(component, true); rt5682_enable_push_button_irq(component, true);
break; break;
default: default:
...@@ -982,6 +984,8 @@ int rt5682_headset_detect(struct snd_soc_component *component, int jack_insert) ...@@ -982,6 +984,8 @@ int rt5682_headset_detect(struct snd_soc_component *component, int jack_insert)
snd_soc_component_update_bits(component, RT5682_MICBIAS_2, snd_soc_component_update_bits(component, RT5682_MICBIAS_2,
RT5682_PWR_CLK25M_MASK | RT5682_PWR_CLK1M_MASK, RT5682_PWR_CLK25M_MASK | RT5682_PWR_CLK1M_MASK,
RT5682_PWR_CLK25M_PD | RT5682_PWR_CLK1M_PD); RT5682_PWR_CLK25M_PD | RT5682_PWR_CLK1M_PD);
snd_soc_component_update_bits(component, RT5682_CBJ_CTRL_1,
RT5682_FAST_OFF_MASK, RT5682_FAST_OFF_DIS);
rt5682->jack_type = 0; rt5682->jack_type = 0;
} }
...@@ -1011,11 +1015,13 @@ static int rt5682_set_jack_detect(struct snd_soc_component *component, ...@@ -1011,11 +1015,13 @@ static int rt5682_set_jack_detect(struct snd_soc_component *component,
if (!rt5682->is_sdw) { if (!rt5682->is_sdw) {
switch (rt5682->pdata.jd_src) { switch (rt5682->pdata.jd_src) {
case RT5682_JD1: case RT5682_JD1:
snd_soc_component_update_bits(component,
RT5682_CBJ_CTRL_5, 0x0700, 0x0600);
snd_soc_component_update_bits(component, snd_soc_component_update_bits(component,
RT5682_CBJ_CTRL_2, RT5682_EXT_JD_SRC, RT5682_CBJ_CTRL_2, RT5682_EXT_JD_SRC,
RT5682_EXT_JD_SRC_MANUAL); RT5682_EXT_JD_SRC_MANUAL);
snd_soc_component_write(component, RT5682_CBJ_CTRL_1, snd_soc_component_write(component, RT5682_CBJ_CTRL_1,
0xd042); 0xd142);
snd_soc_component_update_bits(component, snd_soc_component_update_bits(component,
RT5682_CBJ_CTRL_3, RT5682_CBJ_IN_BUF_EN, RT5682_CBJ_CTRL_3, RT5682_CBJ_IN_BUF_EN,
RT5682_CBJ_IN_BUF_EN); RT5682_CBJ_IN_BUF_EN);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment