Linux 6.7-rc7
[linux-modified.git] / sound / soc / tegra / Kconfig
1 # SPDX-License-Identifier: GPL-2.0-only
2 config 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
12 if SND_SOC_TEGRA
13
14 config 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
23 config 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
30 config 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
38 config 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
45 config 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
52 config 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
60 config 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
69 config 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
79 config 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
88 config 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
97 config 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
109 config 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
121 config 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
132 config 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
141 config 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
150 config 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
159 config 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
170 config 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
180 config 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
189 config SND_SOC_TEGRA_MACHINE_DRV
190         tristate
191
192 config SND_SOC_TEGRA_RT5631
193         tristate "SoC Audio support for Tegra boards using an RT5631 codec"
194         depends on SND_SOC_TEGRA && I2C && GPIOLIB
195         select SND_SOC_TEGRA_MACHINE_DRV
196         select SND_SOC_RT5631
197         help
198           Say Y or M here if you want to add support for SoC audio on Tegra
199           boards using the RT5631 codec, such as Transformer.
200
201 config SND_SOC_TEGRA_RT5640
202         tristate "SoC Audio support for Tegra boards using an RT5640 codec"
203         depends on I2C && GPIOLIB
204         select SND_SOC_TEGRA_MACHINE_DRV
205         select SND_SOC_RT5640
206         help
207           Say Y or M here if you want to add support for SoC audio on Tegra
208           boards using the RT5640 codec, such as Dalmore.
209
210 config SND_SOC_TEGRA_WM8753
211         tristate "SoC Audio support for Tegra boards using a WM8753 codec"
212         depends on I2C && GPIOLIB
213         select SND_SOC_TEGRA_MACHINE_DRV
214         select SND_SOC_WM8753
215         help
216           Say Y or M here if you want to add support for SoC audio on Tegra
217           boards using the WM8753 codec, such as Whistler.
218
219 config SND_SOC_TEGRA_WM8903
220         tristate "SoC Audio support for Tegra boards using a WM8903 codec"
221         depends on I2C && GPIOLIB
222         select SND_SOC_TEGRA_MACHINE_DRV
223         select SND_SOC_WM8903
224         help
225           Say Y or M here if you want to add support for SoC audio on Tegra
226           boards using the WM8093 codec. Currently, the supported boards are
227           Harmony, Ventana, Seaboard, Kaen, and Aebl.
228
229 config SND_SOC_TEGRA_WM9712
230         tristate "SoC Audio support for Tegra boards using a WM9712 codec"
231         depends on GPIOLIB
232         select SND_SOC_TEGRA_MACHINE_DRV
233         select SND_SOC_TEGRA20_AC97
234         select SND_SOC_WM9712
235         help
236           Say Y or M here if you want to add support for SoC audio on Tegra
237           boards using the WM9712 (or compatible) codec.
238
239 config SND_SOC_TEGRA_TRIMSLICE
240         tristate "SoC Audio support for TrimSlice board"
241         depends on I2C
242         select SND_SOC_TEGRA_MACHINE_DRV
243         select SND_SOC_TLV320AIC23_I2C
244         help
245           Say Y or M here if you want to add support for SoC audio on the
246           TrimSlice platform.
247
248 config SND_SOC_TEGRA_ALC5632
249         tristate "SoC Audio support for Tegra boards using an ALC5632 codec"
250         depends on I2C && GPIOLIB
251         select SND_SOC_TEGRA_MACHINE_DRV
252         select SND_SOC_ALC5632
253         help
254           Say Y or M here if you want to add support for SoC audio on the
255           Toshiba AC100 netbook.
256
257 config SND_SOC_TEGRA_MAX98090
258         tristate "SoC Audio support for Tegra boards using a MAX98090 codec"
259         depends on I2C && GPIOLIB
260         select SND_SOC_TEGRA_MACHINE_DRV
261         select SND_SOC_MAX98090
262         help
263           Say Y or M here if you want to add support for SoC audio on Tegra
264           boards using the MAX98090 codec, such as Venice2.
265
266 config SND_SOC_TEGRA_MAX98088
267         tristate "SoC Audio support for Tegra boards using a MAX9808x codec"
268         depends on I2C && GPIOLIB
269         select SND_SOC_TEGRA_MACHINE_DRV
270         select SND_SOC_MAX98088
271         help
272           Say Y or M here if you want to add support for SoC audio on Tegra
273           boards using the MAX98088 codec, such as LG X3.
274
275 config SND_SOC_TEGRA_RT5677
276         tristate "SoC Audio support for Tegra boards using a RT5677 codec"
277         depends on I2C && GPIOLIB
278         select SND_SOC_TEGRA_MACHINE_DRV
279         select SND_SOC_RT5677
280         help
281           Say Y or M here if you want to add support for SoC audio on Tegra
282           boards using the RT5677 codec, such as Ryu.
283
284 config SND_SOC_TEGRA_SGTL5000
285         tristate "SoC Audio support for Tegra boards using a SGTL5000 codec"
286         depends on I2C && GPIOLIB
287         select SND_SOC_TEGRA_MACHINE_DRV
288         select SND_SOC_SGTL5000
289         help
290           Say Y or M here if you want to add support for SoC audio on Tegra
291           boards using the SGTL5000 codec, such as Apalis T30, Apalis TK1 or
292           Colibri T30.
293
294 endif