1 # SPDX-License-Identifier: GPL-2.0-only
3 tristate "SoC Audio for the Tegra System-on-Chip"
4 depends on (ARCH_TEGRA && TEGRA20_APB_DMA) || COMPILE_TEST
6 depends on RESET_CONTROLLER
8 select SND_SOC_GENERIC_DMAENGINE_PCM
10 Say Y or M here if you want support for SoC audio on Tegra.
14 config SND_SOC_TEGRA20_AC97
15 tristate "Tegra20 AC97 interface"
16 select SND_SOC_AC97_BUS
17 select SND_SOC_TEGRA20_DAS
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.
23 config SND_SOC_TEGRA20_DAS
24 tristate "Tegra20 DAS module"
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
30 config SND_SOC_TEGRA20_I2S
31 tristate "Tegra20 I2S interface"
32 select SND_SOC_TEGRA20_DAS
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.
38 config SND_SOC_TEGRA20_SPDIF
39 tristate "Tegra20 SPDIF interface"
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
45 config SND_SOC_TEGRA30_AHUB
46 tristate "Tegra30 AHUB module"
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
52 config SND_SOC_TEGRA30_I2S
53 tristate "Tegra30 I2S interface"
54 select SND_SOC_TEGRA30_AHUB
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.
60 config SND_SOC_TEGRA210_AHUB
61 tristate "Tegra210 AHUB module"
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
67 Say Y or M if you want to add support for Tegra210 AHUB module.
69 config SND_SOC_TEGRA210_DMIC
70 tristate "Tegra210 DMIC module"
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
77 Say Y or M if you want to add support for Tegra210 DMIC module.
79 config SND_SOC_TEGRA210_I2S
80 tristate "Tegra210 I2S module"
81 select SND_SIMPLE_CARD_UTILS
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
87 Say Y or M if you want to add support for Tegra210 I2S module.
89 config SND_SOC_TEGRA210_OPE
90 tristate "Tegra210 OPE module"
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
96 Say Y or M if you want to add support for Tegra210 OPE module.
98 config SND_SOC_TEGRA186_ASRC
99 tristate "Tegra186 ASRC module"
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
108 Say Y or M if you want to add support for Tegra186 ASRC module.
110 config SND_SOC_TEGRA186_DSPK
111 tristate "Tegra186 DSPK module"
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.
122 config SND_SOC_TEGRA210_ADMAIF
123 tristate "Tegra210 ADMAIF module"
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.
133 config SND_SOC_TEGRA210_MVC
134 tristate "Tegra210 MVC module"
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.
142 config SND_SOC_TEGRA210_SFC
143 tristate "Tegra210 SFC module"
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.
151 config SND_SOC_TEGRA210_AMX
152 tristate "Tegra210 AMX module"
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.
160 config SND_SOC_TEGRA210_ADX
161 tristate "Tegra210 ADX module"
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.
171 config SND_SOC_TEGRA210_MIXER
172 tristate "Tegra210 Mixer module"
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
179 Say Y or M if you want to add support for Tegra210 Mixer module.
181 config SND_SOC_TEGRA_AUDIO_GRAPH_CARD
182 tristate "Audio Graph Card based Tegra driver"
183 depends on SND_AUDIO_GRAPH_CARD
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.
190 config SND_SOC_TEGRA_MACHINE_DRV
193 config 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
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.
202 config 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
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.
211 config 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
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.
220 config 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
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.
230 config SND_SOC_TEGRA_WM9712
231 tristate "SoC Audio support for Tegra boards using a WM9712 codec"
233 select SND_SOC_TEGRA_MACHINE_DRV
234 select SND_SOC_TEGRA20_AC97
235 select SND_SOC_WM9712
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.
240 config SND_SOC_TEGRA_TRIMSLICE
241 tristate "SoC Audio support for TrimSlice board"
243 select SND_SOC_TEGRA_MACHINE_DRV
244 select SND_SOC_TLV320AIC23_I2C
246 Say Y or M here if you want to add support for SoC audio on the
249 config 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
255 Say Y or M here if you want to add support for SoC audio on the
256 Toshiba AC100 netbook.
258 config 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
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.
267 config 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
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.
276 config 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
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.
285 config 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
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