ASoC: rt5682: fix the random recording noise of headset
authorShuming Fan <shumingf@realtek.com>
Tue, 17 Mar 2020 07:33:08 +0000 (15:33 +0800)
committerMark Brown <broonie@kernel.org>
Wed, 18 Mar 2020 17:22:47 +0000 (17:22 +0000)
The cycle time of FIFO clock should increase 2 times to avoid
the random recording noise issue.
This setting could apply to all known situations in i2s mode.

Signed-off-by: Shuming Fan <shumingf@realtek.com>
Link: https://lore.kernel.org/r/20200317073308.11572-1-shumingf@realtek.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/codecs/rt5682.c
sound/soc/codecs/rt5682.h

index 063dd338539d58a3f9c91d11d0eeb9716b6bbfcf..3e0b5c43ece8ce6bd9509f160bacf30bb1538449 100644 (file)
@@ -2651,6 +2651,8 @@ static int rt5682_i2c_probe(struct i2c_client *i2c,
                        RT5682_CP_CLK_HP_MASK, RT5682_CP_CLK_HP_300KHZ);
        regmap_update_bits(rt5682->regmap, RT5682_HP_CHARGE_PUMP_1,
                        RT5682_PM_HP_MASK, RT5682_PM_HP_HV);
+       regmap_update_bits(rt5682->regmap, RT5682_DMIC_CTRL_1,
+                       RT5682_FIFO_CLK_DIV_MASK, RT5682_FIFO_CLK_DIV_2);
 
        INIT_DELAYED_WORK(&rt5682->jack_detect_work,
                                rt5682_jack_detect_handler);
index 18faaa2a49a0ce398960427e4c9bd65ab160c6e4..fc99e748428341b9ec19ad0ed97e81737bdfb6a4 100644 (file)
 #define RT5682_DMIC_1_EN_SFT                   15
 #define RT5682_DMIC_1_DIS                      (0x0 << 15)
 #define RT5682_DMIC_1_EN                       (0x1 << 15)
+#define RT5682_FIFO_CLK_DIV_MASK               (0x7 << 12)
+#define RT5682_FIFO_CLK_DIV_2                  (0x1 << 12)
 #define RT5682_DMIC_1_DP_MASK                  (0x3 << 4)
 #define RT5682_DMIC_1_DP_SFT                   4
 #define RT5682_DMIC_1_DP_GPIO2                 (0x0 << 4)