# SPDX-License-Identifier: GPL-2.0-only config SND_SOC_TEGRA tristate "SoC Audio for the Tegra System-on-Chip" depends on (ARCH_TEGRA && TEGRA20_APB_DMA) || COMPILE_TEST depends on COMMON_CLK depends on RESET_CONTROLLER select REGMAP_MMIO select SND_SOC_GENERIC_DMAENGINE_PCM help Say Y or M here if you want support for SoC audio on Tegra. if SND_SOC_TEGRA config SND_SOC_TEGRA20_AC97 tristate "Tegra20 AC97 interface" select SND_SOC_AC97_BUS select SND_SOC_TEGRA20_DAS help Say Y or M if you want to add support for codecs attached to the Tegra20 AC97 interface. You will also need to select the individual machine drivers to support below. config SND_SOC_TEGRA20_DAS tristate "Tegra20 DAS module" help Say Y or M if you want to add support for the Tegra20 DAS module. You will also need to select the individual machine drivers to support below. config SND_SOC_TEGRA20_I2S tristate "Tegra20 I2S interface" select SND_SOC_TEGRA20_DAS help Say Y or M if you want to add support for codecs attached to the Tegra20 I2S interface. You will also need to select the individual machine drivers to support below. config SND_SOC_TEGRA20_SPDIF tristate "Tegra20 SPDIF interface" help Say Y or M if you want to add support for the Tegra20 SPDIF interface. You will also need to select the individual machine drivers to support below. config SND_SOC_TEGRA30_AHUB tristate "Tegra30 AHUB module" help Say Y or M if you want to add support for the Tegra30 AHUB module. You will also need to select the individual machine drivers to support below. config SND_SOC_TEGRA30_I2S tristate "Tegra30 I2S interface" select SND_SOC_TEGRA30_AHUB help Say Y or M if you want to add support for codecs attached to the Tegra30 I2S interface. You will also need to select the individual machine drivers to support below. config SND_SOC_TEGRA210_AHUB tristate "Tegra210 AHUB module" help Config to enable Audio Hub (AHUB) module, which comprises of a switch called Audio Crossbar (AXBAR) used to configure or modify the audio routing path between various HW accelerators present in AHUB. Say Y or M if you want to add support for Tegra210 AHUB module. config SND_SOC_TEGRA210_DMIC tristate "Tegra210 DMIC module" help Config to enable the Digital MIC (DMIC) controller which is used to interface with Pulse Density Modulation (PDM) input devices. The DMIC controller implements a converter to convert PDM signals to Pulse Code Modulation (PCM) signals. This can be viewed as a PDM receiver. Say Y or M if you want to add support for Tegra210 DMIC module. config SND_SOC_TEGRA210_I2S tristate "Tegra210 I2S module" help Config to enable the Inter-IC Sound (I2S) Controller which implements full-duplex and bidirectional and single direction point-to-point serial interfaces. It can interface with I2S compatible devices. Say Y or M if you want to add support for Tegra210 I2S module. config SND_SOC_TEGRA186_DSPK tristate "Tegra186 DSPK module" help Config to enable the Digital Speaker Controller (DSPK) which converts the multi-bit Pulse Code Modulation (PCM) audio input to oversampled 1-bit Pulse Density Modulation (PDM) output. From the signal flow perspective DSPK can be viewed as a PDM transmitter that up-samples the input to the desired sampling rate by interpolation and then converts the oversampled PCM input to the desired 1-bit output via Delta Sigma Modulation (DSM). Say Y or M if you want to add support for Tegra186 DSPK module. config SND_SOC_TEGRA210_ADMAIF tristate "Tegra210 ADMAIF module" help Config to enable ADMAIF which is the interface between ADMA and Audio Hub (AHUB). Each ADMA channel that sends/receives data to/ from AHUB must interface through an ADMAIF channel. ADMA channel sending data to AHUB pairs with an ADMAIF Tx channel, where as ADMA channel receiving data from AHUB pairs with an ADMAIF Rx channel. Buffer size is configurable for each ADMAIIF channel. Say Y or M if you want to add support for Tegra210 ADMAIF module. config SND_SOC_TEGRA210_MVC tristate "Tegra210 MVC module" help Config to enable the digital Master Volume Controller (MVC) which provides gain or attenuation to a digital signal path. It can be used in input or output signal path. It can be used either for per-stream volume control or for master volume control. Say Y or M if you want to add support for Tegra210 MVC module. config SND_SOC_TEGRA210_SFC tristate "Tegra210 SFC module" help Config to enable the Sampling Frequency Converter (SFC) which converts the sampling frequency of input signal to another frequency. It supports sampling frequency conversion of streams upto 2 channels (stereo). Say Y or M if you want to add support for Tegra210 SFC module. config SND_SOC_TEGRA210_AMX tristate "Tegra210 AMX module" help Config to enable the Audio Multiplexer (AMX) which can multiplex four input streams (each of up to 16 channels) and generate output stream (of up to 16 channels). A byte RAM helps to form an output frame by any combination of bytes from the input frames. Say Y or M if you want to add support for Tegra210 AMX module. config SND_SOC_TEGRA210_ADX tristate "Tegra210 ADX module" help Config to enable the Audio Demultiplexer (ADX) which takes an input stream (up to 16 channels) and demultiplexes it into four output streams (each of up to 16 channels). A byte RAM helps to form output frames by any combination of bytes from the input frame. Its design is identical to that of byte RAM in the AMX except that the data flow direction is reversed. Say Y or M if you want to add support for Tegra210 ADX module. config SND_SOC_TEGRA210_MIXER tristate "Tegra210 Mixer module" help Config to enable the Mixer module which can help to mix multiple audio streams. It supports mixing of upto 10 input streams, where each stream can contain maximum of 8 channels. It supports 5 output each of which can be a mix of any combination of 10 input streams. Say Y or M if you want to add support for Tegra210 Mixer module. config SND_SOC_TEGRA_AUDIO_GRAPH_CARD tristate "Audio Graph Card based Tegra driver" depends on SND_AUDIO_GRAPH_CARD help Config to enable Tegra audio machine driver based on generic audio graph driver. It is a thin driver written to customize few things for Tegra audio. Most of the code is re-used from audio graph driver and the same DT bindings are used. config SND_SOC_TEGRA_MACHINE_DRV tristate config SND_SOC_TEGRA_RT5640 tristate "SoC Audio support for Tegra boards using an RT5640 codec" depends on I2C && GPIOLIB select SND_SOC_TEGRA_MACHINE_DRV select SND_SOC_RT5640 help Say Y or M here if you want to add support for SoC audio on Tegra boards using the RT5640 codec, such as Dalmore. config SND_SOC_TEGRA_WM8753 tristate "SoC Audio support for Tegra boards using a WM8753 codec" depends on I2C && GPIOLIB select SND_SOC_TEGRA_MACHINE_DRV select SND_SOC_WM8753 help Say Y or M here if you want to add support for SoC audio on Tegra boards using the WM8753 codec, such as Whistler. config SND_SOC_TEGRA_WM8903 tristate "SoC Audio support for Tegra boards using a WM8903 codec" depends on I2C && GPIOLIB select SND_SOC_TEGRA_MACHINE_DRV select SND_SOC_WM8903 help Say Y or M here if you want to add support for SoC audio on Tegra boards using the WM8093 codec. Currently, the supported boards are Harmony, Ventana, Seaboard, Kaen, and Aebl. config SND_SOC_TEGRA_WM9712 tristate "SoC Audio support for Tegra boards using a WM9712 codec" depends on GPIOLIB select SND_SOC_TEGRA_MACHINE_DRV select SND_SOC_TEGRA20_AC97 select SND_SOC_WM9712 help Say Y or M here if you want to add support for SoC audio on Tegra boards using the WM9712 (or compatible) codec. config SND_SOC_TEGRA_TRIMSLICE tristate "SoC Audio support for TrimSlice board" depends on I2C select SND_SOC_TEGRA_MACHINE_DRV select SND_SOC_TLV320AIC23_I2C help Say Y or M here if you want to add support for SoC audio on the TrimSlice platform. config SND_SOC_TEGRA_ALC5632 tristate "SoC Audio support for Tegra boards using an ALC5632 codec" depends on I2C && GPIOLIB select SND_SOC_TEGRA_MACHINE_DRV select SND_SOC_ALC5632 help Say Y or M here if you want to add support for SoC audio on the Toshiba AC100 netbook. config SND_SOC_TEGRA_MAX98090 tristate "SoC Audio support for Tegra boards using a MAX98090 codec" depends on I2C && GPIOLIB select SND_SOC_TEGRA_MACHINE_DRV select SND_SOC_MAX98090 help Say Y or M here if you want to add support for SoC audio on Tegra boards using the MAX98090 codec, such as Venice2. config SND_SOC_TEGRA_RT5677 tristate "SoC Audio support for Tegra boards using a RT5677 codec" depends on I2C && GPIOLIB select SND_SOC_TEGRA_MACHINE_DRV select SND_SOC_RT5677 help Say Y or M here if you want to add support for SoC audio on Tegra boards using the RT5677 codec, such as Ryu. config SND_SOC_TEGRA_SGTL5000 tristate "SoC Audio support for Tegra boards using a SGTL5000 codec" depends on I2C && GPIOLIB select SND_SOC_TEGRA_MACHINE_DRV select SND_SOC_SGTL5000 help Say Y or M here if you want to add support for SoC audio on Tegra boards using the SGTL5000 codec, such as Apalis T30, Apalis TK1 or Colibri T30. endif