Commit 51ea51b1 authored by Shuming Fan's avatar Shuming Fan Committed by Mark Brown

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: default avatarShuming Fan <shumingf@realtek.com>
Link: https://lore.kernel.org/r/20221223055846.3285-1-shumingf@realtek.comSigned-off-by: default avatarMark Brown <broonie@kernel.org>
parent 1b929c02
...@@ -463,6 +463,21 @@ static void rt711_sdca_jack_init(struct rt711_sdca_priv *rt711) ...@@ -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,
RT711_HP_JD_FINAL_RESULT_CTL_JD12); RT711_HP_JD_FINAL_RESULT_CTL_JD12);
break; 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: default:
dev_warn(rt711->component->dev, "Wrong JD source\n"); dev_warn(rt711->component->dev, "Wrong JD source\n");
break; break;
......
...@@ -127,12 +127,17 @@ struct sdw_stream_data { ...@@ -127,12 +127,17 @@ struct sdw_stream_data {
/* jack detect control 2 (0x09)(NID:20h) */ /* jack detect control 2 (0x09)(NID:20h) */
#define RT711_JD2_2PORT_200K_DECODE_HP (0x1 << 13) #define RT711_JD2_2PORT_200K_DECODE_HP (0x1 << 13)
#define RT711_JD2_2PORT_100K_DECODE_MASK (0x1 << 12)
#define RT711_JD2_2PORT_100K_DECODE_HP (0x0 << 12)
#define RT711_HP_JD_SEL_JD1 (0x0 << 1) #define RT711_HP_JD_SEL_JD1 (0x0 << 1)
#define RT711_HP_JD_SEL_JD2 (0x1 << 1) #define RT711_HP_JD_SEL_JD2 (0x1 << 1)
/* CC DET1 (0x11)(NID:20h) */ /* CC DET1 (0x11)(NID:20h) */
#define RT711_HP_JD_FINAL_RESULT_CTL_JD12 (0x1 << 10) #define RT711_HP_JD_FINAL_RESULT_CTL_JD12 (0x1 << 10)
#define RT711_HP_JD_FINAL_RESULT_CTL_CCDET (0x0 << 10) #define RT711_HP_JD_FINAL_RESULT_CTL_CCDET (0x0 << 10)
#define RT711_POW_CC1_AGPI (0x1 << 5)
#define RT711_POW_CC1_AGPI_ON (0x1 << 5)
#define RT711_POW_CC1_AGPI_OFF (0x0 << 5)
/* Parameter & Verb control (0x1a)(NID:20h) */ /* Parameter & Verb control (0x1a)(NID:20h) */
#define RT711_HIDDEN_REG_SW_RESET (0x1 << 14) #define RT711_HIDDEN_REG_SW_RESET (0x1 << 14)
...@@ -226,7 +231,8 @@ enum { ...@@ -226,7 +231,8 @@ enum {
enum rt711_sdca_jd_src { enum rt711_sdca_jd_src {
RT711_JD_NULL, RT711_JD_NULL,
RT711_JD1, RT711_JD1,
RT711_JD2 RT711_JD2,
RT711_JD2_100K
}; };
enum rt711_sdca_ver { enum rt711_sdca_ver {
......
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