-
Notifications
You must be signed in to change notification settings - Fork 58
Open
Description
Hey everyone.
Summary
When running TDM4 on I2S3, playback works in some cases, but the frame clock (FCLK/FSYNC) at 48 kHz is not continuous. Instead of a stable 48 kHz clock, it appears in bursts (“packetized”) with brief pauses between packets. For my use case, a continuous, gap-free 48 kHz FCLK is required.
Environment
- Board: Raxda Zero 3W V1.11
- Kernel: 6.1.84.-12-rk2410-nocsf
- GPIO: GPIO3_A3", GPIO3_A4",ter "GPIO3_A5", "GPIO3_A6";
DTS Configuration
/dts-v1/;
/plugin/;
/ {
metadata {
title = "Enable I2S3 TDM4";
compatible = "radxa,zero3";
category = "audio";
exclusive = "GPIO3_A3", "GPIO3_A4", "GPIO3_A5", "GPIO3_A6";
description = "Enable I2S3 TDM4.";
};
};
&i2s3_2ch {
status = "okay";
rockchip,bclk-fs = <128>;
rockchip,clk-trcm = <1>;
rockchip,playback-only;
rockchip,playback-channels = <4>;
//rockchip,i2s-broken-burst-len;
//rockchip,grf = <0x16>;
pinctrl-names = "default";
pinctrl-0 = <&i2s3m0_sclk &i2s3m0_lrck &i2s3m0_sdi &i2s3m0_sdo>;
};
&{/} {
sound {
status = "okay";
compatible = "simple-audio-card";
simple-audio-card,name = "i2s3-tdm4";
simple-audio-card,format = "dsp_a";
simple-audio-card,mclk-fs = <256>;
simple-audio-card,bitclock-master = <&cpu_dai>;
simple-audio-card,frame-master = <&cpu_dai>;
cpu_dai: simple-audio-card,cpu {
sound-dai = <&i2s3_2ch>;
system-clock-frequency = <12288000>;
system-clock-direction = "out";
dai-tdm-slot-num = <4>;
dai-tdm-slot-width = <32>;
dai-tdm-slot-tx-mask = <0xf>;
};
codec_dai: simple-audio-card,codec {
sound-dai = <&tdm_dummy>;
};
};
tdm_dummy: dummy-codec {
#sound-dai-cells = <0>;
compatible = "rockchip,dummy-codec";
status = "okay";
};
};
Questions
- Is there a driver setting or DTS property to force continuous FCLK/FSYNC at 48 kHz?
- If not supported, what would be the recommended approach to modify the driver to keep the clock running continuously (e.g., gating policy, clocking mode, or DMA configuration)?
- Are there known workarounds (dummy DMA, keep-alive frames, different DAI format flags) for maintaining a stable 48 kHz frame clock on I2S3 in TDM4?
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels

