ASoC: codecs: rv1106_codec: fix and optimize ADC enabling VREF

Signed-off-by: Xing Zheng <zhengxing@rock-chips.com>
Change-Id: Ieb34e125972faef68f0bef23c4819aeaf6127ee7
This commit is contained in:
Xing Zheng
2022-09-20 21:30:20 +08:00
committed by Tao Huang
parent 5999dafd2b
commit 5ebe93e6bf
2 changed files with 9 additions and 14 deletions

View File

@@ -1370,13 +1370,6 @@ static int rv1106_codec_adc_enable(struct rv1106_codec_priv *rv1106)
R(lr, ACODEC_ADC_R_SINGLE_END));
}
regmap_update_bits(rv1106->regmap,
ACODEC_ADC_ANA_CTL3,
L(lr, ACODEC_MIC_L_MSK) |
R(lr, ACODEC_MIC_R_MSK),
L(lr, ACODEC_MIC_L_EN) |
R(lr, ACODEC_MIC_R_EN));
/* vendor step 2 */
regmap_update_bits(rv1106->regmap, ACODEC_ADC_ANA_CTL1,
L(lr, ACODEC_ADC_L_MIC_MSK) |
@@ -1386,8 +1379,8 @@ static int rv1106_codec_adc_enable(struct rv1106_codec_priv *rv1106)
/* vendor step 3 */
regmap_update_bits(rv1106->regmap, ACODEC_ADC_ANA_CTL0,
ACODEC_ADC_CUR_SRC_MSK,
ACODEC_ADC_CUR_SRC_EN);
ACODEC_ADC_IBIAS_MSK,
ACODEC_ADC_IBIAS_EN);
/* vendor step 4*/
regmap_update_bits(rv1106->regmap, ACODEC_ADC_ANA_CTL1,
@@ -1395,6 +1388,8 @@ static int rv1106_codec_adc_enable(struct rv1106_codec_priv *rv1106)
R(lr, ACODEC_ADC_R_REF_VOL_BUF_MSK),
L(lr, ACODEC_ADC_L_REF_VOL_BUF_EN) |
R(lr, ACODEC_ADC_R_REF_VOL_BUF_EN));
/* waiting VREF be stable */
msleep(100);
/* vendor step 5 */
regmap_update_bits(rv1106->regmap, ACODEC_ADC_ANA_CTL3,
@@ -1511,8 +1506,8 @@ static int rv1106_codec_adc_disable(struct rv1106_codec_priv *rv1106)
/* vendor step 7 */
regmap_update_bits(rv1106->regmap, ACODEC_ADC_ANA_CTL0,
ACODEC_ADC_CUR_SRC_MSK,
ACODEC_ADC_CUR_SRC_DIS);
ACODEC_ADC_IBIAS_MSK,
ACODEC_ADC_IBIAS_DIS);
/* vendor step 8 */
regmap_update_bits(rv1106->regmap, ACODEC_ADC_ANA_CTL6,

View File

@@ -265,9 +265,9 @@
#define ACODEC_ADC_REF_VOL_MSK (0x1 << 5)
#define ACODEC_ADC_REF_VOL_EN (0x1 << 5)
#define ACODEC_ADC_REF_VOL_DIS (0x0 << 5)
#define ACODEC_ADC_CUR_SRC_MSK (0x1 << 4)
#define ACODEC_ADC_CUR_SRC_EN (0x1 << 4)
#define ACODEC_ADC_CUR_SRC_DIS (0x0 << 4)
#define ACODEC_ADC_IBIAS_MSK (0x1 << 4)
#define ACODEC_ADC_IBIAS_EN (0x1 << 4)
#define ACODEC_ADC_IBIAS_DIS (0x0 << 4)
#define ACODEC_MICBIAS_SFT 3
#define ACODEC_MICBIAS_MSK (0x1 << 3)
#define ACODEC_MICBIAS_WORK (0x1 << 3)