[alsa-devel] [PATCH v2] ASOC: wm8960: Add multiple MCLK frequency support

chen liu chen.liu.opensource at gmail.com
Fri Dec 22 11:40:04 CET 2017


2017-12-22 0:48 GMT+08:00 Charles Keepax <ckeepax at opensource.cirrus.com>:
> On Tue, Dec 19, 2017 at 02:19:48PM +0800, chen liu wrote:
>> 2017-12-18 19:55 GMT+08:00 Charles Keepax <ckeepax at opensource.cirrus.com>:
>> > On Mon, Dec 18, 2017 at 07:32:41PM +0800, chen liu wrote:
>> > > 2017-12-18 17:31 GMT+08:00 Charles Keepax <ckeepax at opensource.cirrus.com
>> > > > On Fri, Dec 15, 2017 at 09:07:15PM +0800, chen liu wrote:
>> > > > > 2017-12-15 0:19 GMT+08:00 Charles Keepax <
>> > ckeepax at opensource.cirrus.com
>> > > > > > On Wed, Dec 13, 2017 at 08:37:30PM +0800, Chen.Liu wrote:

> One thing I don't understand though is it looks like the freq_out
> returned from wm8960_configure_pll should already be taking the
> SYSCLK_DIV into account:
>
> for (j = 0; j < ARRAY_SIZE(dac_divs); ++j) {
>         sysclk = lrclk * dac_divs[j];
>         freq_out = sysclk * sysclk_divs[i];
>
> So if lrclk=44100, j=0, i=2 which I believe is the case in
> question we should get:
>
> sysclk = 44100 * 256 = 11.2896MHz
> freq_out = 11.2896MHz * 2 = 22.5792MHz
>
> So when wm8960_configure_pll returns i=2 then it should also be
> setting freq_out as 22.5792MHz. So you final call there to
> wm8960_set_pll should be:

Hi Charles,

You are right.

This problem seems to affect only the clock frequency configured in
manual mode.

Because i'm directly calling the 'snd_soc_dai_set_pll' function in the
machine driver,the driver will  prompts ''WM8960 PLL: Unsupported N"
error message.
The following code is part of how i configured the clock frequency in the
machine driver:
======================================================
+       if (params_rate(params) == 44100)
+               pll_out = 11289600;
+       else
+               pll_out = 12288000;
+
+       ret = snd_soc_dai_set_pll(codec_dai, WM8960_SYSCLK_PLL, 0,
+
data->clk_frequency, pll_out);

======================================================

On the other hand,i think if the codec support these MCLK clock frequency
in the manual,so no matter use manual mode and automatic mode to
configure the clock frequency,the driver prompt errors is very bad.

Thanks again,
Chen.


More information about the Alsa-devel mailing list