arm64: dts: rockchip: use codec as clock master on px30-ringneck-haikou
authorErmin Sunj <ermin.sunj@theobroma-systems.com>
Thu, 7 Sep 2023 15:17:15 +0000 (17:17 +0200)
committerHeiko Stuebner <heiko@sntech.de>
Wed, 4 Oct 2023 21:14:45 +0000 (23:14 +0200)
If the codec is not the clock master, the MCLK needs to be
synchronous to both I2S_SCL ans I2S_LRCLK. We do not have that
on Haikou, causing distorted audio.

Before:

 Running an audio test script on Ringneck, 1kHz
 output sine wave is not stable and shows distortion.

After:

 10h audio test script loop failed only one time.
 That is 0.00014% failure rate.

Cc: stable@vger.kernel.org
Fixes: c484cf93f61b ("arm64: dts: rockchip: add PX30-µQ7 (Ringneck) SoM with Haikou baseboard")
Signed-off-by: Ermin Sunj <ermin.sunj@theobroma-systems.com>
Signed-off-by: Jakob Unterwurzacher <jakob.unterwurzacher@theobroma-systems.com>
Link: https://lore.kernel.org/r/20230907151725.198347-1-jakob.unterwurzacher@theobroma-systems.com
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
arch/arm64/boot/dts/rockchip/px30-ringneck-haikou.dts

index 08a3ad3..8792fae 100644 (file)
                simple-audio-card,format = "i2s";
                simple-audio-card,name = "Haikou,I2S-codec";
                simple-audio-card,mclk-fs = <512>;
+               simple-audio-card,frame-master = <&sgtl5000_codec>;
+               simple-audio-card,bitclock-master = <&sgtl5000_codec>;
 
-               simple-audio-card,codec {
+               sgtl5000_codec: simple-audio-card,codec {
                        clocks = <&sgtl5000_clk>;
                        sound-dai = <&sgtl5000>;
                };
 
                simple-audio-card,cpu {
-                       bitclock-master;
-                       frame-master;
                        sound-dai = <&i2s0_8ch>;
                };
        };