xref: /linux/sound/soc/tegra/Kconfig (revision 177bf8620cf4ed290ee170a6c5966adc0924b336)
1ec8f24b7SThomas Gleixner# SPDX-License-Identifier: GPL-2.0-only
2*41b94a6fSKuninori Morimotomenu "Tegra"
3*41b94a6fSKuninori Morimoto
42ba9471bSStephen Warrenconfig SND_SOC_TEGRA
58b75d714SStephen Warren	tristate "SoC Audio for the Tegra System-on-Chip"
622abf843SMark Brown	depends on (ARCH_TEGRA && TEGRA20_APB_DMA) || COMPILE_TEST
75185e0acSStephen Warren	depends on COMMON_CLK
85185e0acSStephen Warren	depends on RESET_CONTROLLER
9d19e779bSStephen Warren	select REGMAP_MMIO
102086d078SMark Brown	select SND_SOC_GENERIC_DMAENGINE_PCM
118b75d714SStephen Warren	help
128b75d714SStephen Warren	  Say Y or M here if you want support for SoC audio on Tegra.
138b75d714SStephen Warren
14e86caa01SGeert Uytterhoevenif SND_SOC_TEGRA
15e86caa01SGeert Uytterhoeven
16609dad9bSLucas Stachconfig SND_SOC_TEGRA20_AC97
173bcfe80fSPaul Kocialkowski	tristate "Tegra20 AC97 interface"
18609dad9bSLucas Stach	select SND_SOC_AC97_BUS
19609dad9bSLucas Stach	select SND_SOC_TEGRA20_DAS
20609dad9bSLucas Stach	help
21609dad9bSLucas Stach	  Say Y or M if you want to add support for codecs attached to the
22609dad9bSLucas Stach	  Tegra20 AC97 interface. You will also need to select the individual
23609dad9bSLucas Stach	  machine drivers to support below.
24609dad9bSLucas Stach
25896637acSStephen Warrenconfig SND_SOC_TEGRA20_DAS
263bcfe80fSPaul Kocialkowski	tristate "Tegra20 DAS module"
27d9bba496SStephen Warren	help
28896637acSStephen Warren	  Say Y or M if you want to add support for the Tegra20 DAS module.
29d9bba496SStephen Warren	  You will also need to select the individual machine drivers to
30d9bba496SStephen Warren	  support below.
31d9bba496SStephen Warren
32896637acSStephen Warrenconfig SND_SOC_TEGRA20_I2S
333bcfe80fSPaul Kocialkowski	tristate "Tegra20 I2S interface"
34896637acSStephen Warren	select SND_SOC_TEGRA20_DAS
358b75d714SStephen Warren	help
368b75d714SStephen Warren	  Say Y or M if you want to add support for codecs attached to the
37896637acSStephen Warren	  Tegra20 I2S interface. You will also need to select the individual
388b75d714SStephen Warren	  machine drivers to support below.
398b75d714SStephen Warren
40896637acSStephen Warrenconfig SND_SOC_TEGRA20_SPDIF
413bcfe80fSPaul Kocialkowski	tristate "Tegra20 SPDIF interface"
42774fec33SStephen Warren	help
43896637acSStephen Warren	  Say Y or M if you want to add support for the Tegra20 SPDIF interface.
44774fec33SStephen Warren	  You will also need to select the individual machine drivers to support
45774fec33SStephen Warren	  below.
46774fec33SStephen Warren
47cdc04fd1SStephen Warrenconfig SND_SOC_TEGRA30_AHUB
483bcfe80fSPaul Kocialkowski	tristate "Tegra30 AHUB module"
49cdc04fd1SStephen Warren	help
503bcfe80fSPaul Kocialkowski	  Say Y or M if you want to add support for the Tegra30 AHUB module.
51cdc04fd1SStephen Warren	  You will also need to select the individual machine drivers to
52cdc04fd1SStephen Warren	  support below.
53cdc04fd1SStephen Warren
54cdc04fd1SStephen Warrenconfig SND_SOC_TEGRA30_I2S
553bcfe80fSPaul Kocialkowski	tristate "Tegra30 I2S interface"
56cdc04fd1SStephen Warren	select SND_SOC_TEGRA30_AHUB
57cdc04fd1SStephen Warren	help
58cdc04fd1SStephen Warren	  Say Y or M if you want to add support for codecs attached to the
59cdc04fd1SStephen Warren	  Tegra30 I2S interface. You will also need to select the individual
60cdc04fd1SStephen Warren	  machine drivers to support below.
61cdc04fd1SStephen Warren
6216e1bcc2SSameer Pujarconfig SND_SOC_TEGRA210_AHUB
6316e1bcc2SSameer Pujar	tristate "Tegra210 AHUB module"
6416e1bcc2SSameer Pujar	help
6516e1bcc2SSameer Pujar	  Config to enable Audio Hub (AHUB) module, which comprises of a
6616e1bcc2SSameer Pujar	  switch called Audio Crossbar (AXBAR) used to configure or modify
6716e1bcc2SSameer Pujar	  the audio routing path between various HW accelerators present in
6816e1bcc2SSameer Pujar	  AHUB.
6916e1bcc2SSameer Pujar	  Say Y or M if you want to add support for Tegra210 AHUB module.
7016e1bcc2SSameer Pujar
718c8ff982SSameer Pujarconfig SND_SOC_TEGRA210_DMIC
728c8ff982SSameer Pujar	tristate "Tegra210 DMIC module"
738c8ff982SSameer Pujar	help
748c8ff982SSameer Pujar	  Config to enable the Digital MIC (DMIC) controller which is used
758c8ff982SSameer Pujar	  to interface with Pulse Density Modulation (PDM) input devices.
768c8ff982SSameer Pujar	  The DMIC controller implements a converter to convert PDM signals
778c8ff982SSameer Pujar	  to Pulse Code Modulation (PCM) signals. This can be viewed as a
788c8ff982SSameer Pujar	  PDM receiver.
798c8ff982SSameer Pujar	  Say Y or M if you want to add support for Tegra210 DMIC module.
808c8ff982SSameer Pujar
81c0bfa983SSameer Pujarconfig SND_SOC_TEGRA210_I2S
82c0bfa983SSameer Pujar	tristate "Tegra210 I2S module"
8383340b85SArnd Bergmann	select SND_SIMPLE_CARD_UTILS
84c0bfa983SSameer Pujar	help
85c0bfa983SSameer Pujar	  Config to enable the Inter-IC Sound (I2S) Controller which
86c0bfa983SSameer Pujar	  implements full-duplex and bidirectional and single direction
87c0bfa983SSameer Pujar	  point-to-point serial interfaces. It can interface with I2S
88c0bfa983SSameer Pujar	  compatible devices.
89c0bfa983SSameer Pujar	  Say Y or M if you want to add support for Tegra210 I2S module.
90c0bfa983SSameer Pujar
917358a803SSameer Pujarconfig SND_SOC_TEGRA210_OPE
927358a803SSameer Pujar	tristate "Tegra210 OPE module"
937358a803SSameer Pujar	help
947358a803SSameer Pujar	  Config to enable the Output Processing Engine (OPE) which includes
957358a803SSameer Pujar	  Parametric Equalizer (PEQ) and Multi Band Dynamic Range Compressor
967358a803SSameer Pujar	  (MBDRC) sub blocks for data processing. It can support up to 8
977358a803SSameer Pujar	  channels.
987358a803SSameer Pujar	  Say Y or M if you want to add support for Tegra210 OPE module.
997358a803SSameer Pujar
100a2df8c2dSSameer Pujarconfig SND_SOC_TEGRA186_ASRC
101a2df8c2dSSameer Pujar	tristate "Tegra186 ASRC module"
102a2df8c2dSSameer Pujar	help
103a2df8c2dSSameer Pujar	  Config to enable the Asynchronous Sample Rate Converter (ASRC),
104a2df8c2dSSameer Pujar	  which converts the sampling frequency of the input signal from
105a2df8c2dSSameer Pujar	  one frequency to another. It can handle over a wide range of
106a2df8c2dSSameer Pujar	  sample rate ratios (freq_in/freq_out) from 1:24 to 24:1.
107a2df8c2dSSameer Pujar	  ASRC has two modes of operation. One where ratio can be programmed
108a2df8c2dSSameer Pujar	  in SW and the other where it gets information from ratio estimator
109a2df8c2dSSameer Pujar	  module.
110a2df8c2dSSameer Pujar	  Say Y or M if you want to add support for Tegra186 ASRC module.
111a2df8c2dSSameer Pujar
112327ef647SSameer Pujarconfig SND_SOC_TEGRA186_DSPK
113327ef647SSameer Pujar	tristate "Tegra186 DSPK module"
114327ef647SSameer Pujar	help
115327ef647SSameer Pujar	  Config to enable the Digital Speaker Controller (DSPK) which
116327ef647SSameer Pujar	  converts the multi-bit Pulse Code Modulation (PCM) audio input to
117327ef647SSameer Pujar	  oversampled 1-bit Pulse Density Modulation (PDM) output. From the
118327ef647SSameer Pujar	  signal flow perspective DSPK can be viewed as a PDM transmitter
119327ef647SSameer Pujar	  that up-samples the input to the desired sampling rate by
120327ef647SSameer Pujar	  interpolation and then converts the oversampled PCM input to
121327ef647SSameer Pujar	  the desired 1-bit output via Delta Sigma Modulation (DSM).
122327ef647SSameer Pujar	  Say Y or M if you want to add support for Tegra186 DSPK module.
123327ef647SSameer Pujar
124f74028e1SSameer Pujarconfig SND_SOC_TEGRA210_ADMAIF
125f74028e1SSameer Pujar	tristate "Tegra210 ADMAIF module"
126f74028e1SSameer Pujar	help
127f74028e1SSameer Pujar	  Config to enable ADMAIF which is the interface between ADMA and
128f74028e1SSameer Pujar	  Audio Hub (AHUB). Each ADMA channel that sends/receives data to/
129f74028e1SSameer Pujar	  from AHUB must interface through an ADMAIF channel. ADMA channel
130f74028e1SSameer Pujar	  sending data to AHUB pairs with an ADMAIF Tx channel, where as
131f74028e1SSameer Pujar	  ADMA channel receiving data from AHUB pairs with an ADMAIF Rx
132f74028e1SSameer Pujar	  channel. Buffer size is configurable for each ADMAIIF channel.
133f74028e1SSameer Pujar	  Say Y or M if you want to add support for Tegra210 ADMAIF module.
134f74028e1SSameer Pujar
135e539891fSSameer Pujarconfig SND_SOC_TEGRA210_MVC
136e539891fSSameer Pujar	tristate "Tegra210 MVC module"
137e539891fSSameer Pujar	help
138e539891fSSameer Pujar	  Config to enable the digital Master Volume Controller (MVC) which
139e539891fSSameer Pujar	  provides gain or attenuation to a digital signal path. It can be
140e539891fSSameer Pujar	  used in input or output signal path. It can be used either for
141e539891fSSameer Pujar	  per-stream volume control or for master volume control.
142e539891fSSameer Pujar	  Say Y or M if you want to add support for Tegra210 MVC module.
143e539891fSSameer Pujar
144b2f74ec5SSameer Pujarconfig SND_SOC_TEGRA210_SFC
145b2f74ec5SSameer Pujar	tristate "Tegra210 SFC module"
146b2f74ec5SSameer Pujar	help
147b2f74ec5SSameer Pujar	  Config to enable the Sampling Frequency Converter (SFC) which
148b2f74ec5SSameer Pujar	  converts the sampling frequency of input signal to another
149b2f74ec5SSameer Pujar	  frequency. It supports sampling frequency conversion of streams
150b2f74ec5SSameer Pujar	  up to 2 channels (stereo).
151b2f74ec5SSameer Pujar	  Say Y or M if you want to add support for Tegra210 SFC module.
152b2f74ec5SSameer Pujar
15377f7df34SSameer Pujarconfig SND_SOC_TEGRA210_AMX
15477f7df34SSameer Pujar	tristate "Tegra210 AMX module"
15577f7df34SSameer Pujar	help
15677f7df34SSameer Pujar	  Config to enable the Audio Multiplexer (AMX) which can multiplex
15777f7df34SSameer Pujar	  four input streams (each of up to 16 channels) and generate
15877f7df34SSameer Pujar	  output stream (of up to 16 channels). A byte RAM helps to form an
15977f7df34SSameer Pujar	  output frame by any combination of bytes from the input frames.
16077f7df34SSameer Pujar	  Say Y or M if you want to add support for Tegra210 AMX module.
16177f7df34SSameer Pujar
162a99ab6f3SSameer Pujarconfig SND_SOC_TEGRA210_ADX
163a99ab6f3SSameer Pujar	tristate "Tegra210 ADX module"
164a99ab6f3SSameer Pujar	help
165a99ab6f3SSameer Pujar	  Config to enable the Audio Demultiplexer (ADX) which takes an
166a99ab6f3SSameer Pujar	  input stream (up to 16 channels) and demultiplexes it into four
167a99ab6f3SSameer Pujar	  output streams (each of up to 16 channels). A byte RAM helps to
168a99ab6f3SSameer Pujar	  form output frames by any combination of bytes from the input
169a99ab6f3SSameer Pujar	  frame. Its design is identical to that of byte RAM in the AMX
170a99ab6f3SSameer Pujar	  except that the data flow direction is reversed.
171a99ab6f3SSameer Pujar	  Say Y or M if you want to add support for Tegra210 ADX module.
172a99ab6f3SSameer Pujar
17305bb3d5eSSameer Pujarconfig SND_SOC_TEGRA210_MIXER
17405bb3d5eSSameer Pujar	tristate "Tegra210 Mixer module"
17505bb3d5eSSameer Pujar	help
17605bb3d5eSSameer Pujar	  Config to enable the Mixer module which can help to mix multiple
17705bb3d5eSSameer Pujar	  audio streams. It supports mixing of up to 10 input streams,
17805bb3d5eSSameer Pujar	  where each stream can contain maximum of 8 channels. It supports
17905bb3d5eSSameer Pujar	  5 output each of which can be a mix of any combination of 10
18005bb3d5eSSameer Pujar	  input streams.
18105bb3d5eSSameer Pujar	  Say Y or M if you want to add support for Tegra210 Mixer module.
18205bb3d5eSSameer Pujar
183202e2f77SSameer Pujarconfig SND_SOC_TEGRA_AUDIO_GRAPH_CARD
184202e2f77SSameer Pujar	tristate "Audio Graph Card based Tegra driver"
185202e2f77SSameer Pujar	depends on SND_AUDIO_GRAPH_CARD
186202e2f77SSameer Pujar	help
187202e2f77SSameer Pujar	  Config to enable Tegra audio machine driver based on generic
188202e2f77SSameer Pujar	  audio graph driver. It is a thin driver written to customize
189202e2f77SSameer Pujar	  few things for Tegra audio. Most of the code is re-used from
190202e2f77SSameer Pujar	  audio graph driver and the same DT bindings are used.
191202e2f77SSameer Pujar
192cc8f70f5SDmitry Osipenkoconfig SND_SOC_TEGRA_MACHINE_DRV
193cc8f70f5SDmitry Osipenko	tristate
194cc8f70f5SDmitry Osipenko
19544b2fc2eSSvyatoslav Ryhelconfig SND_SOC_TEGRA_RT5631
19644b2fc2eSSvyatoslav Ryhel	tristate "SoC Audio support for Tegra boards using an RT5631 codec"
19744b2fc2eSSvyatoslav Ryhel	depends on SND_SOC_TEGRA && I2C && GPIOLIB
19844b2fc2eSSvyatoslav Ryhel	select SND_SOC_TEGRA_MACHINE_DRV
19944b2fc2eSSvyatoslav Ryhel	select SND_SOC_RT5631
20044b2fc2eSSvyatoslav Ryhel	help
20144b2fc2eSSvyatoslav Ryhel	  Say Y or M here if you want to add support for SoC audio on Tegra
20244b2fc2eSSvyatoslav Ryhel	  boards using the RT5631 codec, such as Transformer.
20344b2fc2eSSvyatoslav Ryhel
204040a62cfSStephen Warrenconfig SND_SOC_TEGRA_RT5640
205040a62cfSStephen Warren	tristate "SoC Audio support for Tegra boards using an RT5640 codec"
206e86caa01SGeert Uytterhoeven	depends on I2C && GPIOLIB
207cc8f70f5SDmitry Osipenko	select SND_SOC_TEGRA_MACHINE_DRV
208040a62cfSStephen Warren	select SND_SOC_RT5640
209040a62cfSStephen Warren	help
210040a62cfSStephen Warren	  Say Y or M here if you want to add support for SoC audio on Tegra
211040a62cfSStephen Warren	  boards using the RT5640 codec, such as Dalmore.
212040a62cfSStephen Warren
213d8259ca5SStephen Warrenconfig SND_SOC_TEGRA_WM8753
214d8259ca5SStephen Warren	tristate "SoC Audio support for Tegra boards using a WM8753 codec"
215e86caa01SGeert Uytterhoeven	depends on I2C && GPIOLIB
216cc8f70f5SDmitry Osipenko	select SND_SOC_TEGRA_MACHINE_DRV
217d8259ca5SStephen Warren	select SND_SOC_WM8753
218d8259ca5SStephen Warren	help
219d8259ca5SStephen Warren	  Say Y or M here if you want to add support for SoC audio on Tegra
220d8259ca5SStephen Warren	  boards using the WM8753 codec, such as Whistler.
221d8259ca5SStephen Warren
2222ba9471bSStephen Warrenconfig SND_SOC_TEGRA_WM8903
223dc0a50afSStephen Warren	tristate "SoC Audio support for Tegra boards using a WM8903 codec"
224e86caa01SGeert Uytterhoeven	depends on I2C && GPIOLIB
225cc8f70f5SDmitry Osipenko	select SND_SOC_TEGRA_MACHINE_DRV
2268b75d714SStephen Warren	select SND_SOC_WM8903
2278b75d714SStephen Warren	help
228dc0a50afSStephen Warren	  Say Y or M here if you want to add support for SoC audio on Tegra
229773b1d3dSStephen Warren	  boards using the WM8093 codec. Currently, the supported boards are
230773b1d3dSStephen Warren	  Harmony, Ventana, Seaboard, Kaen, and Aebl.
2318b75d714SStephen Warren
2326995b8cbSLucas Stachconfig SND_SOC_TEGRA_WM9712
2336995b8cbSLucas Stach	tristate "SoC Audio support for Tegra boards using a WM9712 codec"
234e86caa01SGeert Uytterhoeven	depends on GPIOLIB
235cc8f70f5SDmitry Osipenko	select SND_SOC_TEGRA_MACHINE_DRV
2366995b8cbSLucas Stach	select SND_SOC_TEGRA20_AC97
2376995b8cbSLucas Stach	select SND_SOC_WM9712
2386995b8cbSLucas Stach	help
2396995b8cbSLucas Stach	  Say Y or M here if you want to add support for SoC audio on Tegra
2406995b8cbSLucas Stach	  boards using the WM9712 (or compatible) codec.
2416995b8cbSLucas Stach
2421307394aSMike Rapoportconfig SND_SOC_TEGRA_TRIMSLICE
2431307394aSMike Rapoport	tristate "SoC Audio support for TrimSlice board"
244e86caa01SGeert Uytterhoeven	depends on I2C
245cc8f70f5SDmitry Osipenko	select SND_SOC_TEGRA_MACHINE_DRV
246cc1bc54aSMax Filippov	select SND_SOC_TLV320AIC23_I2C
2471307394aSMike Rapoport	help
2481307394aSMike Rapoport	  Say Y or M here if you want to add support for SoC audio on the
2491307394aSMike Rapoport	  TrimSlice platform.
25058783fafSLeon Romanovsky
25158783fafSLeon Romanovskyconfig SND_SOC_TEGRA_ALC5632
25258783fafSLeon Romanovsky	tristate "SoC Audio support for Tegra boards using an ALC5632 codec"
253e86caa01SGeert Uytterhoeven	depends on I2C && GPIOLIB
254cc8f70f5SDmitry Osipenko	select SND_SOC_TEGRA_MACHINE_DRV
25558783fafSLeon Romanovsky	select SND_SOC_ALC5632
25658783fafSLeon Romanovsky	help
25758783fafSLeon Romanovsky	  Say Y or M here if you want to add support for SoC audio on the
25858783fafSLeon Romanovsky	  Toshiba AC100 netbook.
2597637af2eSStephen Warren
2607637af2eSStephen Warrenconfig SND_SOC_TEGRA_MAX98090
2617637af2eSStephen Warren	tristate "SoC Audio support for Tegra boards using a MAX98090 codec"
262e86caa01SGeert Uytterhoeven	depends on I2C && GPIOLIB
263cc8f70f5SDmitry Osipenko	select SND_SOC_TEGRA_MACHINE_DRV
2647637af2eSStephen Warren	select SND_SOC_MAX98090
2657637af2eSStephen Warren	help
2667637af2eSStephen Warren	  Say Y or M here if you want to add support for SoC audio on Tegra
2677637af2eSStephen Warren	  boards using the MAX98090 codec, such as Venice2.
268a37f1b8fSAnatol Pomozov
269d007a87bSSvyatoslav Ryhelconfig SND_SOC_TEGRA_MAX98088
270d007a87bSSvyatoslav Ryhel	tristate "SoC Audio support for Tegra boards using a MAX9808x codec"
271d007a87bSSvyatoslav Ryhel	depends on I2C && GPIOLIB
272d007a87bSSvyatoslav Ryhel	select SND_SOC_TEGRA_MACHINE_DRV
273d007a87bSSvyatoslav Ryhel	select SND_SOC_MAX98088
274d007a87bSSvyatoslav Ryhel	help
275d007a87bSSvyatoslav Ryhel	  Say Y or M here if you want to add support for SoC audio on Tegra
276d007a87bSSvyatoslav Ryhel	  boards using the MAX98088 codec, such as LG X3.
277d007a87bSSvyatoslav Ryhel
278a37f1b8fSAnatol Pomozovconfig SND_SOC_TEGRA_RT5677
279a37f1b8fSAnatol Pomozov	tristate "SoC Audio support for Tegra boards using a RT5677 codec"
280e86caa01SGeert Uytterhoeven	depends on I2C && GPIOLIB
281cc8f70f5SDmitry Osipenko	select SND_SOC_TEGRA_MACHINE_DRV
282a37f1b8fSAnatol Pomozov	select SND_SOC_RT5677
283a37f1b8fSAnatol Pomozov	help
284a37f1b8fSAnatol Pomozov	  Say Y or M here if you want to add support for SoC audio on Tegra
285a37f1b8fSAnatol Pomozov	  boards using the RT5677 codec, such as Ryu.
28604445681SMarcel Ziswiler
28704445681SMarcel Ziswilerconfig SND_SOC_TEGRA_SGTL5000
28804445681SMarcel Ziswiler	tristate "SoC Audio support for Tegra boards using a SGTL5000 codec"
289e86caa01SGeert Uytterhoeven	depends on I2C && GPIOLIB
290cc8f70f5SDmitry Osipenko	select SND_SOC_TEGRA_MACHINE_DRV
29104445681SMarcel Ziswiler	select SND_SOC_SGTL5000
29204445681SMarcel Ziswiler	help
29304445681SMarcel Ziswiler	  Say Y or M here if you want to add support for SoC audio on Tegra
29404445681SMarcel Ziswiler	  boards using the SGTL5000 codec, such as Apalis T30, Apalis TK1 or
29504445681SMarcel Ziswiler	  Colibri T30.
296e86caa01SGeert Uytterhoeven
297e86caa01SGeert Uytterhoevenendif
298*41b94a6fSKuninori Morimoto
299*41b94a6fSKuninori Morimotoendmenu
300