summaryrefslogtreecommitdiff
path: root/sound/soc/codecs/rt711-sdca.c
diff options
context:
space:
mode:
authorShuming Fan <shumingf@realtek.com>2022-12-23 08:58:46 +0300
committerMark Brown <broonie@kernel.org>2022-12-26 02:33:19 +0300
commit51ea51b18904cd1a0fb244ce41dfd903c2ada628 (patch)
tree3a0ad50603308bbc6e56ef436709c7aa68413246 /sound/soc/codecs/rt711-sdca.c
parent1b929c02afd37871d5afb9d498426f83432e71c2 (diff)
downloadlinux-51ea51b18904cd1a0fb244ce41dfd903c2ada628.tar.xz
ASoC: rt711-sdca: add jack detection mode for JD2 100K
This patch adds another jack detection mode for JD2 with an external resistor of 100k. Signed-off-by: Shuming Fan <shumingf@realtek.com> Link: https://lore.kernel.org/r/20221223055846.3285-1-shumingf@realtek.com Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'sound/soc/codecs/rt711-sdca.c')
-rw-r--r--sound/soc/codecs/rt711-sdca.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/sound/soc/codecs/rt711-sdca.c b/sound/soc/codecs/rt711-sdca.c
index b78dd5994edb..7cdf184d380b 100644
--- a/sound/soc/codecs/rt711-sdca.c
+++ b/sound/soc/codecs/rt711-sdca.c
@@ -463,6 +463,21 @@ static void rt711_sdca_jack_init(struct rt711_sdca_priv *rt711)
RT711_HP_JD_FINAL_RESULT_CTL_JD12,
RT711_HP_JD_FINAL_RESULT_CTL_JD12);
break;
+ case RT711_JD2_100K:
+ rt711_sdca_index_write(rt711, RT711_VENDOR_REG,
+ RT711_COMBO_JACK_AUTO_CTL3, 0xa47e);
+ rt711_sdca_index_update_bits(rt711, RT711_VENDOR_REG,
+ RT711_JD_CTL1, RT711_JD2_DIGITAL_MODE_SEL,
+ RT711_JD2_DIGITAL_MODE_SEL);
+ rt711_sdca_index_update_bits(rt711, RT711_VENDOR_REG,
+ RT711_JD_CTL2, RT711_JD2_2PORT_200K_DECODE_HP |
+ RT711_JD2_2PORT_100K_DECODE_MASK | RT711_HP_JD_SEL_JD2,
+ RT711_JD2_2PORT_100K_DECODE_HP | RT711_HP_JD_SEL_JD2);
+ rt711_sdca_index_update_bits(rt711, RT711_VENDOR_REG,
+ RT711_CC_DET1,
+ RT711_HP_JD_FINAL_RESULT_CTL_JD12 | RT711_POW_CC1_AGPI,
+ RT711_HP_JD_FINAL_RESULT_CTL_JD12 | RT711_POW_CC1_AGPI_OFF);
+ break;
default:
dev_warn(rt711->component->dev, "Wrong JD source\n");
break;