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"
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
86 Say Y or M if you want to add support for Tegra210 I2S module.
88 config SND_SOC_TEGRA186_DSPK
89 tristate "Tegra186 DSPK module"
91 Config to enable the Digital Speaker Controller (DSPK) which
92 converts the multi-bit Pulse Code Modulation (PCM) audio input to
93 oversampled 1-bit Pulse Density Modulation (PDM) output. From the
94 signal flow perspective DSPK can be viewed as a PDM transmitter
95 that up-samples the input to the desired sampling rate by
96 interpolation and then converts the oversampled PCM input to
97 the desired 1-bit output via Delta Sigma Modulation (DSM).
98 Say Y or M if you want to add support for Tegra186 DSPK module.
100 config SND_SOC_TEGRA210_ADMAIF
101 tristate "Tegra210 ADMAIF module"
103 Config to enable ADMAIF which is the interface between ADMA and
104 Audio Hub (AHUB). Each ADMA channel that sends/receives data to/
105 from AHUB must interface through an ADMAIF channel. ADMA channel
106 sending data to AHUB pairs with an ADMAIF Tx channel, where as
107 ADMA channel receiving data from AHUB pairs with an ADMAIF Rx
108 channel. Buffer size is configurable for each ADMAIIF channel.
109 Say Y or M if you want to add support for Tegra210 ADMAIF module.
111 config SND_SOC_TEGRA210_MVC
112 tristate "Tegra210 MVC module"
114 Config to enable the digital Master Volume Controller (MVC) which
115 provides gain or attenuation to a digital signal path. It can be
116 used in input or output signal path. It can be used either for
117 per-stream volume control or for master volume control.
118 Say Y or M if you want to add support for Tegra210 MVC module.
120 config SND_SOC_TEGRA210_SFC
121 tristate "Tegra210 SFC module"
123 Config to enable the Sampling Frequency Converter (SFC) which
124 converts the sampling frequency of input signal to another
125 frequency. It supports sampling frequency conversion of streams
126 upto 2 channels (stereo).
127 Say Y or M if you want to add support for Tegra210 SFC module.
129 config SND_SOC_TEGRA210_AMX
130 tristate "Tegra210 AMX module"
132 Config to enable the Audio Multiplexer (AMX) which can multiplex
133 four input streams (each of up to 16 channels) and generate
134 output stream (of up to 16 channels). A byte RAM helps to form an
135 output frame by any combination of bytes from the input frames.
136 Say Y or M if you want to add support for Tegra210 AMX module.
138 config SND_SOC_TEGRA210_ADX
139 tristate "Tegra210 ADX module"
141 Config to enable the Audio Demultiplexer (ADX) which takes an
142 input stream (up to 16 channels) and demultiplexes it into four
143 output streams (each of up to 16 channels). A byte RAM helps to
144 form output frames by any combination of bytes from the input
145 frame. Its design is identical to that of byte RAM in the AMX
146 except that the data flow direction is reversed.
147 Say Y or M if you want to add support for Tegra210 ADX module.
149 config SND_SOC_TEGRA210_MIXER
150 tristate "Tegra210 Mixer module"
152 Config to enable the Mixer module which can help to mix multiple
153 audio streams. It supports mixing of upto 10 input streams,
154 where each stream can contain maximum of 8 channels. It supports
155 5 output each of which can be a mix of any combination of 10
157 Say Y or M if you want to add support for Tegra210 Mixer module.
159 config SND_SOC_TEGRA_AUDIO_GRAPH_CARD
160 tristate "Audio Graph Card based Tegra driver"
161 depends on SND_AUDIO_GRAPH_CARD
163 Config to enable Tegra audio machine driver based on generic
164 audio graph driver. It is a thin driver written to customize
165 few things for Tegra audio. Most of the code is re-used from
166 audio graph driver and the same DT bindings are used.
168 config SND_SOC_TEGRA_MACHINE_DRV
171 config SND_SOC_TEGRA_RT5640
172 tristate "SoC Audio support for Tegra boards using an RT5640 codec"
173 depends on I2C && GPIOLIB
174 select SND_SOC_TEGRA_MACHINE_DRV
175 select SND_SOC_RT5640
177 Say Y or M here if you want to add support for SoC audio on Tegra
178 boards using the RT5640 codec, such as Dalmore.
180 config SND_SOC_TEGRA_WM8753
181 tristate "SoC Audio support for Tegra boards using a WM8753 codec"
182 depends on I2C && GPIOLIB
183 select SND_SOC_TEGRA_MACHINE_DRV
184 select SND_SOC_WM8753
186 Say Y or M here if you want to add support for SoC audio on Tegra
187 boards using the WM8753 codec, such as Whistler.
189 config SND_SOC_TEGRA_WM8903
190 tristate "SoC Audio support for Tegra boards using a WM8903 codec"
191 depends on I2C && GPIOLIB
192 select SND_SOC_TEGRA_MACHINE_DRV
193 select SND_SOC_WM8903
195 Say Y or M here if you want to add support for SoC audio on Tegra
196 boards using the WM8093 codec. Currently, the supported boards are
197 Harmony, Ventana, Seaboard, Kaen, and Aebl.
199 config SND_SOC_TEGRA_WM9712
200 tristate "SoC Audio support for Tegra boards using a WM9712 codec"
202 select SND_SOC_TEGRA_MACHINE_DRV
203 select SND_SOC_TEGRA20_AC97
204 select SND_SOC_WM9712
206 Say Y or M here if you want to add support for SoC audio on Tegra
207 boards using the WM9712 (or compatible) codec.
209 config SND_SOC_TEGRA_TRIMSLICE
210 tristate "SoC Audio support for TrimSlice board"
212 select SND_SOC_TEGRA_MACHINE_DRV
213 select SND_SOC_TLV320AIC23_I2C
215 Say Y or M here if you want to add support for SoC audio on the
218 config SND_SOC_TEGRA_ALC5632
219 tristate "SoC Audio support for Tegra boards using an ALC5632 codec"
220 depends on I2C && GPIOLIB
221 select SND_SOC_TEGRA_MACHINE_DRV
222 select SND_SOC_ALC5632
224 Say Y or M here if you want to add support for SoC audio on the
225 Toshiba AC100 netbook.
227 config SND_SOC_TEGRA_MAX98090
228 tristate "SoC Audio support for Tegra boards using a MAX98090 codec"
229 depends on I2C && GPIOLIB
230 select SND_SOC_TEGRA_MACHINE_DRV
231 select SND_SOC_MAX98090
233 Say Y or M here if you want to add support for SoC audio on Tegra
234 boards using the MAX98090 codec, such as Venice2.
236 config SND_SOC_TEGRA_RT5677
237 tristate "SoC Audio support for Tegra boards using a RT5677 codec"
238 depends on I2C && GPIOLIB
239 select SND_SOC_TEGRA_MACHINE_DRV
240 select SND_SOC_RT5677
242 Say Y or M here if you want to add support for SoC audio on Tegra
243 boards using the RT5677 codec, such as Ryu.
245 config SND_SOC_TEGRA_SGTL5000
246 tristate "SoC Audio support for Tegra boards using a SGTL5000 codec"
247 depends on I2C && GPIOLIB
248 select SND_SOC_TEGRA_MACHINE_DRV
249 select SND_SOC_SGTL5000
251 Say Y or M here if you want to add support for SoC audio on Tegra
252 boards using the SGTL5000 codec, such as Apalis T30, Apalis TK1 or