ASoC: rt5663: Fix the wrong result of the first jack detection
In the first jack detection while booting, the result will always show as headset, even we insert the headphone. Signed-off-by: Oder Chiou <oder_chiou@realtek.com> Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
4fbd8d194f
commit
958d022e32
|
@ -1560,6 +1560,10 @@ static int rt5663_jack_detect(struct snd_soc_codec *codec, int jack_insert)
|
||||||
RT5663_IRQ_POW_SAV_MASK, RT5663_IRQ_POW_SAV_EN);
|
RT5663_IRQ_POW_SAV_MASK, RT5663_IRQ_POW_SAV_EN);
|
||||||
snd_soc_update_bits(codec, RT5663_IRQ_1,
|
snd_soc_update_bits(codec, RT5663_IRQ_1,
|
||||||
RT5663_EN_IRQ_JD1_MASK, RT5663_EN_IRQ_JD1_EN);
|
RT5663_EN_IRQ_JD1_MASK, RT5663_EN_IRQ_JD1_EN);
|
||||||
|
snd_soc_update_bits(codec, RT5663_EM_JACK_TYPE_1,
|
||||||
|
RT5663_EM_JD_MASK, RT5663_EM_JD_RST);
|
||||||
|
snd_soc_update_bits(codec, RT5663_EM_JACK_TYPE_1,
|
||||||
|
RT5663_EM_JD_MASK, RT5663_EM_JD_NOR);
|
||||||
|
|
||||||
while (true) {
|
while (true) {
|
||||||
regmap_read(rt5663->regmap, RT5663_INT_ST_2, &val);
|
regmap_read(rt5663->regmap, RT5663_INT_ST_2, &val);
|
||||||
|
|
|
@ -1029,6 +1029,10 @@
|
||||||
#define RT5663_POL_EXT_JD_SHIFT 10
|
#define RT5663_POL_EXT_JD_SHIFT 10
|
||||||
#define RT5663_POL_EXT_JD_EN (0x1 << 10)
|
#define RT5663_POL_EXT_JD_EN (0x1 << 10)
|
||||||
#define RT5663_POL_EXT_JD_DIS (0x0 << 10)
|
#define RT5663_POL_EXT_JD_DIS (0x0 << 10)
|
||||||
|
#define RT5663_EM_JD_MASK (0x1 << 7)
|
||||||
|
#define RT5663_EM_JD_SHIFT 7
|
||||||
|
#define RT5663_EM_JD_NOR (0x1 << 7)
|
||||||
|
#define RT5663_EM_JD_RST (0x0 << 7)
|
||||||
|
|
||||||
/* DACREF LDO Control (0x0112)*/
|
/* DACREF LDO Control (0x0112)*/
|
||||||
#define RT5663_PWR_LDO_DACREFL_MASK (0x1 << 9)
|
#define RT5663_PWR_LDO_DACREFL_MASK (0x1 << 9)
|
||||||
|
|
Loading…
Reference in New Issue