Message ID | 20230823131651.586934-1-jakob.unterwurzacher@theobroma-systems.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [v2,1/2] arm64: dts: rockchip: use codec as clock master on px30-ringneck-haikou | expand |
Hi Jakob, On 8/23/23 3:16 PM, Jakob Unterwurzacher <jakobunt@gmail.com> wrote: > From: Ermin Sunj <ermin.sunj@theobroma-systems.com> > > 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. > > Signed-off-by: Ermin Sunj <ermin.sunj@theobroma-systems.com> > Signed-off-by: Jakob Unterwurzacher <jakob.unterwurzacher@theobroma-systems.com> > --- > arch/arm64/boot/dts/rockchip/px30-ringneck-haikou.dts | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/arch/arm64/boot/dts/rockchip/px30-ringneck-haikou.dts b/arch/arm64/boot/dts/rockchip/px30-ringneck-haikou.dts > index 3a447d03e2a8..dafeef0c2dab 100644 > --- a/arch/arm64/boot/dts/rockchip/px30-ringneck-haikou.dts > +++ b/arch/arm64/boot/dts/rockchip/px30-ringneck-haikou.dts > @@ -68,8 +68,10 @@ i2s0-sound { > 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>; > }; > It isn't actually shown in the diff here but we now have two different bitclock and frame masters, specified differently, c.f.: https://gitlab.com/linux-kernel/linux/-/blob/master/arch/arm64/boot/dts/rockchip/px30-ringneck-haikou.dts?ref_type=heads#L78-L79 So I very much assume we should also delete those two lines in the simple-audio-card,cpu node? Cheers, Quentin
On 01.09.23 10:06, quentin.schulz@theobroma-systems.com wrote: > > So I very much assume we should also delete those two lines in the > simple-audio-card,cpu node? Ack, I will send v3. Thanks, Jakob
diff --git a/arch/arm64/boot/dts/rockchip/px30-ringneck-haikou.dts b/arch/arm64/boot/dts/rockchip/px30-ringneck-haikou.dts index 3a447d03e2a8..dafeef0c2dab 100644 --- a/arch/arm64/boot/dts/rockchip/px30-ringneck-haikou.dts +++ b/arch/arm64/boot/dts/rockchip/px30-ringneck-haikou.dts @@ -68,8 +68,10 @@ i2s0-sound { 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>; };