Re: [PATCH] sound: soc: fsl: Do not set DAI sysclk when it is equal to system freq

From: Åukasz Majewski
Date: Thu Sep 07 2017 - 19:10:22 EST


Hi Nicolin,

On Wed, Sep 06, 2017 at 08:35:50PM +0200, Åukasz Majewski wrote:
clocks = <&clks IMX6QDL_CLK_SSI2_IPG>,
<&clks IMX6QDL_CLK_SSI2>;
clock-names = "ipg", "baud";

dailink_master: cpu {
sound-dai = <&ssi2>;
clock = <&SSSS>;

If possible I do prefer a solution, which uses only DTS.
Side question - how to refer to baud clock from [1]?

Just add a property to this cpu node like:
clock = <&clks IMX6QDL_CLK_SSI2>;

This doesn't solve the issue:

root@display5:~# speaker-test

speaker-test 1.1.3

Playback device is default
Stream parameters are 48000Hz, S16_LE, 1 channels
Using 16 octaves of pink noise
Rate set to 48000Hz (requested 48fsl-ssi-dai 202c000.ssi: bitclk > ipgclk/5
000Hz)
Buffer size range from 64fsl-ssi-dai 202c000.ssi: ASoC: can't set 202c000.ssi hw params: -22
to 65536
Period size range from 32 to 8191
Using max buffer size 65536
Periods = 4
Unable to set hw params for playback: Invalid argument
Setting of hwparams failed: Invalid argument



system-clock-frequency = <XXXX>;

This would not be necessary unless you want to specify a clock rate
so as to override the clock rate configuration in hw_params().

This is the right solution based on current simple-card driver. For
SSI (having two clocks), you have to specify the baud clock in the
cpu node like that. I believe this is what the simple-card designer
expected users to do since the cpu node is the first place that the
driver tries to look at.

I will give a shoot the option with adding the ipg clock.

No, not ipg clock. You should use the second clock -- baud clock.



--
Best regards,

Lukasz Majewski

--

DENX Software Engineering GmbH, Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd@xxxxxxx