WSL2-Linux-Kernel/sound/soc/tegra
Sameer Pujar 327ef64702
ASoC: tegra: Add Tegra186 based DSPK driver
The Digital Speaker Controller (DSPK) converts the multi-bit Pulse Code
Modulation (PCM) audio input to oversampled 1-bit Pulse Density Modulation
(PDM) output. From the signal flow perpsective, the DSPK can be viewed as
a PDM transmitter that up-samples the input to the desired sampling rate
by interpolation then converts the oversampled PCM input to the desired
1-bit output via Delta Sigma Modulation (DSM).

This patch registers DSPK component with ASoC framework. The component
driver exposes DAPM widgets, routes and kcontrols for the device. The DAI
driver exposes DSPK interfaces, which can be used to connect different
components in the ASoC layer. Makefile and Kconfig support is added to
allow to build the driver. The DSPK devices can be enabled in the DT via
"nvidia,tegra186-dspk" compatible binding. This driver can be used
on Tegra194 chip as well.

Signed-off-by: Sameer Pujar <spujar@nvidia.com>
Link: https://lore.kernel.org/r/1595134890-16470-7-git-send-email-spujar@nvidia.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2020-07-20 15:10:24 +01:00
..
Kconfig ASoC: tegra: Add Tegra186 based DSPK driver 2020-07-20 15:10:24 +01:00
Makefile ASoC: tegra: Add Tegra186 based DSPK driver 2020-07-20 15:10:24 +01:00
tegra20_ac97.c ASoC: soc-core: remove bus_control 2020-01-21 17:07:08 +00:00
tegra20_ac97.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 174 2019-05-30 11:26:41 -07:00
tegra20_das.c ASoC: tegra: tegra20_das: remove always-true comparison 2020-07-09 21:56:42 +01:00
tegra20_das.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 336 2019-06-05 17:37:07 +02:00
tegra20_i2s.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 336 2019-06-05 17:37:07 +02:00
tegra20_i2s.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 336 2019-06-05 17:37:07 +02:00
tegra20_spdif.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 336 2019-06-05 17:37:07 +02:00
tegra20_spdif.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 336 2019-06-05 17:37:07 +02:00
tegra30_ahub.c ASoC: tegra: Fix reference count leaks. 2020-06-17 14:04:02 +01:00
tegra30_ahub.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 201 2019-05-30 11:29:52 -07:00
tegra30_i2s.c ASoC: tegra: Fix reference count leaks. 2020-06-17 14:04:02 +01:00
tegra30_i2s.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 201 2019-05-30 11:29:52 -07:00
tegra186_dspk.c ASoC: tegra: Add Tegra186 based DSPK driver 2020-07-20 15:10:24 +01:00
tegra186_dspk.h ASoC: tegra: Add Tegra186 based DSPK driver 2020-07-20 15:10:24 +01:00
tegra210_ahub.c ASoC: tegra: Add Tegra210 based AHUB driver 2020-07-20 15:10:23 +01:00
tegra210_ahub.h ASoC: tegra: Add Tegra210 based AHUB driver 2020-07-20 15:10:23 +01:00
tegra210_dmic.c ASoC: tegra: Add Tegra210 based DMIC driver 2020-07-20 15:10:22 +01:00
tegra210_dmic.h ASoC: tegra: Add Tegra210 based DMIC driver 2020-07-20 15:10:22 +01:00
tegra210_i2s.c ASoC: tegra: Add Tegra210 based I2S driver 2020-07-20 15:10:23 +01:00
tegra210_i2s.h ASoC: tegra: Add Tegra210 based I2S driver 2020-07-20 15:10:23 +01:00
tegra_alc5632.c ASoC: tegra: Use device managed resource APIs to get the clock 2020-04-21 16:53:12 +02:00
tegra_asoc_utils.c ASoC: tegra: Enable audio mclk during tegra_asoc_utils_init() 2020-04-21 16:53:15 +02:00
tegra_asoc_utils.h ASoC: tegra: Use device managed resource APIs to get the clock 2020-04-21 16:53:12 +02:00
tegra_cif.h ASoC: tegra: Add support for CIF programming 2020-07-20 15:10:21 +01:00
tegra_max98090.c ASoC: tegra: Use device managed resource APIs to get the clock 2020-04-21 16:53:12 +02:00
tegra_pcm.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 336 2019-06-05 17:37:07 +02:00
tegra_pcm.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 336 2019-06-05 17:37:07 +02:00
tegra_rt5640.c ASoC: tegra: Use device managed resource APIs to get the clock 2020-04-21 16:53:12 +02:00
tegra_rt5677.c ASoC: tegra: Use device managed resource APIs to get the clock 2020-04-21 16:53:12 +02:00
tegra_sgtl5000.c ASoC: tegra: Use device managed resource APIs to get the clock 2020-04-21 16:53:12 +02:00
tegra_wm8753.c ASoC: tegra: Use device managed resource APIs to get the clock 2020-04-21 16:53:12 +02:00
tegra_wm8903.c ASoC: tegra: tegra_wm8903: Use devm_snd_soc_register_card() 2020-04-28 16:40:36 +01:00
tegra_wm9712.c ASoC: tegra: Use device managed resource APIs to get the clock 2020-04-21 16:53:12 +02:00
trimslice.c ASoC: tegra: Use device managed resource APIs to get the clock 2020-04-21 16:53:12 +02:00