162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only 262306a36Sopenharmony_ciconfig SND_SOC_TEGRA 362306a36Sopenharmony_ci tristate "SoC Audio for the Tegra System-on-Chip" 462306a36Sopenharmony_ci depends on (ARCH_TEGRA && TEGRA20_APB_DMA) || COMPILE_TEST 562306a36Sopenharmony_ci depends on COMMON_CLK 662306a36Sopenharmony_ci depends on RESET_CONTROLLER 762306a36Sopenharmony_ci select REGMAP_MMIO 862306a36Sopenharmony_ci select SND_SOC_GENERIC_DMAENGINE_PCM 962306a36Sopenharmony_ci help 1062306a36Sopenharmony_ci Say Y or M here if you want support for SoC audio on Tegra. 1162306a36Sopenharmony_ci 1262306a36Sopenharmony_ciif SND_SOC_TEGRA 1362306a36Sopenharmony_ci 1462306a36Sopenharmony_ciconfig SND_SOC_TEGRA20_AC97 1562306a36Sopenharmony_ci tristate "Tegra20 AC97 interface" 1662306a36Sopenharmony_ci select SND_SOC_AC97_BUS 1762306a36Sopenharmony_ci select SND_SOC_TEGRA20_DAS 1862306a36Sopenharmony_ci help 1962306a36Sopenharmony_ci Say Y or M if you want to add support for codecs attached to the 2062306a36Sopenharmony_ci Tegra20 AC97 interface. You will also need to select the individual 2162306a36Sopenharmony_ci machine drivers to support below. 2262306a36Sopenharmony_ci 2362306a36Sopenharmony_ciconfig SND_SOC_TEGRA20_DAS 2462306a36Sopenharmony_ci tristate "Tegra20 DAS module" 2562306a36Sopenharmony_ci help 2662306a36Sopenharmony_ci Say Y or M if you want to add support for the Tegra20 DAS module. 2762306a36Sopenharmony_ci You will also need to select the individual machine drivers to 2862306a36Sopenharmony_ci support below. 2962306a36Sopenharmony_ci 3062306a36Sopenharmony_ciconfig SND_SOC_TEGRA20_I2S 3162306a36Sopenharmony_ci tristate "Tegra20 I2S interface" 3262306a36Sopenharmony_ci select SND_SOC_TEGRA20_DAS 3362306a36Sopenharmony_ci help 3462306a36Sopenharmony_ci Say Y or M if you want to add support for codecs attached to the 3562306a36Sopenharmony_ci Tegra20 I2S interface. You will also need to select the individual 3662306a36Sopenharmony_ci machine drivers to support below. 3762306a36Sopenharmony_ci 3862306a36Sopenharmony_ciconfig SND_SOC_TEGRA20_SPDIF 3962306a36Sopenharmony_ci tristate "Tegra20 SPDIF interface" 4062306a36Sopenharmony_ci help 4162306a36Sopenharmony_ci Say Y or M if you want to add support for the Tegra20 SPDIF interface. 4262306a36Sopenharmony_ci You will also need to select the individual machine drivers to support 4362306a36Sopenharmony_ci below. 4462306a36Sopenharmony_ci 4562306a36Sopenharmony_ciconfig SND_SOC_TEGRA30_AHUB 4662306a36Sopenharmony_ci tristate "Tegra30 AHUB module" 4762306a36Sopenharmony_ci help 4862306a36Sopenharmony_ci Say Y or M if you want to add support for the Tegra30 AHUB module. 4962306a36Sopenharmony_ci You will also need to select the individual machine drivers to 5062306a36Sopenharmony_ci support below. 5162306a36Sopenharmony_ci 5262306a36Sopenharmony_ciconfig SND_SOC_TEGRA30_I2S 5362306a36Sopenharmony_ci tristate "Tegra30 I2S interface" 5462306a36Sopenharmony_ci select SND_SOC_TEGRA30_AHUB 5562306a36Sopenharmony_ci help 5662306a36Sopenharmony_ci Say Y or M if you want to add support for codecs attached to the 5762306a36Sopenharmony_ci Tegra30 I2S interface. You will also need to select the individual 5862306a36Sopenharmony_ci machine drivers to support below. 5962306a36Sopenharmony_ci 6062306a36Sopenharmony_ciconfig SND_SOC_TEGRA210_AHUB 6162306a36Sopenharmony_ci tristate "Tegra210 AHUB module" 6262306a36Sopenharmony_ci help 6362306a36Sopenharmony_ci Config to enable Audio Hub (AHUB) module, which comprises of a 6462306a36Sopenharmony_ci switch called Audio Crossbar (AXBAR) used to configure or modify 6562306a36Sopenharmony_ci the audio routing path between various HW accelerators present in 6662306a36Sopenharmony_ci AHUB. 6762306a36Sopenharmony_ci Say Y or M if you want to add support for Tegra210 AHUB module. 6862306a36Sopenharmony_ci 6962306a36Sopenharmony_ciconfig SND_SOC_TEGRA210_DMIC 7062306a36Sopenharmony_ci tristate "Tegra210 DMIC module" 7162306a36Sopenharmony_ci help 7262306a36Sopenharmony_ci Config to enable the Digital MIC (DMIC) controller which is used 7362306a36Sopenharmony_ci to interface with Pulse Density Modulation (PDM) input devices. 7462306a36Sopenharmony_ci The DMIC controller implements a converter to convert PDM signals 7562306a36Sopenharmony_ci to Pulse Code Modulation (PCM) signals. This can be viewed as a 7662306a36Sopenharmony_ci PDM receiver. 7762306a36Sopenharmony_ci Say Y or M if you want to add support for Tegra210 DMIC module. 7862306a36Sopenharmony_ci 7962306a36Sopenharmony_ciconfig SND_SOC_TEGRA210_I2S 8062306a36Sopenharmony_ci tristate "Tegra210 I2S module" 8162306a36Sopenharmony_ci help 8262306a36Sopenharmony_ci Config to enable the Inter-IC Sound (I2S) Controller which 8362306a36Sopenharmony_ci implements full-duplex and bidirectional and single direction 8462306a36Sopenharmony_ci point-to-point serial interfaces. It can interface with I2S 8562306a36Sopenharmony_ci compatible devices. 8662306a36Sopenharmony_ci Say Y or M if you want to add support for Tegra210 I2S module. 8762306a36Sopenharmony_ci 8862306a36Sopenharmony_ciconfig SND_SOC_TEGRA210_OPE 8962306a36Sopenharmony_ci tristate "Tegra210 OPE module" 9062306a36Sopenharmony_ci help 9162306a36Sopenharmony_ci Config to enable the Output Processing Engine (OPE) which includes 9262306a36Sopenharmony_ci Parametric Equalizer (PEQ) and Multi Band Dynamic Range Compressor 9362306a36Sopenharmony_ci (MBDRC) sub blocks for data processing. It can support up to 8 9462306a36Sopenharmony_ci channels. 9562306a36Sopenharmony_ci Say Y or M if you want to add support for Tegra210 OPE module. 9662306a36Sopenharmony_ci 9762306a36Sopenharmony_ciconfig SND_SOC_TEGRA186_ASRC 9862306a36Sopenharmony_ci tristate "Tegra186 ASRC module" 9962306a36Sopenharmony_ci help 10062306a36Sopenharmony_ci Config to enable the Asynchronous Sample Rate Converter (ASRC), 10162306a36Sopenharmony_ci which converts the sampling frequency of the input signal from 10262306a36Sopenharmony_ci one frequency to another. It can handle over a wide range of 10362306a36Sopenharmony_ci sample rate ratios (freq_in/freq_out) from 1:24 to 24:1. 10462306a36Sopenharmony_ci ASRC has two modes of operation. One where ratio can be programmed 10562306a36Sopenharmony_ci in SW and the other where it gets information from ratio estimator 10662306a36Sopenharmony_ci module. 10762306a36Sopenharmony_ci Say Y or M if you want to add support for Tegra186 ASRC module. 10862306a36Sopenharmony_ci 10962306a36Sopenharmony_ciconfig SND_SOC_TEGRA186_DSPK 11062306a36Sopenharmony_ci tristate "Tegra186 DSPK module" 11162306a36Sopenharmony_ci help 11262306a36Sopenharmony_ci Config to enable the Digital Speaker Controller (DSPK) which 11362306a36Sopenharmony_ci converts the multi-bit Pulse Code Modulation (PCM) audio input to 11462306a36Sopenharmony_ci oversampled 1-bit Pulse Density Modulation (PDM) output. From the 11562306a36Sopenharmony_ci signal flow perspective DSPK can be viewed as a PDM transmitter 11662306a36Sopenharmony_ci that up-samples the input to the desired sampling rate by 11762306a36Sopenharmony_ci interpolation and then converts the oversampled PCM input to 11862306a36Sopenharmony_ci the desired 1-bit output via Delta Sigma Modulation (DSM). 11962306a36Sopenharmony_ci Say Y or M if you want to add support for Tegra186 DSPK module. 12062306a36Sopenharmony_ci 12162306a36Sopenharmony_ciconfig SND_SOC_TEGRA210_ADMAIF 12262306a36Sopenharmony_ci tristate "Tegra210 ADMAIF module" 12362306a36Sopenharmony_ci help 12462306a36Sopenharmony_ci Config to enable ADMAIF which is the interface between ADMA and 12562306a36Sopenharmony_ci Audio Hub (AHUB). Each ADMA channel that sends/receives data to/ 12662306a36Sopenharmony_ci from AHUB must interface through an ADMAIF channel. ADMA channel 12762306a36Sopenharmony_ci sending data to AHUB pairs with an ADMAIF Tx channel, where as 12862306a36Sopenharmony_ci ADMA channel receiving data from AHUB pairs with an ADMAIF Rx 12962306a36Sopenharmony_ci channel. Buffer size is configurable for each ADMAIIF channel. 13062306a36Sopenharmony_ci Say Y or M if you want to add support for Tegra210 ADMAIF module. 13162306a36Sopenharmony_ci 13262306a36Sopenharmony_ciconfig SND_SOC_TEGRA210_MVC 13362306a36Sopenharmony_ci tristate "Tegra210 MVC module" 13462306a36Sopenharmony_ci help 13562306a36Sopenharmony_ci Config to enable the digital Master Volume Controller (MVC) which 13662306a36Sopenharmony_ci provides gain or attenuation to a digital signal path. It can be 13762306a36Sopenharmony_ci used in input or output signal path. It can be used either for 13862306a36Sopenharmony_ci per-stream volume control or for master volume control. 13962306a36Sopenharmony_ci Say Y or M if you want to add support for Tegra210 MVC module. 14062306a36Sopenharmony_ci 14162306a36Sopenharmony_ciconfig SND_SOC_TEGRA210_SFC 14262306a36Sopenharmony_ci tristate "Tegra210 SFC module" 14362306a36Sopenharmony_ci help 14462306a36Sopenharmony_ci Config to enable the Sampling Frequency Converter (SFC) which 14562306a36Sopenharmony_ci converts the sampling frequency of input signal to another 14662306a36Sopenharmony_ci frequency. It supports sampling frequency conversion of streams 14762306a36Sopenharmony_ci up to 2 channels (stereo). 14862306a36Sopenharmony_ci Say Y or M if you want to add support for Tegra210 SFC module. 14962306a36Sopenharmony_ci 15062306a36Sopenharmony_ciconfig SND_SOC_TEGRA210_AMX 15162306a36Sopenharmony_ci tristate "Tegra210 AMX module" 15262306a36Sopenharmony_ci help 15362306a36Sopenharmony_ci Config to enable the Audio Multiplexer (AMX) which can multiplex 15462306a36Sopenharmony_ci four input streams (each of up to 16 channels) and generate 15562306a36Sopenharmony_ci output stream (of up to 16 channels). A byte RAM helps to form an 15662306a36Sopenharmony_ci output frame by any combination of bytes from the input frames. 15762306a36Sopenharmony_ci Say Y or M if you want to add support for Tegra210 AMX module. 15862306a36Sopenharmony_ci 15962306a36Sopenharmony_ciconfig SND_SOC_TEGRA210_ADX 16062306a36Sopenharmony_ci tristate "Tegra210 ADX module" 16162306a36Sopenharmony_ci help 16262306a36Sopenharmony_ci Config to enable the Audio Demultiplexer (ADX) which takes an 16362306a36Sopenharmony_ci input stream (up to 16 channels) and demultiplexes it into four 16462306a36Sopenharmony_ci output streams (each of up to 16 channels). A byte RAM helps to 16562306a36Sopenharmony_ci form output frames by any combination of bytes from the input 16662306a36Sopenharmony_ci frame. Its design is identical to that of byte RAM in the AMX 16762306a36Sopenharmony_ci except that the data flow direction is reversed. 16862306a36Sopenharmony_ci Say Y or M if you want to add support for Tegra210 ADX module. 16962306a36Sopenharmony_ci 17062306a36Sopenharmony_ciconfig SND_SOC_TEGRA210_MIXER 17162306a36Sopenharmony_ci tristate "Tegra210 Mixer module" 17262306a36Sopenharmony_ci help 17362306a36Sopenharmony_ci Config to enable the Mixer module which can help to mix multiple 17462306a36Sopenharmony_ci audio streams. It supports mixing of up to 10 input streams, 17562306a36Sopenharmony_ci where each stream can contain maximum of 8 channels. It supports 17662306a36Sopenharmony_ci 5 output each of which can be a mix of any combination of 10 17762306a36Sopenharmony_ci input streams. 17862306a36Sopenharmony_ci Say Y or M if you want to add support for Tegra210 Mixer module. 17962306a36Sopenharmony_ci 18062306a36Sopenharmony_ciconfig SND_SOC_TEGRA_AUDIO_GRAPH_CARD 18162306a36Sopenharmony_ci tristate "Audio Graph Card based Tegra driver" 18262306a36Sopenharmony_ci depends on SND_AUDIO_GRAPH_CARD 18362306a36Sopenharmony_ci help 18462306a36Sopenharmony_ci Config to enable Tegra audio machine driver based on generic 18562306a36Sopenharmony_ci audio graph driver. It is a thin driver written to customize 18662306a36Sopenharmony_ci few things for Tegra audio. Most of the code is re-used from 18762306a36Sopenharmony_ci audio graph driver and the same DT bindings are used. 18862306a36Sopenharmony_ci 18962306a36Sopenharmony_ciconfig SND_SOC_TEGRA_MACHINE_DRV 19062306a36Sopenharmony_ci tristate 19162306a36Sopenharmony_ci 19262306a36Sopenharmony_ciconfig SND_SOC_TEGRA_RT5631 19362306a36Sopenharmony_ci tristate "SoC Audio support for Tegra boards using an RT5631 codec" 19462306a36Sopenharmony_ci depends on SND_SOC_TEGRA && I2C && GPIOLIB 19562306a36Sopenharmony_ci select SND_SOC_TEGRA_MACHINE_DRV 19662306a36Sopenharmony_ci select SND_SOC_RT5631 19762306a36Sopenharmony_ci help 19862306a36Sopenharmony_ci Say Y or M here if you want to add support for SoC audio on Tegra 19962306a36Sopenharmony_ci boards using the RT5631 codec, such as Transformer. 20062306a36Sopenharmony_ci 20162306a36Sopenharmony_ciconfig SND_SOC_TEGRA_RT5640 20262306a36Sopenharmony_ci tristate "SoC Audio support for Tegra boards using an RT5640 codec" 20362306a36Sopenharmony_ci depends on I2C && GPIOLIB 20462306a36Sopenharmony_ci select SND_SOC_TEGRA_MACHINE_DRV 20562306a36Sopenharmony_ci select SND_SOC_RT5640 20662306a36Sopenharmony_ci help 20762306a36Sopenharmony_ci Say Y or M here if you want to add support for SoC audio on Tegra 20862306a36Sopenharmony_ci boards using the RT5640 codec, such as Dalmore. 20962306a36Sopenharmony_ci 21062306a36Sopenharmony_ciconfig SND_SOC_TEGRA_WM8753 21162306a36Sopenharmony_ci tristate "SoC Audio support for Tegra boards using a WM8753 codec" 21262306a36Sopenharmony_ci depends on I2C && GPIOLIB 21362306a36Sopenharmony_ci select SND_SOC_TEGRA_MACHINE_DRV 21462306a36Sopenharmony_ci select SND_SOC_WM8753 21562306a36Sopenharmony_ci help 21662306a36Sopenharmony_ci Say Y or M here if you want to add support for SoC audio on Tegra 21762306a36Sopenharmony_ci boards using the WM8753 codec, such as Whistler. 21862306a36Sopenharmony_ci 21962306a36Sopenharmony_ciconfig SND_SOC_TEGRA_WM8903 22062306a36Sopenharmony_ci tristate "SoC Audio support for Tegra boards using a WM8903 codec" 22162306a36Sopenharmony_ci depends on I2C && GPIOLIB 22262306a36Sopenharmony_ci select SND_SOC_TEGRA_MACHINE_DRV 22362306a36Sopenharmony_ci select SND_SOC_WM8903 22462306a36Sopenharmony_ci help 22562306a36Sopenharmony_ci Say Y or M here if you want to add support for SoC audio on Tegra 22662306a36Sopenharmony_ci boards using the WM8093 codec. Currently, the supported boards are 22762306a36Sopenharmony_ci Harmony, Ventana, Seaboard, Kaen, and Aebl. 22862306a36Sopenharmony_ci 22962306a36Sopenharmony_ciconfig SND_SOC_TEGRA_WM9712 23062306a36Sopenharmony_ci tristate "SoC Audio support for Tegra boards using a WM9712 codec" 23162306a36Sopenharmony_ci depends on GPIOLIB 23262306a36Sopenharmony_ci select SND_SOC_TEGRA_MACHINE_DRV 23362306a36Sopenharmony_ci select SND_SOC_TEGRA20_AC97 23462306a36Sopenharmony_ci select SND_SOC_WM9712 23562306a36Sopenharmony_ci help 23662306a36Sopenharmony_ci Say Y or M here if you want to add support for SoC audio on Tegra 23762306a36Sopenharmony_ci boards using the WM9712 (or compatible) codec. 23862306a36Sopenharmony_ci 23962306a36Sopenharmony_ciconfig SND_SOC_TEGRA_TRIMSLICE 24062306a36Sopenharmony_ci tristate "SoC Audio support for TrimSlice board" 24162306a36Sopenharmony_ci depends on I2C 24262306a36Sopenharmony_ci select SND_SOC_TEGRA_MACHINE_DRV 24362306a36Sopenharmony_ci select SND_SOC_TLV320AIC23_I2C 24462306a36Sopenharmony_ci help 24562306a36Sopenharmony_ci Say Y or M here if you want to add support for SoC audio on the 24662306a36Sopenharmony_ci TrimSlice platform. 24762306a36Sopenharmony_ci 24862306a36Sopenharmony_ciconfig SND_SOC_TEGRA_ALC5632 24962306a36Sopenharmony_ci tristate "SoC Audio support for Tegra boards using an ALC5632 codec" 25062306a36Sopenharmony_ci depends on I2C && GPIOLIB 25162306a36Sopenharmony_ci select SND_SOC_TEGRA_MACHINE_DRV 25262306a36Sopenharmony_ci select SND_SOC_ALC5632 25362306a36Sopenharmony_ci help 25462306a36Sopenharmony_ci Say Y or M here if you want to add support for SoC audio on the 25562306a36Sopenharmony_ci Toshiba AC100 netbook. 25662306a36Sopenharmony_ci 25762306a36Sopenharmony_ciconfig SND_SOC_TEGRA_MAX98090 25862306a36Sopenharmony_ci tristate "SoC Audio support for Tegra boards using a MAX98090 codec" 25962306a36Sopenharmony_ci depends on I2C && GPIOLIB 26062306a36Sopenharmony_ci select SND_SOC_TEGRA_MACHINE_DRV 26162306a36Sopenharmony_ci select SND_SOC_MAX98090 26262306a36Sopenharmony_ci help 26362306a36Sopenharmony_ci Say Y or M here if you want to add support for SoC audio on Tegra 26462306a36Sopenharmony_ci boards using the MAX98090 codec, such as Venice2. 26562306a36Sopenharmony_ci 26662306a36Sopenharmony_ciconfig SND_SOC_TEGRA_MAX98088 26762306a36Sopenharmony_ci tristate "SoC Audio support for Tegra boards using a MAX9808x codec" 26862306a36Sopenharmony_ci depends on I2C && GPIOLIB 26962306a36Sopenharmony_ci select SND_SOC_TEGRA_MACHINE_DRV 27062306a36Sopenharmony_ci select SND_SOC_MAX98088 27162306a36Sopenharmony_ci help 27262306a36Sopenharmony_ci Say Y or M here if you want to add support for SoC audio on Tegra 27362306a36Sopenharmony_ci boards using the MAX98088 codec, such as LG X3. 27462306a36Sopenharmony_ci 27562306a36Sopenharmony_ciconfig SND_SOC_TEGRA_RT5677 27662306a36Sopenharmony_ci tristate "SoC Audio support for Tegra boards using a RT5677 codec" 27762306a36Sopenharmony_ci depends on I2C && GPIOLIB 27862306a36Sopenharmony_ci select SND_SOC_TEGRA_MACHINE_DRV 27962306a36Sopenharmony_ci select SND_SOC_RT5677 28062306a36Sopenharmony_ci help 28162306a36Sopenharmony_ci Say Y or M here if you want to add support for SoC audio on Tegra 28262306a36Sopenharmony_ci boards using the RT5677 codec, such as Ryu. 28362306a36Sopenharmony_ci 28462306a36Sopenharmony_ciconfig SND_SOC_TEGRA_SGTL5000 28562306a36Sopenharmony_ci tristate "SoC Audio support for Tegra boards using a SGTL5000 codec" 28662306a36Sopenharmony_ci depends on I2C && GPIOLIB 28762306a36Sopenharmony_ci select SND_SOC_TEGRA_MACHINE_DRV 28862306a36Sopenharmony_ci select SND_SOC_SGTL5000 28962306a36Sopenharmony_ci help 29062306a36Sopenharmony_ci Say Y or M here if you want to add support for SoC audio on Tegra 29162306a36Sopenharmony_ci boards using the SGTL5000 codec, such as Apalis T30, Apalis TK1 or 29262306a36Sopenharmony_ci Colibri T30. 29362306a36Sopenharmony_ci 29462306a36Sopenharmony_ciendif 295