mirror of
https://github.com/torvalds/linux.git
synced 2024-11-14 08:02:07 +00:00
202e2f7745
Add Tegra audio machine driver which is based on generic audio graph card driver. It re-uses most of the common stuff from audio graph driver and uses the same DT binding. Required Tegra specific customizations are done in the driver and additional DT bindings are required for clock handling. Details on the customizations done: - Update PLL rates at runtime: Tegra HW supports multiple sample rates (multiples of 8x and 11.025x) and both of these groups require different PLL rates. Hence there is a requirement to update this at runtime. This is achieved by providing a custom 'snd_soc_ops' and in hw_param() callback PLL rate is updated as per the sample rate. - Internal structure 'tegra_audio_graph_data' is used to maintain clock handles of PLL. - The 'force_dpcm' flag is set to use DPCM for all DAI links. - The 'component_chaining' flag is set to use DPCM with component model. Signed-off-by: Sameer Pujar <spujar@nvidia.com> Reviewed-by: Jon Hunter <jonathanh@nvidia.com> Link: https://lore.kernel.org/r/1611048496-24650-4-git-send-email-spujar@nvidia.com Signed-off-by: Mark Brown <broonie@kernel.org>
53 lines
2.5 KiB
Makefile
53 lines
2.5 KiB
Makefile
# SPDX-License-Identifier: GPL-2.0
|
|
# Tegra platform Support
|
|
snd-soc-tegra-pcm-objs := tegra_pcm.o
|
|
snd-soc-tegra-utils-objs += tegra_asoc_utils.o
|
|
snd-soc-tegra20-ac97-objs := tegra20_ac97.o
|
|
snd-soc-tegra20-das-objs := tegra20_das.o
|
|
snd-soc-tegra20-i2s-objs := tegra20_i2s.o
|
|
snd-soc-tegra20-spdif-objs := tegra20_spdif.o
|
|
snd-soc-tegra30-ahub-objs := tegra30_ahub.o
|
|
snd-soc-tegra30-i2s-objs := tegra30_i2s.o
|
|
snd-soc-tegra210-ahub-objs := tegra210_ahub.o
|
|
snd-soc-tegra210-dmic-objs := tegra210_dmic.o
|
|
snd-soc-tegra210-i2s-objs := tegra210_i2s.o
|
|
snd-soc-tegra186-dspk-objs := tegra186_dspk.o
|
|
snd-soc-tegra210-admaif-objs := tegra210_admaif.o
|
|
|
|
obj-$(CONFIG_SND_SOC_TEGRA) += snd-soc-tegra-pcm.o
|
|
obj-$(CONFIG_SND_SOC_TEGRA) += snd-soc-tegra-utils.o
|
|
obj-$(CONFIG_SND_SOC_TEGRA20_AC97) += snd-soc-tegra20-ac97.o
|
|
obj-$(CONFIG_SND_SOC_TEGRA20_DAS) += snd-soc-tegra20-das.o
|
|
obj-$(CONFIG_SND_SOC_TEGRA20_I2S) += snd-soc-tegra20-i2s.o
|
|
obj-$(CONFIG_SND_SOC_TEGRA20_SPDIF) += snd-soc-tegra20-spdif.o
|
|
obj-$(CONFIG_SND_SOC_TEGRA30_AHUB) += snd-soc-tegra30-ahub.o
|
|
obj-$(CONFIG_SND_SOC_TEGRA30_I2S) += snd-soc-tegra30-i2s.o
|
|
obj-$(CONFIG_SND_SOC_TEGRA210_DMIC) += snd-soc-tegra210-dmic.o
|
|
obj-$(CONFIG_SND_SOC_TEGRA210_AHUB) += snd-soc-tegra210-ahub.o
|
|
obj-$(CONFIG_SND_SOC_TEGRA210_I2S) += snd-soc-tegra210-i2s.o
|
|
obj-$(CONFIG_SND_SOC_TEGRA186_DSPK) += snd-soc-tegra186-dspk.o
|
|
obj-$(CONFIG_SND_SOC_TEGRA210_ADMAIF) += snd-soc-tegra210-admaif.o
|
|
|
|
# Tegra machine Support
|
|
snd-soc-tegra-rt5640-objs := tegra_rt5640.o
|
|
snd-soc-tegra-rt5677-objs := tegra_rt5677.o
|
|
snd-soc-tegra-wm8753-objs := tegra_wm8753.o
|
|
snd-soc-tegra-wm8903-objs := tegra_wm8903.o
|
|
snd-soc-tegra-wm9712-objs := tegra_wm9712.o
|
|
snd-soc-tegra-trimslice-objs := trimslice.o
|
|
snd-soc-tegra-alc5632-objs := tegra_alc5632.o
|
|
snd-soc-tegra-max98090-objs := tegra_max98090.o
|
|
snd-soc-tegra-sgtl5000-objs := tegra_sgtl5000.o
|
|
snd-soc-tegra-audio-graph-card-objs := tegra_audio_graph_card.o
|
|
|
|
obj-$(CONFIG_SND_SOC_TEGRA_RT5640) += snd-soc-tegra-rt5640.o
|
|
obj-$(CONFIG_SND_SOC_TEGRA_RT5677) += snd-soc-tegra-rt5677.o
|
|
obj-$(CONFIG_SND_SOC_TEGRA_WM8753) += snd-soc-tegra-wm8753.o
|
|
obj-$(CONFIG_SND_SOC_TEGRA_WM8903) += snd-soc-tegra-wm8903.o
|
|
obj-$(CONFIG_SND_SOC_TEGRA_WM9712) += snd-soc-tegra-wm9712.o
|
|
obj-$(CONFIG_SND_SOC_TEGRA_TRIMSLICE) += snd-soc-tegra-trimslice.o
|
|
obj-$(CONFIG_SND_SOC_TEGRA_ALC5632) += snd-soc-tegra-alc5632.o
|
|
obj-$(CONFIG_SND_SOC_TEGRA_MAX98090) += snd-soc-tegra-max98090.o
|
|
obj-$(CONFIG_SND_SOC_TEGRA_SGTL5000) += snd-soc-tegra-sgtl5000.o
|
|
obj-$(CONFIG_SND_SOC_TEGRA_AUDIO_GRAPH_CARD) += snd-soc-tegra-audio-graph-card.o
|