ASoC: tegra: Add Tegra186 based ASRC driver
authorSameer Pujar <spujar@nvidia.com>
Thu, 31 Mar 2022 14:03:28 +0000 (19:33 +0530)
committerMark Brown <broonie@kernel.org>
Mon, 4 Apr 2022 07:39:14 +0000 (08:39 +0100)
commita2df8c2d5b36fc66b9a6e674f3e0c87c0b9d0a48
treefaceb7d51b0ce474c156cc1218eb4bee032dc0dc
parentc54ce1a17232215c4a518149292b41835992eee8
ASoC: tegra: Add Tegra186 based ASRC driver

Asynchronous Sample Rate Converter (ASRC) converts the sampling frequency
of the input signal from one frequency to another. It can handle over a
wide range of sample rate ratios (freq_in/freq_out) from 1:24 to 24:1.

ASRC has two modes of operation. One where ratio can be programmed in SW
and the other where it gets the information from ratio estimator module.
The latter mode above can help address the cases where the sample rate is
not known at the stream set up time or is potentially time varying.
In addition, the ratio between input and output sample rate can be any
arbitrary number and the input and output clocks could be derived from
asynchronous clocks.

This patch registers ASRC driver with ASoC framework. The component driver
exposes DAPM widgets, routes and kcontrols for the device. The DAI driver
exposes ASRC interfaces, which can be used to connect different components
in the ASoC layer. Makefile and Kconfig support is added to allow build
the driver.

Signed-off-by: Sameer Pujar <spujar@nvidia.com>
Link: https://lore.kernel.org/r/1648735412-32220-3-git-send-email-spujar@nvidia.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/tegra/Kconfig
sound/soc/tegra/Makefile
sound/soc/tegra/tegra186_asrc.c [new file with mode: 0644]
sound/soc/tegra/tegra186_asrc.h [new file with mode: 0644]