Thanks for the answer Peter,
2015-05-29 9:20 GMT+02:00 Peter Ujfalusi peter.ujfalusi@ti.com:
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.
Well, in my board there is also a dedicated crystal providing the 12MHz, so I expect that the correct value for clock-frequency is 12MHz not 24MHz.
clocks { compatible = "simple-bus"; #address-cells = <1>; #size-cells = <0>;
/* audio external oscillator */ tlv320aic3x_mclk: oscillator@0 { compatible = "fixed-clock"; #clock-cells = <0>; clock-frequency = <12000000>; /* 12MHz */ }; };
sound { compatible = "ti,da830-evm-audio"; ti,model = "AM335x-SL50"; ti,audio-codec = <&audio_codec>; ti,mcasp-controller = <&mcasp0>;
clocks = <&tlv320aic3x_mclk>; clock-names = "mclk";
ti,audio-routing = "Headphone Jack", "HPLOUT", "Headphone Jack", "HPROUT", "LINE1R", "Line In", "LINE1L", "Line In"; };
For me it's really odd have to set the clock-frequency to 24MHz to make it work
clock-frequency = <24000000>;
For that reason I'm wondering if there is a bug in the driver, did anyone test with an am335x-evm board ?
[1] https://patchwork.kernel.org/patch/6480071/
Thanks in advance, Enric
-- Péter
Thanks, Enric