ASoC: cs42l43: Disable headphone clamps during type detection

The headphone clamps cause fairly loud pops during type detect
because they sink current from the detection process itself. Disable
the clamps whilst the type detect runs, to improve the detection
pop performance.

Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com>
Link: https://patch.msgid.link/20250423090944.1504538-1-ckeepax@opensource.cirrus.com
Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
Charles Keepax 2025-04-23 10:09:44 +01:00 committed by Mark Brown
parent 68715cb5c0
commit 70ad2e6bd1
No known key found for this signature in database
GPG Key ID: 24D68B725D5487D0

View File

@ -654,6 +654,10 @@ static int cs42l43_run_type_detect(struct cs42l43_codec *priv)
reinit_completion(&priv->type_detect);
regmap_update_bits(cs42l43->regmap, CS42L43_STEREO_MIC_CLAMP_CTRL,
CS42L43_SMIC_HPAMP_CLAMP_DIS_FRC_VAL_MASK,
CS42L43_SMIC_HPAMP_CLAMP_DIS_FRC_VAL_MASK);
cs42l43_start_hs_bias(priv, true);
regmap_update_bits(cs42l43->regmap, CS42L43_HS2,
CS42L43_HSDET_MODE_MASK, 0x3 << CS42L43_HSDET_MODE_SHIFT);
@ -665,6 +669,9 @@ static int cs42l43_run_type_detect(struct cs42l43_codec *priv)
CS42L43_HSDET_MODE_MASK, 0x2 << CS42L43_HSDET_MODE_SHIFT);
cs42l43_stop_hs_bias(priv);
regmap_update_bits(cs42l43->regmap, CS42L43_STEREO_MIC_CLAMP_CTRL,
CS42L43_SMIC_HPAMP_CLAMP_DIS_FRC_VAL_MASK, 0);
if (!time_left)
return -ETIMEDOUT;