[PATCH v1] arm64: dts: k3-am625-verdin: enable nau8822 pll

Andrejs Cainikovs posted 1 patch 1 year, 9 months ago
arch/arm64/boot/dts/ti/k3-am62-verdin-dev.dtsi | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
[PATCH v1] arm64: dts: k3-am625-verdin: enable nau8822 pll
Posted by Andrejs Cainikovs 1 year, 9 months ago
From: Andrejs Cainikovs <andrejs.cainikovs@toradex.com>

In current configuration, nau8822 codec on development carrier board
provides distorted audio output. This happens due to reference clock
is fixed to 25MHz and no PLL is enabled. Following is the calculation
of deviation error for different frequencies:

44100Hz:

fs = 256 (fixed)
prescaler = 2
target frequency = 44100 * 256 * 2 = 22579200
deviation = 22579200 vs 25000000 = 9.6832%

48000Hz:

fs = 256 (fixed)
prescaler = 2
target frequency = 48000 * 256 * 2 = 24576000
deviation = 24576000 vs 25000000 = 1.696%

Enabling nau822 PLL 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 PLL on nau8822 by providing mclk-fs, and moves
away audio reference clock from DAI configuration, which prevents
simple-audio-card to adjust it before every playback [3].

[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

Signed-off-by: Andrejs Cainikovs <andrejs.cainikovs@toradex.com>
---
This patch requires https://lore.kernel.org/all/20240409121719.337709-1-andrejs.cainikovs@gmail.com/ to be applied,
if not the audio will just stop working because no code will ever enable the required clock to the codec.
---
 arch/arm64/boot/dts/ti/k3-am62-verdin-dev.dtsi | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/arch/arm64/boot/dts/ti/k3-am62-verdin-dev.dtsi b/arch/arm64/boot/dts/ti/k3-am62-verdin-dev.dtsi
index 74eec1a1abca..5c1284b802ad 100644
--- a/arch/arm64/boot/dts/ti/k3-am62-verdin-dev.dtsi
+++ b/arch/arm64/boot/dts/ti/k3-am62-verdin-dev.dtsi
@@ -14,6 +14,7 @@ sound {
 		simple-audio-card,bitclock-master = <&codec_dai>;
 		simple-audio-card,format = "i2s";
 		simple-audio-card,frame-master = <&codec_dai>;
+		simple-audio-card,mclk-fs = <256>;
 		simple-audio-card,name = "verdin-nau8822";
 		simple-audio-card,routing =
 			"Headphones", "LHP",
@@ -34,7 +35,6 @@ sound {
 			"Line", "Line In";
 
 		codec_dai: simple-audio-card,codec {
-			clocks = <&audio_refclk1>;
 			sound-dai = <&nau8822_1a>;
 		};
 
@@ -107,6 +107,8 @@ nau8822_1a: audio-codec@1a {
 		reg = <0x1a>;
 		pinctrl-names = "default";
 		pinctrl-0 = <&pinctrl_i2s1_mclk>;
+		clock-names = "mclk";
+		clocks = <&audio_refclk1>;
 		#sound-dai-cells = <0>;
 	};
 
-- 
2.34.1
Re: [PATCH v1] arm64: dts: k3-am625-verdin: enable nau8822 pll
Posted by Vignesh Raghavendra 1 year, 7 months ago
Hi Andrejs Cainikovs,

On Thu, 18 Apr 2024 12:57:30 +0200, Andrejs Cainikovs wrote:
> In current configuration, nau8822 codec on development carrier board
> provides distorted audio output. This happens due to reference clock
> is fixed to 25MHz and no PLL is enabled. Following is the calculation
> of deviation error for different frequencies:
> 
> 44100Hz:
> 
> [...]

I have applied the following to branch ti-k3-dts-next on [1].
Thank you!

[1/1] arm64: dts: k3-am625-verdin: enable nau8822 pll
      commit: feebfe95a6654e991befca7dee45788979fd7f72

All being well this means that it will be integrated into the linux-next
tree (usually sometime in the next 24 hours) and sent up the chain during
the next merge window (or sooner if it is a relevant bug fix), however if
problems are discovered then the patch may be dropped or reverted.

You may get further e-mails resulting from automated or manual testing
and review of the tree, please engage with people reporting problems and
send followup patches addressing any issues that are reported if needed.

If any updates are required or you are submitting further changes they
should be sent as incremental updates against current git, existing
patches will not be replaced.

Please add any relevant lists and maintainers to the CCs when replying
to this mail.

[1] https://git.kernel.org/pub/scm/linux/kernel/git/ti/linux.git
--
Vignesh
Re: [PATCH v1] arm64: dts: k3-am625-verdin: enable nau8822 pll
Posted by Nishanth Menon 1 year, 9 months ago
On 12:57-20240418, Andrejs Cainikovs wrote:
[...]

> Signed-off-by: Andrejs Cainikovs <andrejs.cainikovs@toradex.com>
> ---
> This patch requires https://lore.kernel.org/all/20240409121719.337709-1-andrejs.cainikovs@gmail.com/ to be applied,
> if not the audio will just stop working because no code will ever enable the required clock to the codec.

Thanks. lets wait for the dependency patch to be merged to master, and
once done, please resubmit this patch. I am going to guess for the next
cycle.
-- 
Regards,
Nishanth Menon
Key (0xDDB5849D1736249D) / Fingerprint: F8A2 8693 54EB 8232 17A3  1A34 DDB5 849D 1736 249D
Re: [PATCH v1] arm64: dts: k3-am625-verdin: enable nau8822 pll
Posted by Francesco Dolcini 1 year, 7 months ago
Hello Nishanth, Vignesh,

On Thu, Apr 25, 2024 at 08:56:10AM -0500, Nishanth Menon wrote:
> On 12:57-20240418, Andrejs Cainikovs wrote:
> [...]
> 
> > Signed-off-by: Andrejs Cainikovs <andrejs.cainikovs@toradex.com>

Reviewed-by: Francesco Dolcini <francesco.dolcini@toradex.com>

> > ---
> > This patch requires https://lore.kernel.org/all/20240409121719.337709-1-andrejs.cainikovs@gmail.com/ to be applied,
> > if not the audio will just stop working because no code will ever enable the required clock to the codec.
> 
> Thanks. lets wait for the dependency patch to be merged to master, and
> once done, please resubmit this patch. I am going to guess for the next
> cycle.

Would you mind picking up this patch? The dependency is now merged and
this should apply cleanly. I can also resend if needed, just let me
know.

Francesco
Re: [PATCH v1] arm64: dts: k3-am625-verdin: enable nau8822 pll
Posted by Vignesh Raghavendra 1 year, 7 months ago

On 25/06/24 22:28, Francesco Dolcini wrote:
> Hello Nishanth, Vignesh,
> 
> On Thu, Apr 25, 2024 at 08:56:10AM -0500, Nishanth Menon wrote:
>> On 12:57-20240418, Andrejs Cainikovs wrote:
>> [...]
>>
>>> Signed-off-by: Andrejs Cainikovs <andrejs.cainikovs@toradex.com>
> 
> Reviewed-by: Francesco Dolcini <francesco.dolcini@toradex.com>
> 
>>> ---
>>> This patch requires https://lore.kernel.org/all/20240409121719.337709-1-andrejs.cainikovs@gmail.com/ to be applied,
>>> if not the audio will just stop working because no code will ever enable the required clock to the codec.
>>
>> Thanks. lets wait for the dependency patch to be merged to master, and
>> once done, please resubmit this patch. I am going to guess for the next
>> cycle.
> 
> Would you mind picking up this patch? The dependency is now merged and
> this should apply cleanly. I can also resend if needed, just let me
> know.
> 
> Francesco
> 
> 

Sure, added to my review queue. Thanks!

-- 
Regards
Vignesh