Merge branch 'kvm-5.16-fixes' into kvm-master
[linux-2.6-microblaze.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_TEGRA186_DSPK
89         tristate "Tegra186 DSPK module"
90         help
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.
99
100 config SND_SOC_TEGRA210_ADMAIF
101         tristate "Tegra210 ADMAIF module"
102         help
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.
110
111 config SND_SOC_TEGRA210_MVC
112         tristate "Tegra210 MVC module"
113         help
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.
119
120 config SND_SOC_TEGRA210_SFC
121         tristate "Tegra210 SFC module"
122         help
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.
128
129 config SND_SOC_TEGRA210_AMX
130         tristate "Tegra210 AMX module"
131         help
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.
137
138 config SND_SOC_TEGRA210_ADX
139         tristate "Tegra210 ADX module"
140         help
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.
148
149 config SND_SOC_TEGRA210_MIXER
150         tristate "Tegra210 Mixer module"
151         help
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
156           input streams.
157           Say Y or M if you want to add support for Tegra210 Mixer module.
158
159 config SND_SOC_TEGRA_AUDIO_GRAPH_CARD
160         tristate "Audio Graph Card based Tegra driver"
161         depends on SND_AUDIO_GRAPH_CARD
162         help
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.
167
168 config SND_SOC_TEGRA_MACHINE_DRV
169         tristate
170
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
176         help
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.
179
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
185         help
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.
188
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
194         help
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.
198
199 config SND_SOC_TEGRA_WM9712
200         tristate "SoC Audio support for Tegra boards using a WM9712 codec"
201         depends on GPIOLIB
202         select SND_SOC_TEGRA_MACHINE_DRV
203         select SND_SOC_TEGRA20_AC97
204         select SND_SOC_WM9712
205         help
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.
208
209 config SND_SOC_TEGRA_TRIMSLICE
210         tristate "SoC Audio support for TrimSlice board"
211         depends on I2C
212         select SND_SOC_TEGRA_MACHINE_DRV
213         select SND_SOC_TLV320AIC23_I2C
214         help
215           Say Y or M here if you want to add support for SoC audio on the
216           TrimSlice platform.
217
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
223         help
224           Say Y or M here if you want to add support for SoC audio on the
225           Toshiba AC100 netbook.
226
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
232         help
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.
235
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
241         help
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.
244
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
250         help
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
253           Colibri T30.
254
255 endif