]> git.baikalelectronics.ru Git - kernel.git/commit
ASoC: soc-utils: Add helper to calculate BCLK from TDM info
authorRichard Fitzgerald <rf@opensource.cirrus.com>
Tue, 5 Apr 2022 13:54:16 +0000 (14:54 +0100)
committerMark Brown <broonie@kernel.org>
Tue, 5 Apr 2022 17:27:55 +0000 (18:27 +0100)
commitc1d22b3a3aa9762dbdc2a3a8d7acf8b0ffabf04b
treed327accd528797d0f770ebc3924ec978182334ad
parentf4fde56d6e607084c569d05b580c518d32f1258e
ASoC: soc-utils: Add helper to calculate BCLK from TDM info

Add a helper function snd_soc_tdm_params_to_bclk() to calculate
the bclk from params info and the tdm sots configuration.

When using a TDM frame of N slots of width W bits:

   bclk = sample_rate * N * W

As a convenience to simplify calling code, if the slot count or
slot width are 0 a value will be obtained from the params. This
allows calling code to use this one function to handle cases of
TDM where only one parameter is fixed, or I2S where the slot width
is fixed (for example to set a 32-bit slot for 24-bit samples).

Also as a convenience the slot count can optionally be rounded up
to a multiple. This is mainly useful for I2S systems, since I2S has
two phases of LRCLK the number of slots is always a multiple of 2.

Signed-off-by: Richard Fitzgerald <rf@opensource.cirrus.com>
Link: https://lore.kernel.org/r/20220405135419.1230088-3-rf@opensource.cirrus.com
Signed-off-by: Mark Brown <broonie@kernel.org>
include/sound/soc.h
sound/soc/soc-utils.c