From: Charles Keepax <ckeepax@opensource.cirrus.com>
To: Andrejs Cainikovs <andrejs.cainikovs@gmail.com>
Cc: Jai Luthra <j-luthra@ti.com>,
Francesco Dolcini <francesco.dolcini@toradex.com>,
Nishanth Menon <nm@ti.com>,
<linux-arm-kernel@lists.infradead.org>,
<devicetree@vger.kernel.org>, <linux-kernel@vger.kernel.org>,
Vignesh Raghavendra <vigneshr@ti.com>,
Tero Kristo <kristo@kernel.org>, Rob Herring <robh+dt@kernel.org>,
Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>,
Conor Dooley <conor+dt@kernel.org>,
Andrejs Cainikovs <andrejs.cainikovs@toradex.com>
Subject: Re: [PATCH v1] arm64: dts: ti: verdin-am62: dahlia: fix audio clock
Date: Fri, 15 Mar 2024 14:25:17 +0000 [thread overview]
Message-ID: <ZfRaTcDSSy+5zqeb@ediswmail9.ad.cirrus.com> (raw)
In-Reply-To: <20240315102500.18492-1-andrejs.cainikovs@gmail.com>
On Fri, Mar 15, 2024 at 11:25:00AM +0100, Andrejs Cainikovs wrote:
> From: Andrejs Cainikovs <andrejs.cainikovs@toradex.com>
>
> In current configuration, wm8904 codec on Dahlia carrier board provides
> distorted audio output. This happens due to reference clock is fixed to
> 25MHz and no FLL is enabled. During playback following parameters are set:
>
> 44100Hz:
>
> [ 310.276924] wm8904 1-001a: Target BCLK is 1411200Hz
> [ 310.276990] wm8904 1-001a: Using 25000000Hz MCLK
> [ 310.277001] wm8904 1-001a: CLK_SYS is 12500000Hz
> [ 310.277018] wm8904 1-001a: Selected CLK_SYS_RATIO of 256
> [ 310.277026] wm8904 1-001a: Selected SAMPLE_RATE of 44100Hz
> [ 310.277034] wm8904 1-001a: Selected BCLK_DIV of 80 for 1562500Hz BCLK
> [ 310.277044] wm8904 1-001a: LRCLK_RATE is 35
>
> Deviation = 1411200 vs 1562500 = 10.721%
> Also, LRCLK_RATE is 35, should be 32.
>
> 48000Hz:
>
> [ 302.449970] wm8904 1-001a: Target BCLK is 1536000Hz
> [ 302.450037] wm8904 1-001a: Using 25000000Hz MCLK
> [ 302.450049] wm8904 1-001a: CLK_SYS is 12500000Hz
> [ 302.450065] wm8904 1-001a: Selected CLK_SYS_RATIO of 256
> [ 302.450074] wm8904 1-001a: Selected SAMPLE_RATE of 48000Hz
> [ 302.450083] wm8904 1-001a: Selected BCLK_DIV of 80 for 1562500Hz BCLK
> [ 302.450092] wm8904 1-001a: LRCLK_RATE is 32
>
> Deviation = 1536000 vs 1562500 = 1.725%
>
> Enabling wm8904 FLL via providing mclk-fs property to simple-audio-card
> configures clocks properly, but also adjusts audio reference clock
> (mclk), which in case of TI AM62 should be avoided, as it only
> supports 25MHz output [1][2].
>
> This change enables FLL on wm8904 by providing mclk-fs, and drops
> audio reference clock out of DAI configuration, which prevents
> simple-audio-card to adjust it before every playback [3].
>
> 41000Hz:
>
> [ 111.820533] wm8904 1-001a: FLL configured for 25000000Hz->11289600Hz
> [ 111.820597] wm8904 1-001a: Clock source is 0 at 11289600Hz
> [ 111.820651] wm8904 1-001a: Using 11289600Hz FLL clock
> [ 111.820703] wm8904 1-001a: CLK_SYS is 11289600Hz
> [ 111.820798] wm8904 1-001a: Target BCLK is 1411200Hz
> [ 111.820847] wm8904 1-001a: Using 11289600Hz FLL clock
> [ 111.820894] wm8904 1-001a: CLK_SYS is 11289600Hz
> [ 111.820933] wm8904 1-001a: Selected CLK_SYS_RATIO of 256
> [ 111.820971] wm8904 1-001a: Selected SAMPLE_RATE of 44100Hz
> [ 111.821009] wm8904 1-001a: Selected BCLK_DIV of 80 for 1411200Hz BCLK
> [ 111.821051] wm8904 1-001a: LRCLK_RATE is 32
>
> 48000Hz:
>
> [ 144.119254] wm8904 1-001a: FLL configured for 25000000Hz->12288000Hz
> [ 144.119309] wm8904 1-001a: Clock source is 0 at 12288000Hz
> [ 144.119364] wm8904 1-001a: Using 12288000Hz FLL clock
> [ 144.119413] wm8904 1-001a: CLK_SYS is 12288000Hz
> [ 144.119512] wm8904 1-001a: Target BCLK is 1536000Hz
> [ 144.119561] wm8904 1-001a: Using 12288000Hz FLL clock
> [ 144.119608] wm8904 1-001a: CLK_SYS is 12288000Hz
> [ 144.119646] wm8904 1-001a: Selected CLK_SYS_RATIO of 256
> [ 144.119685] wm8904 1-001a: Selected SAMPLE_RATE of 48000Hz
> [ 144.119723] wm8904 1-001a: Selected BCLK_DIV of 80 for 1536000Hz BCLK
> [ 144.119764] wm8904 1-001a: LRCLK_RATE is 32
>
> [1]: https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1175479/processor-sdk-am62x-output-audio_ext_refclk0-as-mclk-for-codec-and-mcbsp/4444986#4444986
> [2]: https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1188051/am625-audio_ext_refclk1-clock-output---dts-support/4476322#4476322
> [3]: sound/soc/generic/simple-card-utils.c#L441
>
> Fixes: f5bf894c865b ("arm64: dts: ti: verdin-am62: dahlia: add sound card")
> Suggested-by: Charles Keepax <ckeepax@opensource.cirrus.com>
> Signed-off-by: Andrejs Cainikovs <andrejs.cainikovs@toradex.com>
> ---
Reviewed-by: Charles Keepax <ckeepax@opensource.cirrus.com>
Thanks,
Charles
next prev parent reply other threads:[~2024-03-15 14:25 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-03-15 10:25 [PATCH v1] arm64: dts: ti: verdin-am62: dahlia: fix audio clock Andrejs Cainikovs
2024-03-15 14:25 ` Charles Keepax [this message]
2024-03-15 15:33 ` Francesco Dolcini
2024-04-09 19:24 ` Nishanth Menon
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=ZfRaTcDSSy+5zqeb@ediswmail9.ad.cirrus.com \
--to=ckeepax@opensource.cirrus.com \
--cc=andrejs.cainikovs@gmail.com \
--cc=andrejs.cainikovs@toradex.com \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=francesco.dolcini@toradex.com \
--cc=j-luthra@ti.com \
--cc=kristo@kernel.org \
--cc=krzysztof.kozlowski+dt@linaro.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=nm@ti.com \
--cc=robh+dt@kernel.org \
--cc=vigneshr@ti.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox