18c2ecf20Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only
28c2ecf20Sopenharmony_ciconfig SND_SOC_TEGRA
38c2ecf20Sopenharmony_ci	tristate "SoC Audio for the Tegra System-on-Chip"
48c2ecf20Sopenharmony_ci	depends on (ARCH_TEGRA && TEGRA20_APB_DMA) || COMPILE_TEST
58c2ecf20Sopenharmony_ci	depends on COMMON_CLK
68c2ecf20Sopenharmony_ci	depends on RESET_CONTROLLER
78c2ecf20Sopenharmony_ci	select REGMAP_MMIO
88c2ecf20Sopenharmony_ci	select SND_SOC_GENERIC_DMAENGINE_PCM
98c2ecf20Sopenharmony_ci	help
108c2ecf20Sopenharmony_ci	  Say Y or M here if you want support for SoC audio on Tegra.
118c2ecf20Sopenharmony_ci
128c2ecf20Sopenharmony_ciconfig SND_SOC_TEGRA20_AC97
138c2ecf20Sopenharmony_ci	tristate "Tegra20 AC97 interface"
148c2ecf20Sopenharmony_ci	depends on SND_SOC_TEGRA
158c2ecf20Sopenharmony_ci	select SND_SOC_AC97_BUS
168c2ecf20Sopenharmony_ci	select SND_SOC_TEGRA20_DAS
178c2ecf20Sopenharmony_ci	help
188c2ecf20Sopenharmony_ci	  Say Y or M if you want to add support for codecs attached to the
198c2ecf20Sopenharmony_ci	  Tegra20 AC97 interface. You will also need to select the individual
208c2ecf20Sopenharmony_ci	  machine drivers to support below.
218c2ecf20Sopenharmony_ci
228c2ecf20Sopenharmony_ciconfig SND_SOC_TEGRA20_DAS
238c2ecf20Sopenharmony_ci	tristate "Tegra20 DAS module"
248c2ecf20Sopenharmony_ci	depends on SND_SOC_TEGRA
258c2ecf20Sopenharmony_ci	help
268c2ecf20Sopenharmony_ci	  Say Y or M if you want to add support for the Tegra20 DAS module.
278c2ecf20Sopenharmony_ci	  You will also need to select the individual machine drivers to
288c2ecf20Sopenharmony_ci	  support below.
298c2ecf20Sopenharmony_ci
308c2ecf20Sopenharmony_ciconfig SND_SOC_TEGRA20_I2S
318c2ecf20Sopenharmony_ci	tristate "Tegra20 I2S interface"
328c2ecf20Sopenharmony_ci	depends on SND_SOC_TEGRA
338c2ecf20Sopenharmony_ci	select SND_SOC_TEGRA20_DAS
348c2ecf20Sopenharmony_ci	help
358c2ecf20Sopenharmony_ci	  Say Y or M if you want to add support for codecs attached to the
368c2ecf20Sopenharmony_ci	  Tegra20 I2S interface. You will also need to select the individual
378c2ecf20Sopenharmony_ci	  machine drivers to support below.
388c2ecf20Sopenharmony_ci
398c2ecf20Sopenharmony_ciconfig SND_SOC_TEGRA20_SPDIF
408c2ecf20Sopenharmony_ci	tristate "Tegra20 SPDIF interface"
418c2ecf20Sopenharmony_ci	depends on SND_SOC_TEGRA
428c2ecf20Sopenharmony_ci	default m
438c2ecf20Sopenharmony_ci	help
448c2ecf20Sopenharmony_ci	  Say Y or M if you want to add support for the Tegra20 SPDIF interface.
458c2ecf20Sopenharmony_ci	  You will also need to select the individual machine drivers to support
468c2ecf20Sopenharmony_ci	  below.
478c2ecf20Sopenharmony_ci
488c2ecf20Sopenharmony_ciconfig SND_SOC_TEGRA30_AHUB
498c2ecf20Sopenharmony_ci	tristate "Tegra30 AHUB module"
508c2ecf20Sopenharmony_ci	depends on SND_SOC_TEGRA
518c2ecf20Sopenharmony_ci	help
528c2ecf20Sopenharmony_ci	  Say Y or M if you want to add support for the Tegra30 AHUB module.
538c2ecf20Sopenharmony_ci	  You will also need to select the individual machine drivers to
548c2ecf20Sopenharmony_ci	  support below.
558c2ecf20Sopenharmony_ci
568c2ecf20Sopenharmony_ciconfig SND_SOC_TEGRA30_I2S
578c2ecf20Sopenharmony_ci	tristate "Tegra30 I2S interface"
588c2ecf20Sopenharmony_ci	depends on SND_SOC_TEGRA
598c2ecf20Sopenharmony_ci	select SND_SOC_TEGRA30_AHUB
608c2ecf20Sopenharmony_ci	help
618c2ecf20Sopenharmony_ci	  Say Y or M if you want to add support for codecs attached to the
628c2ecf20Sopenharmony_ci	  Tegra30 I2S interface. You will also need to select the individual
638c2ecf20Sopenharmony_ci	  machine drivers to support below.
648c2ecf20Sopenharmony_ci
658c2ecf20Sopenharmony_ciconfig SND_SOC_TEGRA210_AHUB
668c2ecf20Sopenharmony_ci	tristate "Tegra210 AHUB module"
678c2ecf20Sopenharmony_ci	depends on SND_SOC_TEGRA
688c2ecf20Sopenharmony_ci	help
698c2ecf20Sopenharmony_ci	  Config to enable Audio Hub (AHUB) module, which comprises of a
708c2ecf20Sopenharmony_ci	  switch called Audio Crossbar (AXBAR) used to configure or modify
718c2ecf20Sopenharmony_ci	  the audio routing path between various HW accelerators present in
728c2ecf20Sopenharmony_ci	  AHUB.
738c2ecf20Sopenharmony_ci	  Say Y or M if you want to add support for Tegra210 AHUB module.
748c2ecf20Sopenharmony_ci
758c2ecf20Sopenharmony_ciconfig SND_SOC_TEGRA210_DMIC
768c2ecf20Sopenharmony_ci	tristate "Tegra210 DMIC module"
778c2ecf20Sopenharmony_ci	depends on SND_SOC_TEGRA
788c2ecf20Sopenharmony_ci	help
798c2ecf20Sopenharmony_ci	  Config to enable the Digital MIC (DMIC) controller which is used
808c2ecf20Sopenharmony_ci	  to interface with Pulse Density Modulation (PDM) input devices.
818c2ecf20Sopenharmony_ci	  The DMIC controller implements a converter to convert PDM signals
828c2ecf20Sopenharmony_ci	  to Pulse Code Modulation (PCM) signals. This can be viewed as a
838c2ecf20Sopenharmony_ci	  PDM receiver.
848c2ecf20Sopenharmony_ci	  Say Y or M if you want to add support for Tegra210 DMIC module.
858c2ecf20Sopenharmony_ci
868c2ecf20Sopenharmony_ciconfig SND_SOC_TEGRA210_I2S
878c2ecf20Sopenharmony_ci	tristate "Tegra210 I2S module"
888c2ecf20Sopenharmony_ci	depends on SND_SOC_TEGRA
898c2ecf20Sopenharmony_ci	help
908c2ecf20Sopenharmony_ci	  Config to enable the Inter-IC Sound (I2S) Controller which
918c2ecf20Sopenharmony_ci	  implements full-duplex and bidirectional and single direction
928c2ecf20Sopenharmony_ci	  point-to-point serial interfaces. It can interface with I2S
938c2ecf20Sopenharmony_ci	  compatible devices.
948c2ecf20Sopenharmony_ci	  Say Y or M if you want to add support for Tegra210 I2S module.
958c2ecf20Sopenharmony_ci
968c2ecf20Sopenharmony_ciconfig SND_SOC_TEGRA186_DSPK
978c2ecf20Sopenharmony_ci	tristate "Tegra186 DSPK module"
988c2ecf20Sopenharmony_ci	depends on SND_SOC_TEGRA
998c2ecf20Sopenharmony_ci	help
1008c2ecf20Sopenharmony_ci	  Config to enable the Digital Speaker Controller (DSPK) which
1018c2ecf20Sopenharmony_ci	  converts the multi-bit Pulse Code Modulation (PCM) audio input to
1028c2ecf20Sopenharmony_ci	  oversampled 1-bit Pulse Density Modulation (PDM) output. From the
1038c2ecf20Sopenharmony_ci	  signal flow perspective DSPK can be viewed as a PDM transmitter
1048c2ecf20Sopenharmony_ci	  that up-samples the input to the desired sampling rate by
1058c2ecf20Sopenharmony_ci	  interpolation and then converts the oversampled PCM input to
1068c2ecf20Sopenharmony_ci	  the desired 1-bit output via Delta Sigma Modulation (DSM).
1078c2ecf20Sopenharmony_ci	  Say Y or M if you want to add support for Tegra186 DSPK module.
1088c2ecf20Sopenharmony_ci
1098c2ecf20Sopenharmony_ciconfig SND_SOC_TEGRA210_ADMAIF
1108c2ecf20Sopenharmony_ci	tristate "Tegra210 ADMAIF module"
1118c2ecf20Sopenharmony_ci	depends on SND_SOC_TEGRA
1128c2ecf20Sopenharmony_ci	help
1138c2ecf20Sopenharmony_ci	  Config to enable ADMAIF which is the interface between ADMA and
1148c2ecf20Sopenharmony_ci	  Audio Hub (AHUB). Each ADMA channel that sends/receives data to/
1158c2ecf20Sopenharmony_ci	  from AHUB must interface through an ADMAIF channel. ADMA channel
1168c2ecf20Sopenharmony_ci	  sending data to AHUB pairs with an ADMAIF Tx channel, where as
1178c2ecf20Sopenharmony_ci	  ADMA channel receiving data from AHUB pairs with an ADMAIF Rx
1188c2ecf20Sopenharmony_ci	  channel. Buffer size is configurable for each ADMAIIF channel.
1198c2ecf20Sopenharmony_ci	  Say Y or M if you want to add support for Tegra210 ADMAIF module.
1208c2ecf20Sopenharmony_ci
1218c2ecf20Sopenharmony_ciconfig SND_SOC_TEGRA_RT5640
1228c2ecf20Sopenharmony_ci	tristate "SoC Audio support for Tegra boards using an RT5640 codec"
1238c2ecf20Sopenharmony_ci	depends on SND_SOC_TEGRA && I2C && GPIOLIB
1248c2ecf20Sopenharmony_ci	select SND_SOC_RT5640
1258c2ecf20Sopenharmony_ci	help
1268c2ecf20Sopenharmony_ci	  Say Y or M here if you want to add support for SoC audio on Tegra
1278c2ecf20Sopenharmony_ci	  boards using the RT5640 codec, such as Dalmore.
1288c2ecf20Sopenharmony_ci
1298c2ecf20Sopenharmony_ciconfig SND_SOC_TEGRA_WM8753
1308c2ecf20Sopenharmony_ci	tristate "SoC Audio support for Tegra boards using a WM8753 codec"
1318c2ecf20Sopenharmony_ci	depends on SND_SOC_TEGRA && I2C && GPIOLIB
1328c2ecf20Sopenharmony_ci	select SND_SOC_WM8753
1338c2ecf20Sopenharmony_ci	help
1348c2ecf20Sopenharmony_ci	  Say Y or M here if you want to add support for SoC audio on Tegra
1358c2ecf20Sopenharmony_ci	  boards using the WM8753 codec, such as Whistler.
1368c2ecf20Sopenharmony_ci
1378c2ecf20Sopenharmony_ciconfig SND_SOC_TEGRA_WM8903
1388c2ecf20Sopenharmony_ci	tristate "SoC Audio support for Tegra boards using a WM8903 codec"
1398c2ecf20Sopenharmony_ci	depends on SND_SOC_TEGRA && I2C && GPIOLIB
1408c2ecf20Sopenharmony_ci	select SND_SOC_WM8903
1418c2ecf20Sopenharmony_ci	help
1428c2ecf20Sopenharmony_ci	  Say Y or M here if you want to add support for SoC audio on Tegra
1438c2ecf20Sopenharmony_ci	  boards using the WM8093 codec. Currently, the supported boards are
1448c2ecf20Sopenharmony_ci	  Harmony, Ventana, Seaboard, Kaen, and Aebl.
1458c2ecf20Sopenharmony_ci
1468c2ecf20Sopenharmony_ciconfig SND_SOC_TEGRA_WM9712
1478c2ecf20Sopenharmony_ci	tristate "SoC Audio support for Tegra boards using a WM9712 codec"
1488c2ecf20Sopenharmony_ci	depends on SND_SOC_TEGRA && GPIOLIB
1498c2ecf20Sopenharmony_ci	select SND_SOC_TEGRA20_AC97
1508c2ecf20Sopenharmony_ci	select SND_SOC_WM9712
1518c2ecf20Sopenharmony_ci	help
1528c2ecf20Sopenharmony_ci	  Say Y or M here if you want to add support for SoC audio on Tegra
1538c2ecf20Sopenharmony_ci	  boards using the WM9712 (or compatible) codec.
1548c2ecf20Sopenharmony_ci
1558c2ecf20Sopenharmony_ciconfig SND_SOC_TEGRA_TRIMSLICE
1568c2ecf20Sopenharmony_ci	tristate "SoC Audio support for TrimSlice board"
1578c2ecf20Sopenharmony_ci	depends on SND_SOC_TEGRA && I2C
1588c2ecf20Sopenharmony_ci	select SND_SOC_TLV320AIC23_I2C
1598c2ecf20Sopenharmony_ci	help
1608c2ecf20Sopenharmony_ci	  Say Y or M here if you want to add support for SoC audio on the
1618c2ecf20Sopenharmony_ci	  TrimSlice platform.
1628c2ecf20Sopenharmony_ci
1638c2ecf20Sopenharmony_ciconfig SND_SOC_TEGRA_ALC5632
1648c2ecf20Sopenharmony_ci	tristate "SoC Audio support for Tegra boards using an ALC5632 codec"
1658c2ecf20Sopenharmony_ci	depends on SND_SOC_TEGRA && I2C && GPIOLIB
1668c2ecf20Sopenharmony_ci	select SND_SOC_ALC5632
1678c2ecf20Sopenharmony_ci	help
1688c2ecf20Sopenharmony_ci	  Say Y or M here if you want to add support for SoC audio on the
1698c2ecf20Sopenharmony_ci	  Toshiba AC100 netbook.
1708c2ecf20Sopenharmony_ci
1718c2ecf20Sopenharmony_ciconfig SND_SOC_TEGRA_MAX98090
1728c2ecf20Sopenharmony_ci	tristate "SoC Audio support for Tegra boards using a MAX98090 codec"
1738c2ecf20Sopenharmony_ci	depends on SND_SOC_TEGRA && I2C && GPIOLIB
1748c2ecf20Sopenharmony_ci	select SND_SOC_MAX98090
1758c2ecf20Sopenharmony_ci	help
1768c2ecf20Sopenharmony_ci	  Say Y or M here if you want to add support for SoC audio on Tegra
1778c2ecf20Sopenharmony_ci	  boards using the MAX98090 codec, such as Venice2.
1788c2ecf20Sopenharmony_ci
1798c2ecf20Sopenharmony_ciconfig SND_SOC_TEGRA_RT5677
1808c2ecf20Sopenharmony_ci	tristate "SoC Audio support for Tegra boards using a RT5677 codec"
1818c2ecf20Sopenharmony_ci	depends on SND_SOC_TEGRA && I2C && GPIOLIB
1828c2ecf20Sopenharmony_ci	select SND_SOC_RT5677
1838c2ecf20Sopenharmony_ci	help
1848c2ecf20Sopenharmony_ci	  Say Y or M here if you want to add support for SoC audio on Tegra
1858c2ecf20Sopenharmony_ci	  boards using the RT5677 codec, such as Ryu.
1868c2ecf20Sopenharmony_ci
1878c2ecf20Sopenharmony_ciconfig SND_SOC_TEGRA_SGTL5000
1888c2ecf20Sopenharmony_ci	tristate "SoC Audio support for Tegra boards using a SGTL5000 codec"
1898c2ecf20Sopenharmony_ci	depends on SND_SOC_TEGRA && I2C && GPIOLIB
1908c2ecf20Sopenharmony_ci	select SND_SOC_SGTL5000
1918c2ecf20Sopenharmony_ci	help
1928c2ecf20Sopenharmony_ci	  Say Y or M here if you want to add support for SoC audio on Tegra
1938c2ecf20Sopenharmony_ci	  boards using the SGTL5000 codec, such as Apalis T30, Apalis TK1 or
1948c2ecf20Sopenharmony_ci	  Colibri T30.
195