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