imx8mm fsl_sai clock config failing
Tim Harvey
tharvey at gateworks.com
Tue May 19 22:24:14 CEST 2020
On Mon, May 18, 2020 at 7:48 AM Daniel Baluta <daniel.baluta at nxp.com> wrote:
>
> Hi Tim,
>
> <snip>
>
Daniel,
Thanks for the reply!
>
> >> I'm trying to get imx8mm sai working with a tlv320aic3x codec on a new board
> >> and am finding that the sai3 bus clock is getting derived from the wrong source
> >> leading hw_params() to fail with 'fsl-sai
> >> 30030000.sai: failed to derive required Tx rate: 3072000'
> >>
> >> In comparison to the imx8mm-evk I find it's clock gets configured as desired yet
> >> I have the same device-tree configuration for sai3.
>
> It is strange that setting sai3 works with wolfson codec but not yours.
>
> It should either work for both or for none.
Well... it doesn't 'work' for the imx8mm-evk wm8524-audio as it hangs
during playback (see below) yet it does get past negotiating the sai
master clock.
>
> Anyhow, can you please try to create a more specific clock hierarchy
>
> similar with the on for 8mq (see imx8mq-evk.dts).
>
>
> &sai2 {
> » pinctrl-names = "default";
> » pinctrl-0 = <&pinctrl_sai2>;
> » assigned-clocks = <&clk IMX8MQ_AUDIO_PLL1_BYPASS>, <&clk
> IMX8MQ_CLK_SAI2>;
> » assigned-clock-parents = <&clk IMX8MQ_AUDIO_PLL1>, <&clk
> IMX8MQ_AUDIO_PLL1_OUT>;
> » assigned-clock-rates = <0>, <24576000>;
> » status = "okay";
> };
> Note that even though the imx8mm-evk appears to configure its clock
> correctly I
>
> >> still have not been able to play audio out the wm8524 and the system appears
> >> to hang during playback as if BCLK/MCLK were not clocking.
> >>
> >> Perhaps there is something not supported yet upstream with regards to
> >> IMX8MM SAI?
> >>
> >
>
> I remember that wm8524 worked for me both with imx8mm/imx8mq. Can you sync
>
> at commit
>
>
> commit 13f3b9fdef6c7d9ad069ae617707e5a10a685074
> Author: Daniel Baluta <daniel.baluta at nxp.com>
> Date: Tue Jun 4 20:32:57 2019 +0800
>
> and give it a try.
looks like fsl-sai isn't supported yet in
13f3b9fdef6c7d9ad069ae617707e5a10a685074... used
a860fac420971c5a90d4f78959b44ead793aee4f instead which has the sai
driver but fails with:
[ 2.579234] wm8524-codec audio-codec: simple-card: set_sysclk error
[ 2.585512] asoc-simple-card sound-wm8524: ASoC: failed to init
30030000.sai-wm8524-hifi: -22
[ 2.594050] asoc-simple-card sound-wm8524: ASoC: failed to
instantiate card -22
[ 2.601467] asoc_simple_probe err:-22
[ 2.605161] asoc-simple-card: probe of sound-wm8524 failed with error -22
Can you please sync up with mainline and take a look?
>
>
> Also, what SDMA firmware are you using? That might be a problem. I don't
> remember
>
> if the default ROM firmware worked.
>
I've tried the default as well as that from
https://www.nxp.com/lgfiles/NMG/MAD/YOCTO/firmware-imx-8.0.bin which
shows as firmware 4.4:
# dmesg | grep imx-sdma
[ 2.037854] imx-sdma 302c0000.dma-controller: loaded firmware 4.4
[ 2.042705] imx-sdma 302b0000.dma-controller: loaded firmware 4.4
[ 2.049132] imx-sdma 30bd0000.dma-controller: loaded firmware 4.4
I ended up working around this on my board by making the tlv320aic3x
the master. I do recall reading someplace that using the codec as the
master is a better choice anyway as it provides better clk per
sample-rate matching... is this true? I'm not clear which option to
pick in general.
So in summary I have my imx8mm board working using codec as master but
imx8mm-evk in mainline does not work currently, at least 5.7-rc4 which
is what I tested.
Thanks,
Tim
More information about the Alsa-devel
mailing list