Skip to contentSkip to conversation

ARM: dts: am335x-sl50: Fix audio bitclock and frame master endpoint

PATCH Applied Jihed Chaibi 2 participants 2 messages Mar 25 – May 1

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 ARM: dts: am335x-sl50: Fix audio bitclock and frame master endpoint

The cpu_endpoint in mcasp0 specifies the TLV320AIC3106 codec as the bitclock and frame master, but the phandles point to the codec's port node (codec_port) rather than its endpoint node (codec_endpoint).

audio-graph-card calls simple_util_parse_daifmt() with ep_codec set to the endpoint node (codec_endpoint). The function resolves the bitclock-master phandle and checks whether it equals ep_codec. Since codec_port is the parent of codec_endpoint, not the endpoint itself, the comparison always evaluates to false. This causes the mcasp0 CPU side to be silently configured as bitclock and frame master instead of the codec, which is the opposite of the intended configuration.

Fix by pointing bitclock-master and frame-master to codec_endpoint.

Fixes e5f89dbdebc5 ("ARM: dts: am335x-sl50: use audio-graph-card for sound")
---
 arch/arm/boot/dts/ti/omap/am335x-sl50.dts | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
arch/arm/boot/dts/ti/omap/am335x-sl50.dts +2 -2
index 1dc4e344efd6..b3a7f2c91d4e 100644
@@ -558,8 +558,8 @@ cpu_endpoint: endpoint {
 			remote-endpoint = <&codec_endpoint>;
 
 			dai-format = "dsp_b";
-			bitclock-master = <&codec_port>;
-			frame-master = <&codec_port>;
+			bitclock-master = <&codec_endpoint>;
+			frame-master = <&codec_endpoint>;
 			bitclock-inversion;
 			clocks = <&audio_mclk>;
 		};

--
2.47.3

maintainer Applied
#1 lore raw
Quoted 12 lines · Jihed Chaibi

The cpu_endpoint in mcasp0 specifies the TLV320AIC3106 codec as the bitclock and frame master, but the phandles point to the codec's port node (codec_port) rather than its endpoint node (codec_endpoint).

audio-graph-card calls simple_util_parse_daifmt() with ep_codec set to the endpoint node (codec_endpoint). The function resolves the bitclock-master phandle and checks whether it equals ep_codec. Since codec_port is the parent of codec_endpoint, not the endpoint itself, the comparison always evaluates to false. This causes the mcasp0 CPU side to be silently configured as bitclock and frame master instead of the codec, which is the opposite of the intended configuration.

Quoted 1 line

[...]

Applied, thanks!

[1/1] ARM: dts: am335x-sl50: Fix audio bitclock and frame master endpoint

      commit: 2bc564f46b00dc4f4331fc337277ff3f5fac8a4e

Best regards,

Signature · 1 line
Kevin Hilman (TI) <[email protected]>