xref: /linux/sound/soc/tegra/Kconfig (revision 177bf8620cf4ed290ee170a6c5966adc0924b336)
1# SPDX-License-Identifier: GPL-2.0-only
2menu "Tegra"
3
4config SND_SOC_TEGRA
5	tristate "SoC Audio for the Tegra System-on-Chip"
6	depends on (ARCH_TEGRA && TEGRA20_APB_DMA) || COMPILE_TEST
7	depends on COMMON_CLK
8	depends on RESET_CONTROLLER
9	select REGMAP_MMIO
10	select SND_SOC_GENERIC_DMAENGINE_PCM
11	help
12	  Say Y or M here if you want support for SoC audio on Tegra.
13
14if SND_SOC_TEGRA
15
16config SND_SOC_TEGRA20_AC97
17	tristate "Tegra20 AC97 interface"
18	select SND_SOC_AC97_BUS
19	select SND_SOC_TEGRA20_DAS
20	help
21	  Say Y or M if you want to add support for codecs attached to the
22	  Tegra20 AC97 interface. You will also need to select the individual
23	  machine drivers to support below.
24
25config SND_SOC_TEGRA20_DAS
26	tristate "Tegra20 DAS module"
27	help
28	  Say Y or M if you want to add support for the Tegra20 DAS module.
29	  You will also need to select the individual machine drivers to
30	  support below.
31
32config SND_SOC_TEGRA20_I2S
33	tristate "Tegra20 I2S interface"
34	select SND_SOC_TEGRA20_DAS
35	help
36	  Say Y or M if you want to add support for codecs attached to the
37	  Tegra20 I2S interface. You will also need to select the individual
38	  machine drivers to support below.
39
40config SND_SOC_TEGRA20_SPDIF
41	tristate "Tegra20 SPDIF interface"
42	help
43	  Say Y or M if you want to add support for the Tegra20 SPDIF interface.
44	  You will also need to select the individual machine drivers to support
45	  below.
46
47config SND_SOC_TEGRA30_AHUB
48	tristate "Tegra30 AHUB module"
49	help
50	  Say Y or M if you want to add support for the Tegra30 AHUB module.
51	  You will also need to select the individual machine drivers to
52	  support below.
53
54config SND_SOC_TEGRA30_I2S
55	tristate "Tegra30 I2S interface"
56	select SND_SOC_TEGRA30_AHUB
57	help
58	  Say Y or M if you want to add support for codecs attached to the
59	  Tegra30 I2S interface. You will also need to select the individual
60	  machine drivers to support below.
61
62config SND_SOC_TEGRA210_AHUB
63	tristate "Tegra210 AHUB module"
64	help
65	  Config to enable Audio Hub (AHUB) module, which comprises of a
66	  switch called Audio Crossbar (AXBAR) used to configure or modify
67	  the audio routing path between various HW accelerators present in
68	  AHUB.
69	  Say Y or M if you want to add support for Tegra210 AHUB module.
70
71config SND_SOC_TEGRA210_DMIC
72	tristate "Tegra210 DMIC module"
73	help
74	  Config to enable the Digital MIC (DMIC) controller which is used
75	  to interface with Pulse Density Modulation (PDM) input devices.
76	  The DMIC controller implements a converter to convert PDM signals
77	  to Pulse Code Modulation (PCM) signals. This can be viewed as a
78	  PDM receiver.
79	  Say Y or M if you want to add support for Tegra210 DMIC module.
80
81config SND_SOC_TEGRA210_I2S
82	tristate "Tegra210 I2S module"
83	select SND_SIMPLE_CARD_UTILS
84	help
85	  Config to enable the Inter-IC Sound (I2S) Controller which
86	  implements full-duplex and bidirectional and single direction
87	  point-to-point serial interfaces. It can interface with I2S
88	  compatible devices.
89	  Say Y or M if you want to add support for Tegra210 I2S module.
90
91config SND_SOC_TEGRA210_OPE
92	tristate "Tegra210 OPE module"
93	help
94	  Config to enable the Output Processing Engine (OPE) which includes
95	  Parametric Equalizer (PEQ) and Multi Band Dynamic Range Compressor
96	  (MBDRC) sub blocks for data processing. It can support up to 8
97	  channels.
98	  Say Y or M if you want to add support for Tegra210 OPE module.
99
100config SND_SOC_TEGRA186_ASRC
101	tristate "Tegra186 ASRC module"
102	help
103	  Config to enable the Asynchronous Sample Rate Converter (ASRC),
104	  which converts the sampling frequency of the input signal from
105	  one frequency to another. It can handle over a wide range of
106	  sample rate ratios (freq_in/freq_out) from 1:24 to 24:1.
107	  ASRC has two modes of operation. One where ratio can be programmed
108	  in SW and the other where it gets information from ratio estimator
109	  module.
110	  Say Y or M if you want to add support for Tegra186 ASRC module.
111
112config SND_SOC_TEGRA186_DSPK
113	tristate "Tegra186 DSPK module"
114	help
115	  Config to enable the Digital Speaker Controller (DSPK) which
116	  converts the multi-bit Pulse Code Modulation (PCM) audio input to
117	  oversampled 1-bit Pulse Density Modulation (PDM) output. From the
118	  signal flow perspective DSPK can be viewed as a PDM transmitter
119	  that up-samples the input to the desired sampling rate by
120	  interpolation and then converts the oversampled PCM input to
121	  the desired 1-bit output via Delta Sigma Modulation (DSM).
122	  Say Y or M if you want to add support for Tegra186 DSPK module.
123
124config SND_SOC_TEGRA210_ADMAIF
125	tristate "Tegra210 ADMAIF module"
126	help
127	  Config to enable ADMAIF which is the interface between ADMA and
128	  Audio Hub (AHUB). Each ADMA channel that sends/receives data to/
129	  from AHUB must interface through an ADMAIF channel. ADMA channel
130	  sending data to AHUB pairs with an ADMAIF Tx channel, where as
131	  ADMA channel receiving data from AHUB pairs with an ADMAIF Rx
132	  channel. Buffer size is configurable for each ADMAIIF channel.
133	  Say Y or M if you want to add support for Tegra210 ADMAIF module.
134
135config SND_SOC_TEGRA210_MVC
136	tristate "Tegra210 MVC module"
137	help
138	  Config to enable the digital Master Volume Controller (MVC) which
139	  provides gain or attenuation to a digital signal path. It can be
140	  used in input or output signal path. It can be used either for
141	  per-stream volume control or for master volume control.
142	  Say Y or M if you want to add support for Tegra210 MVC module.
143
144config SND_SOC_TEGRA210_SFC
145	tristate "Tegra210 SFC module"
146	help
147	  Config to enable the Sampling Frequency Converter (SFC) which
148	  converts the sampling frequency of input signal to another
149	  frequency. It supports sampling frequency conversion of streams
150	  up to 2 channels (stereo).
151	  Say Y or M if you want to add support for Tegra210 SFC module.
152
153config SND_SOC_TEGRA210_AMX
154	tristate "Tegra210 AMX module"
155	help
156	  Config to enable the Audio Multiplexer (AMX) which can multiplex
157	  four input streams (each of up to 16 channels) and generate
158	  output stream (of up to 16 channels). A byte RAM helps to form an
159	  output frame by any combination of bytes from the input frames.
160	  Say Y or M if you want to add support for Tegra210 AMX module.
161
162config SND_SOC_TEGRA210_ADX
163	tristate "Tegra210 ADX module"
164	help
165	  Config to enable the Audio Demultiplexer (ADX) which takes an
166	  input stream (up to 16 channels) and demultiplexes it into four
167	  output streams (each of up to 16 channels). A byte RAM helps to
168	  form output frames by any combination of bytes from the input
169	  frame. Its design is identical to that of byte RAM in the AMX
170	  except that the data flow direction is reversed.
171	  Say Y or M if you want to add support for Tegra210 ADX module.
172
173config SND_SOC_TEGRA210_MIXER
174	tristate "Tegra210 Mixer module"
175	help
176	  Config to enable the Mixer module which can help to mix multiple
177	  audio streams. It supports mixing of up to 10 input streams,
178	  where each stream can contain maximum of 8 channels. It supports
179	  5 output each of which can be a mix of any combination of 10
180	  input streams.
181	  Say Y or M if you want to add support for Tegra210 Mixer module.
182
183config SND_SOC_TEGRA_AUDIO_GRAPH_CARD
184	tristate "Audio Graph Card based Tegra driver"
185	depends on SND_AUDIO_GRAPH_CARD
186	help
187	  Config to enable Tegra audio machine driver based on generic
188	  audio graph driver. It is a thin driver written to customize
189	  few things for Tegra audio. Most of the code is re-used from
190	  audio graph driver and the same DT bindings are used.
191
192config SND_SOC_TEGRA_MACHINE_DRV
193	tristate
194
195config SND_SOC_TEGRA_RT5631
196	tristate "SoC Audio support for Tegra boards using an RT5631 codec"
197	depends on SND_SOC_TEGRA && I2C && GPIOLIB
198	select SND_SOC_TEGRA_MACHINE_DRV
199	select SND_SOC_RT5631
200	help
201	  Say Y or M here if you want to add support for SoC audio on Tegra
202	  boards using the RT5631 codec, such as Transformer.
203
204config SND_SOC_TEGRA_RT5640
205	tristate "SoC Audio support for Tegra boards using an RT5640 codec"
206	depends on I2C && GPIOLIB
207	select SND_SOC_TEGRA_MACHINE_DRV
208	select SND_SOC_RT5640
209	help
210	  Say Y or M here if you want to add support for SoC audio on Tegra
211	  boards using the RT5640 codec, such as Dalmore.
212
213config SND_SOC_TEGRA_WM8753
214	tristate "SoC Audio support for Tegra boards using a WM8753 codec"
215	depends on I2C && GPIOLIB
216	select SND_SOC_TEGRA_MACHINE_DRV
217	select SND_SOC_WM8753
218	help
219	  Say Y or M here if you want to add support for SoC audio on Tegra
220	  boards using the WM8753 codec, such as Whistler.
221
222config SND_SOC_TEGRA_WM8903
223	tristate "SoC Audio support for Tegra boards using a WM8903 codec"
224	depends on I2C && GPIOLIB
225	select SND_SOC_TEGRA_MACHINE_DRV
226	select SND_SOC_WM8903
227	help
228	  Say Y or M here if you want to add support for SoC audio on Tegra
229	  boards using the WM8093 codec. Currently, the supported boards are
230	  Harmony, Ventana, Seaboard, Kaen, and Aebl.
231
232config SND_SOC_TEGRA_WM9712
233	tristate "SoC Audio support for Tegra boards using a WM9712 codec"
234	depends on GPIOLIB
235	select SND_SOC_TEGRA_MACHINE_DRV
236	select SND_SOC_TEGRA20_AC97
237	select SND_SOC_WM9712
238	help
239	  Say Y or M here if you want to add support for SoC audio on Tegra
240	  boards using the WM9712 (or compatible) codec.
241
242config SND_SOC_TEGRA_TRIMSLICE
243	tristate "SoC Audio support for TrimSlice board"
244	depends on I2C
245	select SND_SOC_TEGRA_MACHINE_DRV
246	select SND_SOC_TLV320AIC23_I2C
247	help
248	  Say Y or M here if you want to add support for SoC audio on the
249	  TrimSlice platform.
250
251config SND_SOC_TEGRA_ALC5632
252	tristate "SoC Audio support for Tegra boards using an ALC5632 codec"
253	depends on I2C && GPIOLIB
254	select SND_SOC_TEGRA_MACHINE_DRV
255	select SND_SOC_ALC5632
256	help
257	  Say Y or M here if you want to add support for SoC audio on the
258	  Toshiba AC100 netbook.
259
260config SND_SOC_TEGRA_MAX98090
261	tristate "SoC Audio support for Tegra boards using a MAX98090 codec"
262	depends on I2C && GPIOLIB
263	select SND_SOC_TEGRA_MACHINE_DRV
264	select SND_SOC_MAX98090
265	help
266	  Say Y or M here if you want to add support for SoC audio on Tegra
267	  boards using the MAX98090 codec, such as Venice2.
268
269config SND_SOC_TEGRA_MAX98088
270	tristate "SoC Audio support for Tegra boards using a MAX9808x codec"
271	depends on I2C && GPIOLIB
272	select SND_SOC_TEGRA_MACHINE_DRV
273	select SND_SOC_MAX98088
274	help
275	  Say Y or M here if you want to add support for SoC audio on Tegra
276	  boards using the MAX98088 codec, such as LG X3.
277
278config SND_SOC_TEGRA_RT5677
279	tristate "SoC Audio support for Tegra boards using a RT5677 codec"
280	depends on I2C && GPIOLIB
281	select SND_SOC_TEGRA_MACHINE_DRV
282	select SND_SOC_RT5677
283	help
284	  Say Y or M here if you want to add support for SoC audio on Tegra
285	  boards using the RT5677 codec, such as Ryu.
286
287config SND_SOC_TEGRA_SGTL5000
288	tristate "SoC Audio support for Tegra boards using a SGTL5000 codec"
289	depends on I2C && GPIOLIB
290	select SND_SOC_TEGRA_MACHINE_DRV
291	select SND_SOC_SGTL5000
292	help
293	  Say Y or M here if you want to add support for SoC audio on Tegra
294	  boards using the SGTL5000 codec, such as Apalis T30, Apalis TK1 or
295	  Colibri T30.
296
297endif
298
299endmenu
300