Commit 730e051c authored by Shuming Fan's avatar Shuming Fan Committed by Mark Brown

ASoC: rt1308: add silence detection and manual PDB control

We enable the silence detection function in initial settings.
PDB control changes to manual mode, hence the driver could
fully control the AMP output on/off.
Signed-off-by: default avatarShuming Fan <shumingf@realtek.com>
Link: https://lore.kernel.org/r/20190719063249.18806-1-shumingf@realtek.comSigned-off-by: default avatarMark Brown <broonie@kernel.org>
parent 980c10cd
...@@ -40,10 +40,10 @@ static const struct reg_sequence init_list[] = { ...@@ -40,10 +40,10 @@ static const struct reg_sequence init_list[] = {
{ RT1308_VREF, 0x18100000 }, { RT1308_VREF, 0x18100000 },
{ RT1308_IV_SENSE, 0x87010000 }, { RT1308_IV_SENSE, 0x87010000 },
{ RT1308_DUMMY_REG, 0x00000200 }, { RT1308_DUMMY_REG, 0x00000200 },
{ RT1308_SIL_DET, 0x61c30000 }, { RT1308_SIL_DET, 0xe1c30000 },
{ RT1308_DC_CAL_2, 0x00ffff00 }, { RT1308_DC_CAL_2, 0x00ffff00 },
{ RT1308_CLK_DET, 0x01000000 }, { RT1308_CLK_DET, 0x01000000 },
{ RT1308_POWER_STATUS, 0x00800000 }, { RT1308_POWER_STATUS, 0x08800000 },
{ RT1308_DAC_SET, 0xafaf0700 }, { RT1308_DAC_SET, 0xafaf0700 },
}; };
...@@ -308,12 +308,13 @@ static int rt1308_classd_event(struct snd_soc_dapm_widget *w, ...@@ -308,12 +308,13 @@ static int rt1308_classd_event(struct snd_soc_dapm_widget *w,
case SND_SOC_DAPM_POST_PMU: case SND_SOC_DAPM_POST_PMU:
msleep(30); msleep(30);
snd_soc_component_update_bits(component, RT1308_POWER_STATUS, snd_soc_component_update_bits(component, RT1308_POWER_STATUS,
RT1308_POW_PDB_REG_BIT, RT1308_POW_PDB_REG_BIT); RT1308_POW_PDB_REG_BIT | RT1308_POW_PDB_MN_BIT,
RT1308_POW_PDB_REG_BIT | RT1308_POW_PDB_MN_BIT);
msleep(40); msleep(40);
break; break;
case SND_SOC_DAPM_PRE_PMD: case SND_SOC_DAPM_PRE_PMD:
snd_soc_component_update_bits(component, RT1308_POWER_STATUS, snd_soc_component_update_bits(component, RT1308_POWER_STATUS,
RT1308_POW_PDB_REG_BIT, 0); RT1308_POW_PDB_REG_BIT | RT1308_POW_PDB_MN_BIT, 0);
usleep_range(150000, 200000); usleep_range(150000, 200000);
break; break;
......
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