]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
ASoC: soc-dai: add shared BCLK clock for cross-DAI rate constraints
authorTroy Mitchell <troy.mitchell@linux.spacemit.com>
Fri, 22 May 2026 13:33:57 +0000 (21:33 +0800)
committerMark Brown <broonie@kernel.org>
Mon, 25 May 2026 10:42:41 +0000 (11:42 +0100)
commit94bdfad3a665da68731deb56b0fe80f00a3e6da8
treede4cb0237a4123728b596252f301d1ee0b215cce
parente7ae89a0c97ce2b68b0983cd01eda67cf373517d
ASoC: soc-dai: add shared BCLK clock for cross-DAI rate constraints

Add a bclk field to struct snd_soc_dai and a helper function
snd_soc_dai_set_bclk_clk() that platform drivers can use to declare
which clock is their BCLK.

Also cache the bclk_ratio in snd_soc_dai_set_bclk_ratio() so that
the framework can use it later in hw_rule evaluation for TDM
configurations where BCLK = rate * slots * slot_width.

When multiple DAIs on the same card share the same physical BCLK
(detected via clk_is_match()), the ASoC core can automatically
constrain their hw_params so that the resulting BCLK rates are
compatible. This commit adds the data structure support; the actual
constraint logic follows in the next patch.

Signed-off-by: Troy Mitchell <troy.mitchell@linux.spacemit.com>
Link: https://patch.msgid.link/20260522-i2s-same-blk-v4-1-a71a86faaa20@linux.spacemit.com
Signed-off-by: Mark Brown <broonie@kernel.org>
include/sound/soc-dai.h
sound/soc/soc-dai.c