Hi!
I have two different boards : DM385 IPNC and my own DM385 board. These boards has different sound codecs - tlv320aic3104 on IPNC and tlv320aic3100 on my board(with adapted driver). On both boards audio codec is a master and MCLK for audio codec is driver from McASP AHCLKX = 27MHz.
On both boards I have the same problem - when I am trying to playback or capture sound on frequencies lower or equal to 16000Hz I have constant periodical pops in it.
The problem doesn't exists on higher freqs: 22050,32000, 44100, 48000, 96000Hz. It is appears on 8000, 11025, 16000Hz.
Let me outline: the codec is a master for Bclk and Wclk.
To fix this, I was trying to play with PLL values, thought something wrong. But it didn't help.
It seems to me that it is something going from mcasp side.
To check this I forced PLL value in codec to always drive 16000 WCLK, and on Linux side I take wav file with 16kHz data, modified frequency inside to 32000Hz(to tell the driver that it plays 32kHz) and run it in aplay. So Codec drives 16000Hz WCLK, 512000Hz BCLK -> McASP put data to play buffer, thought that it plays 32kHz.
And in this case I got clear sound! It seems that mcASP driver make different configurations for 32 and 16 kHZ and the last is wrong...
Does anyone seen this behaviour?
Thanks.