ASoC: tegra: Add Tegra186 based DSPK driver
authorSameer Pujar <spujar@nvidia.com>
Sun, 19 Jul 2020 05:01:25 +0000 (10:31 +0530)
committerMark Brown <broonie@kernel.org>
Mon, 20 Jul 2020 14:10:24 +0000 (15:10 +0100)
commit327ef64702668bb754eeea80ce402454d7a1302a
treeb59c20db67df010a91219532bc78ba516b33685e
parent16e1bcc2caf446fa3e1daa040b59fd6f6272a766
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>
sound/soc/tegra/Kconfig
sound/soc/tegra/Makefile
sound/soc/tegra/tegra186_dspk.c [new file with mode: 0644]
sound/soc/tegra/tegra186_dspk.h [new file with mode: 0644]