ASoC: codecs: rk730: do soft reset in rk730_reset

The patch fix no sound when hot rebooting because of registers value mismatch

Change-Id: I6c9b040b3cd025c4e27c391e0f539505e747aaa7
Signed-off-by: Shunhua Lan <lsh@rock-chips.com>
This commit is contained in:
Shunhua Lan
2024-10-11 10:41:11 +08:00
committed by Tao Huang
parent 427cd6dd82
commit 07dbb4735c
2 changed files with 9 additions and 0 deletions

View File

@@ -845,6 +845,12 @@ static int rk730_reset(struct snd_soc_component *component)
clk_prepare_enable(rk730->mclk);
udelay(10);
snd_soc_component_update_bits(component, RK730_DTOP_SRT,
RK730_DTOP_SRST_MASK,
RK730_DTOP_SRST_EN);
snd_soc_component_update_bits(component, RK730_DTOP_SRT,
RK730_DTOP_SRST_MASK,
RK730_DTOP_SRST_DIS);
/* WA: Initial micbias default, ADC stopped with micbias(>2.5v) */
snd_soc_component_update_bits(component, RK730_MIC_BIAS,
RK730_MIC_BIAS_VOLT_MASK,

View File

@@ -247,6 +247,9 @@
#define RK730_DTOP_DIGEN_CLKE_I2SRX_DIS 0
/* RK730_DTOP_SRT */
#define RK730_DTOP_SRST_MASK BIT(7)
#define RK730_DTOP_SRST_EN BIT(7)
#define RK730_DTOP_SRST_DIS 0
#define RK730_DTOP_DACSRT_MASK GENMASK(6, 4)
#define RK730_DTOP_DACSRT(x) ((x) << 4)
#define RK730_DTOP_ADCSRT_MASK GENMASK(2, 0)