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 && TEGRA20_APB_DMA) || 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_WM9712 233 tristate "SoC Audio support for Tegra boards using a WM9712 codec" 234 depends on GPIOLIB 235 select SND_SOC_TEGRA_MACHINE_DRV 236 select SND_SOC_TEGRA20_AC97 237 select SND_SOC_WM9712 238 help 239 Say Y or M here if you want to add support for SoC audio on Tegra 240 boards using the WM9712 (or compatible) codec. 241 242config SND_SOC_TEGRA_TRIMSLICE 243 tristate "SoC Audio support for TrimSlice board" 244 depends on I2C 245 select SND_SOC_TEGRA_MACHINE_DRV 246 select SND_SOC_TLV320AIC23_I2C 247 help 248 Say Y or M here if you want to add support for SoC audio on the 249 TrimSlice platform. 250 251config SND_SOC_TEGRA_ALC5632 252 tristate "SoC Audio support for Tegra boards using an ALC5632 codec" 253 depends on I2C && GPIOLIB 254 select SND_SOC_TEGRA_MACHINE_DRV 255 select SND_SOC_ALC5632 256 help 257 Say Y or M here if you want to add support for SoC audio on the 258 Toshiba AC100 netbook. 259 260config SND_SOC_TEGRA_MAX98090 261 tristate "SoC Audio support for Tegra boards using a MAX98090 codec" 262 depends on I2C && GPIOLIB 263 select SND_SOC_TEGRA_MACHINE_DRV 264 select SND_SOC_MAX98090 265 help 266 Say Y or M here if you want to add support for SoC audio on Tegra 267 boards using the MAX98090 codec, such as Venice2. 268 269config SND_SOC_TEGRA_MAX98088 270 tristate "SoC Audio support for Tegra boards using a MAX9808x codec" 271 depends on I2C && GPIOLIB 272 select SND_SOC_TEGRA_MACHINE_DRV 273 select SND_SOC_MAX98088 274 help 275 Say Y or M here if you want to add support for SoC audio on Tegra 276 boards using the MAX98088 codec, such as LG X3. 277 278config SND_SOC_TEGRA_RT5677 279 tristate "SoC Audio support for Tegra boards using a RT5677 codec" 280 depends on I2C && GPIOLIB 281 select SND_SOC_TEGRA_MACHINE_DRV 282 select SND_SOC_RT5677 283 help 284 Say Y or M here if you want to add support for SoC audio on Tegra 285 boards using the RT5677 codec, such as Ryu. 286 287config SND_SOC_TEGRA_SGTL5000 288 tristate "SoC Audio support for Tegra boards using a SGTL5000 codec" 289 depends on I2C && GPIOLIB 290 select SND_SOC_TEGRA_MACHINE_DRV 291 select SND_SOC_SGTL5000 292 help 293 Say Y or M here if you want to add support for SoC audio on Tegra 294 boards using the SGTL5000 codec, such as Apalis T30, Apalis TK1 or 295 Colibri T30. 296 297endif 298 299endmenu 300