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 help 82 Config to enable the Inter-IC Sound (I2S) Controller which 83 implements full-duplex and bidirectional and single direction 84 point-to-point serial interfaces. It can interface with I2S 85 compatible devices. 86 Say Y or M if you want to add support for Tegra210 I2S module. 87 88config SND_SOC_TEGRA210_OPE 89 tristate "Tegra210 OPE module" 90 help 91 Config to enable the Output Processing Engine (OPE) which includes 92 Parametric Equalizer (PEQ) and Multi Band Dynamic Range Compressor 93 (MBDRC) sub blocks for data processing. It can support up to 8 94 channels. 95 Say Y or M if you want to add support for Tegra210 OPE module. 96 97config SND_SOC_TEGRA186_ASRC 98 tristate "Tegra186 ASRC module" 99 help 100 Config to enable the Asynchronous Sample Rate Converter (ASRC), 101 which converts the sampling frequency of the input signal from 102 one frequency to another. It can handle over a wide range of 103 sample rate ratios (freq_in/freq_out) from 1:24 to 24:1. 104 ASRC has two modes of operation. One where ratio can be programmed 105 in SW and the other where it gets information from ratio estimator 106 module. 107 Say Y or M if you want to add support for Tegra186 ASRC module. 108 109config SND_SOC_TEGRA186_DSPK 110 tristate "Tegra186 DSPK module" 111 help 112 Config to enable the Digital Speaker Controller (DSPK) which 113 converts the multi-bit Pulse Code Modulation (PCM) audio input to 114 oversampled 1-bit Pulse Density Modulation (PDM) output. From the 115 signal flow perspective DSPK can be viewed as a PDM transmitter 116 that up-samples the input to the desired sampling rate by 117 interpolation and then converts the oversampled PCM input to 118 the desired 1-bit output via Delta Sigma Modulation (DSM). 119 Say Y or M if you want to add support for Tegra186 DSPK module. 120 121config SND_SOC_TEGRA210_ADMAIF 122 tristate "Tegra210 ADMAIF module" 123 help 124 Config to enable ADMAIF which is the interface between ADMA and 125 Audio Hub (AHUB). Each ADMA channel that sends/receives data to/ 126 from AHUB must interface through an ADMAIF channel. ADMA channel 127 sending data to AHUB pairs with an ADMAIF Tx channel, where as 128 ADMA channel receiving data from AHUB pairs with an ADMAIF Rx 129 channel. Buffer size is configurable for each ADMAIIF channel. 130 Say Y or M if you want to add support for Tegra210 ADMAIF module. 131 132config SND_SOC_TEGRA210_MVC 133 tristate "Tegra210 MVC module" 134 help 135 Config to enable the digital Master Volume Controller (MVC) which 136 provides gain or attenuation to a digital signal path. It can be 137 used in input or output signal path. It can be used either for 138 per-stream volume control or for master volume control. 139 Say Y or M if you want to add support for Tegra210 MVC module. 140 141config SND_SOC_TEGRA210_SFC 142 tristate "Tegra210 SFC module" 143 help 144 Config to enable the Sampling Frequency Converter (SFC) which 145 converts the sampling frequency of input signal to another 146 frequency. It supports sampling frequency conversion of streams 147 up to 2 channels (stereo). 148 Say Y or M if you want to add support for Tegra210 SFC module. 149 150config SND_SOC_TEGRA210_AMX 151 tristate "Tegra210 AMX module" 152 help 153 Config to enable the Audio Multiplexer (AMX) which can multiplex 154 four input streams (each of up to 16 channels) and generate 155 output stream (of up to 16 channels). A byte RAM helps to form an 156 output frame by any combination of bytes from the input frames. 157 Say Y or M if you want to add support for Tegra210 AMX module. 158 159config SND_SOC_TEGRA210_ADX 160 tristate "Tegra210 ADX module" 161 help 162 Config to enable the Audio Demultiplexer (ADX) which takes an 163 input stream (up to 16 channels) and demultiplexes it into four 164 output streams (each of up to 16 channels). A byte RAM helps to 165 form output frames by any combination of bytes from the input 166 frame. Its design is identical to that of byte RAM in the AMX 167 except that the data flow direction is reversed. 168 Say Y or M if you want to add support for Tegra210 ADX module. 169 170config SND_SOC_TEGRA210_MIXER 171 tristate "Tegra210 Mixer module" 172 help 173 Config to enable the Mixer module which can help to mix multiple 174 audio streams. It supports mixing of up to 10 input streams, 175 where each stream can contain maximum of 8 channels. It supports 176 5 output each of which can be a mix of any combination of 10 177 input streams. 178 Say Y or M if you want to add support for Tegra210 Mixer module. 179 180config SND_SOC_TEGRA_AUDIO_GRAPH_CARD 181 tristate "Audio Graph Card based Tegra driver" 182 depends on SND_AUDIO_GRAPH_CARD 183 help 184 Config to enable Tegra audio machine driver based on generic 185 audio graph driver. It is a thin driver written to customize 186 few things for Tegra audio. Most of the code is re-used from 187 audio graph driver and the same DT bindings are used. 188 189config SND_SOC_TEGRA_MACHINE_DRV 190 tristate 191 192config SND_SOC_TEGRA_RT5640 193 tristate "SoC Audio support for Tegra boards using an RT5640 codec" 194 depends on I2C && GPIOLIB 195 select SND_SOC_TEGRA_MACHINE_DRV 196 select SND_SOC_RT5640 197 help 198 Say Y or M here if you want to add support for SoC audio on Tegra 199 boards using the RT5640 codec, such as Dalmore. 200 201config SND_SOC_TEGRA_WM8753 202 tristate "SoC Audio support for Tegra boards using a WM8753 codec" 203 depends on I2C && GPIOLIB 204 select SND_SOC_TEGRA_MACHINE_DRV 205 select SND_SOC_WM8753 206 help 207 Say Y or M here if you want to add support for SoC audio on Tegra 208 boards using the WM8753 codec, such as Whistler. 209 210config SND_SOC_TEGRA_WM8903 211 tristate "SoC Audio support for Tegra boards using a WM8903 codec" 212 depends on I2C && GPIOLIB 213 select SND_SOC_TEGRA_MACHINE_DRV 214 select SND_SOC_WM8903 215 help 216 Say Y or M here if you want to add support for SoC audio on Tegra 217 boards using the WM8093 codec. Currently, the supported boards are 218 Harmony, Ventana, Seaboard, Kaen, and Aebl. 219 220config SND_SOC_TEGRA_WM9712 221 tristate "SoC Audio support for Tegra boards using a WM9712 codec" 222 depends on GPIOLIB 223 select SND_SOC_TEGRA_MACHINE_DRV 224 select SND_SOC_TEGRA20_AC97 225 select SND_SOC_WM9712 226 help 227 Say Y or M here if you want to add support for SoC audio on Tegra 228 boards using the WM9712 (or compatible) codec. 229 230config SND_SOC_TEGRA_TRIMSLICE 231 tristate "SoC Audio support for TrimSlice board" 232 depends on I2C 233 select SND_SOC_TEGRA_MACHINE_DRV 234 select SND_SOC_TLV320AIC23_I2C 235 help 236 Say Y or M here if you want to add support for SoC audio on the 237 TrimSlice platform. 238 239config SND_SOC_TEGRA_ALC5632 240 tristate "SoC Audio support for Tegra boards using an ALC5632 codec" 241 depends on I2C && GPIOLIB 242 select SND_SOC_TEGRA_MACHINE_DRV 243 select SND_SOC_ALC5632 244 help 245 Say Y or M here if you want to add support for SoC audio on the 246 Toshiba AC100 netbook. 247 248config SND_SOC_TEGRA_MAX98090 249 tristate "SoC Audio support for Tegra boards using a MAX98090 codec" 250 depends on I2C && GPIOLIB 251 select SND_SOC_TEGRA_MACHINE_DRV 252 select SND_SOC_MAX98090 253 help 254 Say Y or M here if you want to add support for SoC audio on Tegra 255 boards using the MAX98090 codec, such as Venice2. 256 257config SND_SOC_TEGRA_RT5677 258 tristate "SoC Audio support for Tegra boards using a RT5677 codec" 259 depends on I2C && GPIOLIB 260 select SND_SOC_TEGRA_MACHINE_DRV 261 select SND_SOC_RT5677 262 help 263 Say Y or M here if you want to add support for SoC audio on Tegra 264 boards using the RT5677 codec, such as Ryu. 265 266config SND_SOC_TEGRA_SGTL5000 267 tristate "SoC Audio support for Tegra boards using a SGTL5000 codec" 268 depends on I2C && GPIOLIB 269 select SND_SOC_TEGRA_MACHINE_DRV 270 select SND_SOC_SGTL5000 271 help 272 Say Y or M here if you want to add support for SoC audio on Tegra 273 boards using the SGTL5000 codec, such as Apalis T30, Apalis TK1 or 274 Colibri T30. 275 276endif 277