Keep the I2S FSYNC active

Using the r36.2 is it possible to keep the I2S FSYNC signal on even when I’m not actively recording from the TDM port?

We are checking if this is possible with our teams. It would be great if you can share more information, about what your use-case is and why this function is required.

I have a CODEC that to be able to work correctly needs a stable and continuous feed of BCLK and FSYNC, even when nothing is being actively recorded or reproduced.

I’m able to keep the BCLK always running by acting on /sys/devices/platform/aconnect@2a41000/2900800.ahub/2901100.i2s/power/control but I was not able to find anything similar for FSYNC

Hi ccaione

FSYNC clock is generated by I2S controller and this is typically enabled during transfers. If you run any playback or capture this gets automatically enabled. Your requirement is to enable this without any playback or capture. Can you try if following helps?

diff --git a/sound/soc/tegra/tegra210_i2s.c b/sound/soc/tegra/tegra210_i2s.c
index 57e629f5..40eab95d 100644
--- a/sound/soc/tegra/tegra210_i2s.c
+++ b/sound/soc/tegra/tegra210_i2s.c
@@ -200,6 +200,8 @@ static int __maybe_unused tegra210_i2s_runtime_resume(struct device *dev)
        regcache_cache_only(i2s->regmap, false);

+       regmap_write(i2s->regmap, TEGRA210_I2S_TX_ENABLE, 0x1);
        return 0;

BTW, I am curious to know how the CODEC has dependency over BCLK/FSYNC.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.