linux-stable/sound/soc/tegra
Sameer Pujar a2df8c2d5b
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>
2022-04-04 08:39:14 +01:00
..
Kconfig ASoC: tegra: Add Tegra186 based ASRC driver 2022-04-04 08:39:14 +01:00
Makefile ASoC: tegra: Add Tegra186 based ASRC driver 2022-04-04 08:39:14 +01:00
tegra20_ac97.c ASoC: tegra20: ac97: Add reset control 2021-03-18 13:49:30 +00:00
tegra20_ac97.h ASoC: tegra20: ac97: Add reset control 2021-03-18 13:49:30 +00:00
tegra20_das.c ASoC: tegra: tegra20_das: clarify expression 2021-03-31 18:03:24 +01:00
tegra20_das.h ASoC: tegra: tegra20_das: align function prototypes 2021-03-31 18:03:25 +01:00
tegra20_i2s.c ASoC: tegra20: i2s: Filter out unsupported rates 2021-12-17 11:14:01 +00:00
tegra20_i2s.h ASoC: tegra20: i2s: Add reset control 2021-03-18 13:49:31 +00:00
tegra20_spdif.c ASoC: tegra20: spdif: make const array rates static 2022-02-15 12:52:44 +00:00
tegra20_spdif.h ASoC: tegra20: spdif: Reset hardware 2021-12-17 11:13:57 +00:00
tegra30_ahub.c ASoC: tegra30: ahub: Fix incorrect usage of of_device_get_match_data 2021-08-17 13:34:59 +01:00
tegra30_ahub.h ASoC: tegra30: ahub: Switch to use reset-bulk API 2021-03-18 13:49:34 +00:00
tegra30_i2s.c ASoC: tegra30: i2s: Fix incorrect usage of of_device_get_match_data 2021-08-17 13:35:00 +01:00
tegra30_i2s.h
tegra186_asrc.c ASoC: tegra: Add Tegra186 based ASRC driver 2022-04-04 08:39:14 +01:00
tegra186_asrc.h ASoC: tegra: Add Tegra186 based ASRC driver 2022-04-04 08:39:14 +01:00
tegra186_dspk.c ASoC: tegra: Fix kcontrol put callback in DSPK 2021-11-18 19:02:33 +00:00
tegra186_dspk.h ASoC: tegra: Add Tegra186 based DSPK driver 2020-07-20 15:10:24 +01:00
tegra210_admaif.c ASoC: tegra: Fix kcontrol put callback in ADMAIF 2021-11-18 19:02:25 +00:00
tegra210_admaif.h ASoC: tegra: Add Tegra210 based ADMAIF driver 2020-07-21 23:26:14 +01:00
tegra210_adx.c ASoC: tegra: Use normal system sleep for ADX 2021-11-26 13:24:07 +00:00
tegra210_adx.h ASoC: tegra: Add Tegra210 based ADX driver 2021-09-20 13:31:35 +01:00
tegra210_ahub.c ASoC: tegra: Update AHUB driver for Tegra234 2022-01-28 13:05:26 +00:00
tegra210_ahub.h ASoC: tegra: Update AHUB driver for Tegra234 2022-01-28 13:05:26 +00:00
tegra210_amx.c ASoC: tegra: Use normal system sleep for AMX 2021-11-26 13:24:06 +00:00
tegra210_amx.h ASoC: tegra: Add Tegra210 based AMX driver 2021-09-20 13:31:34 +01:00
tegra210_dmic.c ASoC: tegra: Fix kcontrol put callback in DMIC 2021-11-18 19:02:31 +00:00
tegra210_dmic.h ASoC: tegra: Add Tegra210 based DMIC driver 2020-07-20 15:10:22 +01:00
tegra210_i2s.c ASoC: tegra: Fix kcontrol put callback in I2S 2021-11-18 19:02:29 +00:00
tegra210_i2s.h ASoC: tegra: Add Tegra210 based I2S driver 2020-07-20 15:10:23 +01:00
tegra210_mixer.c ASoC: tegra: Use normal system sleep for Mixer 2021-11-26 13:24:05 +00:00
tegra210_mixer.h ASoC: tegra: Add Tegra210 based Mixer driver 2021-09-20 13:31:36 +01:00
tegra210_mvc.c ASoC: tegra: Add master volume/mute control support 2021-12-01 14:15:39 +00:00
tegra210_mvc.h ASoC: tegra: Add master volume/mute control support 2021-12-01 14:15:39 +00:00
tegra210_sfc.c ASoC: tegra: Use normal system sleep for SFC 2021-11-26 13:24:01 +00:00
tegra210_sfc.h ASoC: tegra: Add Tegra210 based SFC driver 2021-09-20 13:31:33 +01:00
tegra_asoc_machine.c ASoC: tegra: Restore headphones jack name on Nyan Big 2021-12-13 19:23:33 +00:00
tegra_asoc_machine.h ASoC: tegra: Restore headphones jack name on Nyan Big 2021-12-13 19:23:33 +00:00
tegra_audio_graph_card.c ASoC: audio-graph: move audio_graph_remove() to simple-card-utils.c 2021-04-20 17:25:45 +01:00
tegra_cif.h ASoC: tegra: Add support for CIF programming 2020-07-20 15:10:21 +01:00
tegra_pcm.c ASoC: tegra20: spdif: Use more resource-managed helpers 2021-12-17 11:13:56 +00:00
tegra_pcm.h ASoC: tegra20: spdif: Use more resource-managed helpers 2021-12-17 11:13:56 +00:00
tegra_wm8903.c ASoC: tegra: Specify components string for each card 2021-06-15 11:43:11 +01:00