On 05/28/2015 02:36 PM, Enric Balletbo Serra wrote:
Dear all,
Recently I sent some patches to add support for a new board based on AM335x processor [1]. The board has the TLV320AIC3106 audio codec, the MCLK signal is provided by an external oscillator of 12MHz. The problem is that when I play a wav file for example I heard the song a double speed. This is with v4.0 and current mainline.
In dts file I defined "ti,codec-clock-rate = <12000000>;" which is the correct value. Curiously when I changed the clock rate value to 24000000 I heard the song at normal speed. AFAIK the correct value for clock-rate is 12MHz so I suspect that something is wrong in the driver, maybe it sets a wrong clock divider/multiplier ? Anyone can point me in the right direction to fix the issue ? I see that am335x-evm and am335x-pepper boards also uses this audio codec, did anyone with those boards have the same problem?
It might be really 24MHz. If the MCLK in your board is wired like am335x-evmsk or how BeagleBone's audio capes are wired (MCLK is coming from AM335x's EVENT_INTR0/1 pin as CLKOUT1/2) then 24MHz is correct. On the am335x-evm there is a dedicated crystal providing the 12MHz.
[1] https://patchwork.kernel.org/patch/6480071/
Thanks in advance, Enric