Hi
I have used tlv320dac3100 DAC with AM3351 processor. I am facing issue regarding pop-up sound before and after playing audio file.
For playing audio, I have used "aplay audio1.wav" command.
Below are the configuration that I have done in tlv320aic31xx.c file.
static int aic31xx_setup_pll(struct snd_soc_codec *codec,
struct snd_pcm_hw_params *params)
{
----
----
snd_soc_write(codec, AIC31XX_DACPRB, 0x05);
snd_soc_write(codec, AIC31XX_HPPOP, 0x4E);
snd_soc_write(codec, AIC31XX_LANALOGHPL, 0x00);
snd_soc_write(codec, AIC31XX_HPDRIVER, 0x04);
snd_soc_write(codec, AIC31XX_HPLGAIN, 0x06);
snd_soc_write(codec, AIC31XX_DACMIXERROUTE, 0x40);
snd_soc_write(codec, AIC31XX_LDACVOL, 0x81);
snd_soc_write(codec, AIC31XX_HPDRIVER, 0x14);
snd_soc_write(codec, AIC31XX_SPPGARAMP, 0x70);
snd_soc_write(codec, AIC31XX_LANALOGSPL, 0x98);
snd_soc_write(codec, AIC31XX_SPLGAIN, 0x1C);
snd_soc_write(codec, AIC31XX_DACSETUP, 0x96);
snd_soc_write(codec, AIC31XX_DACMUTE, 0x04);
snd_soc_write(codec, AIC31XX_SPKAMP, 0x86);
}
After playing audio file, I also observed the static noise for 2-3 sec (until class-D Amp off). In solution of that I have done below changes in tlv320aic31xx.c file
static int aic31xx_dac_mute(struct snd_soc_dai *codec_dai, int mute)
{
struct snd_soc_codec *codec = codec_dai->codec;
if (mute) {
snd_soc_write(codec, AIC31XX_LDACVOL, 0x81);
snd_soc_update_bits(codec, AIC31XX_DACMUTE,
AIC31XX_DACMUTE_MASK,
AIC31XX_DACMUTE_MASK);
snd_soc_write(codec, AIC31XX_SPKAMP, 0x06);
} else {
snd_soc_update_bits(codec, AIC31XX_DACMUTE,
AIC31XX_DACMUTE_MASK, 0x0);
}
return 0;
}
The changes I have done for resolving the issue of static noise, is it correct ?
But still I am getting pop-up noise. The pop-up noise is related to static noise ? or due to class-D amplifile on/off ? because every time when the value of P1/R32 change from 0x06 to 0x86 or vice versa, it gives like pop-up sound.
I am using 24db (max) gain for class-D amplifier (P1/R42).
Please give some suggestions to remove pop-up/static noise??
Thanks,
Ankit