ASoC: pcm512x: Implement the set_bclk_ratio interface
authorDimitris Papavasiliou <dpapavas@gmail.com>
Sat, 26 Jan 2019 13:17:01 +0000 (15:17 +0200)
committerMark Brown <broonie@kernel.org>
Mon, 28 Jan 2019 12:33:59 +0000 (12:33 +0000)
commitccc8d6c7b6d2f521a4b10c7f6d027f46c7a686bf
tree730975bd2d6b63f7c82ccd89af90b614eefb09bd
parent720734a0b66f9ca42ec6663a48702b16e49552ee
ASoC: pcm512x: Implement the set_bclk_ratio interface

Some boards, such as the HiFiBerry DAC+ Pro, use a pair of external
oscillators, to generate 44.1 or 48kHz multiples and are forced to
resort to hacks [1] in order to support 24-bit data without ending up
with fractional dividers.  This patch allows the machine driver to use
32-bit frames for 24-bit data to avoid such issues.

Although the datasheet (p. 15) seems to suggest that only a handful
of ratios are supported, it's not very explicit about it, so we allow
the full range of values supported by the underlying register in the
callback, to avoid needlessly rejecting potentially usable
configurations.

[1] http://mailman.alsa-project.org/pipermail/alsa-devel/2018-December/143442.html

Signed-off-by: Dimitris Papavasiliou <dpapavas@gmail.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/codecs/pcm512x.c