1# SPDX-License-Identifier: GPL-2.0-only 2config SND_SOC_TEGRA 3 tristate "SoC Audio for the Tegra System-on-Chip" 4 depends on (ARCH_TEGRA && TEGRA20_APB_DMA) || COMPILE_TEST 5 depends on COMMON_CLK 6 depends on RESET_CONTROLLER 7 select REGMAP_MMIO 8 select SND_SOC_GENERIC_DMAENGINE_PCM 9 help 10 Say Y or M here if you want support for SoC audio on Tegra. 11 12if SND_SOC_TEGRA 13 14config SND_SOC_TEGRA20_AC97 15 tristate "Tegra20 AC97 interface" 16 select SND_SOC_AC97_BUS 17 select SND_SOC_TEGRA20_DAS 18 help 19 Say Y or M if you want to add support for codecs attached to the 20 Tegra20 AC97 interface. You will also need to select the individual 21 machine drivers to support below. 22 23config SND_SOC_TEGRA20_DAS 24 tristate "Tegra20 DAS module" 25 help 26 Say Y or M if you want to add support for the Tegra20 DAS module. 27 You will also need to select the individual machine drivers to 28 support below. 29 30config SND_SOC_TEGRA20_I2S 31 tristate "Tegra20 I2S interface" 32 select SND_SOC_TEGRA20_DAS 33 help 34 Say Y or M if you want to add support for codecs attached to the 35 Tegra20 I2S interface. You will also need to select the individual 36 machine drivers to support below. 37 38config SND_SOC_TEGRA20_SPDIF 39 tristate "Tegra20 SPDIF interface" 40 help 41 Say Y or M if you want to add support for the Tegra20 SPDIF interface. 42 You will also need to select the individual machine drivers to support 43 below. 44 45config SND_SOC_TEGRA30_AHUB 46 tristate "Tegra30 AHUB module" 47 help 48 Say Y or M if you want to add support for the Tegra30 AHUB module. 49 You will also need to select the individual machine drivers to 50 support below. 51 52config SND_SOC_TEGRA30_I2S 53 tristate "Tegra30 I2S interface" 54 select SND_SOC_TEGRA30_AHUB 55 help 56 Say Y or M if you want to add support for codecs attached to the 57 Tegra30 I2S interface. You will also need to select the individual 58 machine drivers to support below. 59 60config SND_SOC_TEGRA210_AHUB 61 tristate "Tegra210 AHUB module" 62 help 63 Config to enable Audio Hub (AHUB) module, which comprises of a 64 switch called Audio Crossbar (AXBAR) used to configure or modify 65 the audio routing path between various HW accelerators present in 66 AHUB. 67 Say Y or M if you want to add support for Tegra210 AHUB module. 68 69config SND_SOC_TEGRA210_DMIC 70 tristate "Tegra210 DMIC module" 71 help 72 Config to enable the Digital MIC (DMIC) controller which is used 73 to interface with Pulse Density Modulation (PDM) input devices. 74 The DMIC controller implements a converter to convert PDM signals 75 to Pulse Code Modulation (PCM) signals. This can be viewed as a 76 PDM receiver. 77 Say Y or M if you want to add support for Tegra210 DMIC module. 78 79config SND_SOC_TEGRA210_I2S 80 tristate "Tegra210 I2S module" 81 select SND_SIMPLE_CARD_UTILS 82 help 83 Config to enable the Inter-IC Sound (I2S) Controller which 84 implements full-duplex and bidirectional and single direction 85 point-to-point serial interfaces. It can interface with I2S 86 compatible devices. 87 Say Y or M if you want to add support for Tegra210 I2S module. 88 89config SND_SOC_TEGRA210_OPE 90 tristate "Tegra210 OPE module" 91 help 92 Config to enable the Output Processing Engine (OPE) which includes 93 Parametric Equalizer (PEQ) and Multi Band Dynamic Range Compressor 94 (MBDRC) sub blocks for data processing. It can support up to 8 95 channels. 96 Say Y or M if you want to add support for Tegra210 OPE module. 97 98config SND_SOC_TEGRA186_ASRC 99 tristate "Tegra186 ASRC module" 100 help 101 Config to enable the Asynchronous Sample Rate Converter (ASRC), 102 which converts the sampling frequency of the input signal from 103 one frequency to another. It can handle over a wide range of 104 sample rate ratios (freq_in/freq_out) from 1:24 to 24:1. 105 ASRC has two modes of operation. One where ratio can be programmed 106 in SW and the other where it gets information from ratio estimator 107 module. 108 Say Y or M if you want to add support for Tegra186 ASRC module. 109 110config SND_SOC_TEGRA186_DSPK 111 tristate "Tegra186 DSPK module" 112 help 113 Config to enable the Digital Speaker Controller (DSPK) which 114 converts the multi-bit Pulse Code Modulation (PCM) audio input to 115 oversampled 1-bit Pulse Density Modulation (PDM) output. From the 116 signal flow perspective DSPK can be viewed as a PDM transmitter 117 that up-samples the input to the desired sampling rate by 118 interpolation and then converts the oversampled PCM input to 119 the desired 1-bit output via Delta Sigma Modulation (DSM). 120 Say Y or M if you want to add support for Tegra186 DSPK module. 121 122config SND_SOC_TEGRA210_ADMAIF 123 tristate "Tegra210 ADMAIF module" 124 help 125 Config to enable ADMAIF which is the interface between ADMA and 126 Audio Hub (AHUB). Each ADMA channel that sends/receives data to/ 127 from AHUB must interface through an ADMAIF channel. ADMA channel 128 sending data to AHUB pairs with an ADMAIF Tx channel, where as 129 ADMA channel receiving data from AHUB pairs with an ADMAIF Rx 130 channel. Buffer size is configurable for each ADMAIIF channel. 131 Say Y or M if you want to add support for Tegra210 ADMAIF module. 132 133config SND_SOC_TEGRA210_MVC 134 tristate "Tegra210 MVC module" 135 help 136 Config to enable the digital Master Volume Controller (MVC) which 137 provides gain or attenuation to a digital signal path. It can be 138 used in input or output signal path. It can be used either for 139 per-stream volume control or for master volume control. 140 Say Y or M if you want to add support for Tegra210 MVC module. 141 142config SND_SOC_TEGRA210_SFC 143 tristate "Tegra210 SFC module" 144 help 145 Config to enable the Sampling Frequency Converter (SFC) which 146 converts the sampling frequency of input signal to another 147 frequency. It supports sampling frequency conversion of streams 148 up to 2 channels (stereo). 149 Say Y or M if you want to add support for Tegra210 SFC module. 150 151config SND_SOC_TEGRA210_AMX 152 tristate "Tegra210 AMX module" 153 help 154 Config to enable the Audio Multiplexer (AMX) which can multiplex 155 four input streams (each of up to 16 channels) and generate 156 output stream (of up to 16 channels). A byte RAM helps to form an 157 output frame by any combination of bytes from the input frames. 158 Say Y or M if you want to add support for Tegra210 AMX module. 159 160config SND_SOC_TEGRA210_ADX 161 tristate "Tegra210 ADX module" 162 help 163 Config to enable the Audio Demultiplexer (ADX) which takes an 164 input stream (up to 16 channels) and demultiplexes it into four 165 output streams (each of up to 16 channels). A byte RAM helps to 166 form output frames by any combination of bytes from the input 167 frame. Its design is identical to that of byte RAM in the AMX 168 except that the data flow direction is reversed. 169 Say Y or M if you want to add support for Tegra210 ADX module. 170 171config SND_SOC_TEGRA210_MIXER 172 tristate "Tegra210 Mixer module" 173 help 174 Config to enable the Mixer module which can help to mix multiple 175 audio streams. It supports mixing of up to 10 input streams, 176 where each stream can contain maximum of 8 channels. It supports 177 5 output each of which can be a mix of any combination of 10 178 input streams. 179 Say Y or M if you want to add support for Tegra210 Mixer module. 180 181config SND_SOC_TEGRA_AUDIO_GRAPH_CARD 182 tristate "Audio Graph Card based Tegra driver" 183 depends on SND_AUDIO_GRAPH_CARD 184 help 185 Config to enable Tegra audio machine driver based on generic 186 audio graph driver. It is a thin driver written to customize 187 few things for Tegra audio. Most of the code is re-used from 188 audio graph driver and the same DT bindings are used. 189 190config SND_SOC_TEGRA_MACHINE_DRV 191 tristate 192 193config SND_SOC_TEGRA_RT5631 194 tristate "SoC Audio support for Tegra boards using an RT5631 codec" 195 depends on SND_SOC_TEGRA && I2C && GPIOLIB 196 select SND_SOC_TEGRA_MACHINE_DRV 197 select SND_SOC_RT5631 198 help 199 Say Y or M here if you want to add support for SoC audio on Tegra 200 boards using the RT5631 codec, such as Transformer. 201 202config SND_SOC_TEGRA_RT5640 203 tristate "SoC Audio support for Tegra boards using an RT5640 codec" 204 depends on I2C && GPIOLIB 205 select SND_SOC_TEGRA_MACHINE_DRV 206 select SND_SOC_RT5640 207 help 208 Say Y or M here if you want to add support for SoC audio on Tegra 209 boards using the RT5640 codec, such as Dalmore. 210 211config SND_SOC_TEGRA_WM8753 212 tristate "SoC Audio support for Tegra boards using a WM8753 codec" 213 depends on I2C && GPIOLIB 214 select SND_SOC_TEGRA_MACHINE_DRV 215 select SND_SOC_WM8753 216 help 217 Say Y or M here if you want to add support for SoC audio on Tegra 218 boards using the WM8753 codec, such as Whistler. 219 220config SND_SOC_TEGRA_WM8903 221 tristate "SoC Audio support for Tegra boards using a WM8903 codec" 222 depends on I2C && GPIOLIB 223 select SND_SOC_TEGRA_MACHINE_DRV 224 select SND_SOC_WM8903 225 help 226 Say Y or M here if you want to add support for SoC audio on Tegra 227 boards using the WM8093 codec. Currently, the supported boards are 228 Harmony, Ventana, Seaboard, Kaen, and Aebl. 229 230config SND_SOC_TEGRA_WM9712 231 tristate "SoC Audio support for Tegra boards using a WM9712 codec" 232 depends on GPIOLIB 233 select SND_SOC_TEGRA_MACHINE_DRV 234 select SND_SOC_TEGRA20_AC97 235 select SND_SOC_WM9712 236 help 237 Say Y or M here if you want to add support for SoC audio on Tegra 238 boards using the WM9712 (or compatible) codec. 239 240config SND_SOC_TEGRA_TRIMSLICE 241 tristate "SoC Audio support for TrimSlice board" 242 depends on I2C 243 select SND_SOC_TEGRA_MACHINE_DRV 244 select SND_SOC_TLV320AIC23_I2C 245 help 246 Say Y or M here if you want to add support for SoC audio on the 247 TrimSlice platform. 248 249config SND_SOC_TEGRA_ALC5632 250 tristate "SoC Audio support for Tegra boards using an ALC5632 codec" 251 depends on I2C && GPIOLIB 252 select SND_SOC_TEGRA_MACHINE_DRV 253 select SND_SOC_ALC5632 254 help 255 Say Y or M here if you want to add support for SoC audio on the 256 Toshiba AC100 netbook. 257 258config SND_SOC_TEGRA_MAX98090 259 tristate "SoC Audio support for Tegra boards using a MAX98090 codec" 260 depends on I2C && GPIOLIB 261 select SND_SOC_TEGRA_MACHINE_DRV 262 select SND_SOC_MAX98090 263 help 264 Say Y or M here if you want to add support for SoC audio on Tegra 265 boards using the MAX98090 codec, such as Venice2. 266 267config SND_SOC_TEGRA_MAX98088 268 tristate "SoC Audio support for Tegra boards using a MAX9808x codec" 269 depends on I2C && GPIOLIB 270 select SND_SOC_TEGRA_MACHINE_DRV 271 select SND_SOC_MAX98088 272 help 273 Say Y or M here if you want to add support for SoC audio on Tegra 274 boards using the MAX98088 codec, such as LG X3. 275 276config SND_SOC_TEGRA_RT5677 277 tristate "SoC Audio support for Tegra boards using a RT5677 codec" 278 depends on I2C && GPIOLIB 279 select SND_SOC_TEGRA_MACHINE_DRV 280 select SND_SOC_RT5677 281 help 282 Say Y or M here if you want to add support for SoC audio on Tegra 283 boards using the RT5677 codec, such as Ryu. 284 285config SND_SOC_TEGRA_SGTL5000 286 tristate "SoC Audio support for Tegra boards using a SGTL5000 codec" 287 depends on I2C && GPIOLIB 288 select SND_SOC_TEGRA_MACHINE_DRV 289 select SND_SOC_SGTL5000 290 help 291 Say Y or M here if you want to add support for SoC audio on Tegra 292 boards using the SGTL5000 codec, such as Apalis T30, Apalis TK1 or 293 Colibri T30. 294 295endif 296