Loading...
1# SPDX-License-Identifier: GPL-2.0-only
2config 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
12if SND_SOC_TEGRA
13
14config 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
23config 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
30config 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
38config 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
45config 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
52config 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
60config 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
69config 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
79config 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
88config 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
97config 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
109config 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
121config 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
132config 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
141config 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 upto 2 channels (stereo).
148 Say Y or M if you want to add support for Tegra210 SFC module.
149
150config 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
159config 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
170config 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 upto 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
180config 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
189config SND_SOC_TEGRA_MACHINE_DRV
190 tristate
191
192config SND_SOC_TEGRA_RT5640
193 tristate "SoC Audio support for Tegra boards using an RT5640 codec"
194 depends on I2C && GPIOLIB
195 select SND_SOC_TEGRA_MACHINE_DRV
196 select SND_SOC_RT5640
197 help
198 Say Y or M here if you want to add support for SoC audio on Tegra
199 boards using the RT5640 codec, such as Dalmore.
200
201config SND_SOC_TEGRA_WM8753
202 tristate "SoC Audio support for Tegra boards using a WM8753 codec"
203 depends on I2C && GPIOLIB
204 select SND_SOC_TEGRA_MACHINE_DRV
205 select SND_SOC_WM8753
206 help
207 Say Y or M here if you want to add support for SoC audio on Tegra
208 boards using the WM8753 codec, such as Whistler.
209
210config SND_SOC_TEGRA_WM8903
211 tristate "SoC Audio support for Tegra boards using a WM8903 codec"
212 depends on I2C && GPIOLIB
213 select SND_SOC_TEGRA_MACHINE_DRV
214 select SND_SOC_WM8903
215 help
216 Say Y or M here if you want to add support for SoC audio on Tegra
217 boards using the WM8093 codec. Currently, the supported boards are
218 Harmony, Ventana, Seaboard, Kaen, and Aebl.
219
220config SND_SOC_TEGRA_WM9712
221 tristate "SoC Audio support for Tegra boards using a WM9712 codec"
222 depends on GPIOLIB
223 select SND_SOC_TEGRA_MACHINE_DRV
224 select SND_SOC_TEGRA20_AC97
225 select SND_SOC_WM9712
226 help
227 Say Y or M here if you want to add support for SoC audio on Tegra
228 boards using the WM9712 (or compatible) codec.
229
230config SND_SOC_TEGRA_TRIMSLICE
231 tristate "SoC Audio support for TrimSlice board"
232 depends on I2C
233 select SND_SOC_TEGRA_MACHINE_DRV
234 select SND_SOC_TLV320AIC23_I2C
235 help
236 Say Y or M here if you want to add support for SoC audio on the
237 TrimSlice platform.
238
239config SND_SOC_TEGRA_ALC5632
240 tristate "SoC Audio support for Tegra boards using an ALC5632 codec"
241 depends on I2C && GPIOLIB
242 select SND_SOC_TEGRA_MACHINE_DRV
243 select SND_SOC_ALC5632
244 help
245 Say Y or M here if you want to add support for SoC audio on the
246 Toshiba AC100 netbook.
247
248config SND_SOC_TEGRA_MAX98090
249 tristate "SoC Audio support for Tegra boards using a MAX98090 codec"
250 depends on I2C && GPIOLIB
251 select SND_SOC_TEGRA_MACHINE_DRV
252 select SND_SOC_MAX98090
253 help
254 Say Y or M here if you want to add support for SoC audio on Tegra
255 boards using the MAX98090 codec, such as Venice2.
256
257config SND_SOC_TEGRA_RT5677
258 tristate "SoC Audio support for Tegra boards using a RT5677 codec"
259 depends on I2C && GPIOLIB
260 select SND_SOC_TEGRA_MACHINE_DRV
261 select SND_SOC_RT5677
262 help
263 Say Y or M here if you want to add support for SoC audio on Tegra
264 boards using the RT5677 codec, such as Ryu.
265
266config SND_SOC_TEGRA_SGTL5000
267 tristate "SoC Audio support for Tegra boards using a SGTL5000 codec"
268 depends on I2C && GPIOLIB
269 select SND_SOC_TEGRA_MACHINE_DRV
270 select SND_SOC_SGTL5000
271 help
272 Say Y or M here if you want to add support for SoC audio on Tegra
273 boards using the SGTL5000 codec, such as Apalis T30, Apalis TK1 or
274 Colibri T30.
275
276endif
1# SPDX-License-Identifier: GPL-2.0-only
2config 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
12config SND_SOC_TEGRA20_AC97
13 tristate "Tegra20 AC97 interface"
14 depends on SND_SOC_TEGRA
15 select SND_SOC_AC97_BUS
16 select SND_SOC_TEGRA20_DAS
17 help
18 Say Y or M if you want to add support for codecs attached to the
19 Tegra20 AC97 interface. You will also need to select the individual
20 machine drivers to support below.
21
22config SND_SOC_TEGRA20_DAS
23 tristate "Tegra20 DAS module"
24 depends on SND_SOC_TEGRA
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
30config SND_SOC_TEGRA20_I2S
31 tristate "Tegra20 I2S interface"
32 depends on SND_SOC_TEGRA
33 select SND_SOC_TEGRA20_DAS
34 help
35 Say Y or M if you want to add support for codecs attached to the
36 Tegra20 I2S interface. You will also need to select the individual
37 machine drivers to support below.
38
39config SND_SOC_TEGRA20_SPDIF
40 tristate "Tegra20 SPDIF interface"
41 depends on SND_SOC_TEGRA
42 default m
43 help
44 Say Y or M if you want to add support for the Tegra20 SPDIF interface.
45 You will also need to select the individual machine drivers to support
46 below.
47
48config SND_SOC_TEGRA30_AHUB
49 tristate "Tegra30 AHUB module"
50 depends on SND_SOC_TEGRA
51 help
52 Say Y or M if you want to add support for the Tegra30 AHUB module.
53 You will also need to select the individual machine drivers to
54 support below.
55
56config SND_SOC_TEGRA30_I2S
57 tristate "Tegra30 I2S interface"
58 depends on SND_SOC_TEGRA
59 select SND_SOC_TEGRA30_AHUB
60 help
61 Say Y or M if you want to add support for codecs attached to the
62 Tegra30 I2S interface. You will also need to select the individual
63 machine drivers to support below.
64
65config SND_SOC_TEGRA210_AHUB
66 tristate "Tegra210 AHUB module"
67 depends on SND_SOC_TEGRA
68 help
69 Config to enable Audio Hub (AHUB) module, which comprises of a
70 switch called Audio Crossbar (AXBAR) used to configure or modify
71 the audio routing path between various HW accelerators present in
72 AHUB.
73 Say Y or M if you want to add support for Tegra210 AHUB module.
74
75config SND_SOC_TEGRA210_DMIC
76 tristate "Tegra210 DMIC module"
77 depends on SND_SOC_TEGRA
78 help
79 Config to enable the Digital MIC (DMIC) controller which is used
80 to interface with Pulse Density Modulation (PDM) input devices.
81 The DMIC controller implements a converter to convert PDM signals
82 to Pulse Code Modulation (PCM) signals. This can be viewed as a
83 PDM receiver.
84 Say Y or M if you want to add support for Tegra210 DMIC module.
85
86config SND_SOC_TEGRA210_I2S
87 tristate "Tegra210 I2S module"
88 depends on SND_SOC_TEGRA
89 help
90 Config to enable the Inter-IC Sound (I2S) Controller which
91 implements full-duplex and bidirectional and single direction
92 point-to-point serial interfaces. It can interface with I2S
93 compatible devices.
94 Say Y or M if you want to add support for Tegra210 I2S module.
95
96config SND_SOC_TEGRA186_DSPK
97 tristate "Tegra186 DSPK module"
98 depends on SND_SOC_TEGRA
99 help
100 Config to enable the Digital Speaker Controller (DSPK) which
101 converts the multi-bit Pulse Code Modulation (PCM) audio input to
102 oversampled 1-bit Pulse Density Modulation (PDM) output. From the
103 signal flow perspective DSPK can be viewed as a PDM transmitter
104 that up-samples the input to the desired sampling rate by
105 interpolation and then converts the oversampled PCM input to
106 the desired 1-bit output via Delta Sigma Modulation (DSM).
107 Say Y or M if you want to add support for Tegra186 DSPK module.
108
109config SND_SOC_TEGRA210_ADMAIF
110 tristate "Tegra210 ADMAIF module"
111 depends on SND_SOC_TEGRA
112 help
113 Config to enable ADMAIF which is the interface between ADMA and
114 Audio Hub (AHUB). Each ADMA channel that sends/receives data to/
115 from AHUB must interface through an ADMAIF channel. ADMA channel
116 sending data to AHUB pairs with an ADMAIF Tx channel, where as
117 ADMA channel receiving data from AHUB pairs with an ADMAIF Rx
118 channel. Buffer size is configurable for each ADMAIIF channel.
119 Say Y or M if you want to add support for Tegra210 ADMAIF module.
120
121config SND_SOC_TEGRA_RT5640
122 tristate "SoC Audio support for Tegra boards using an RT5640 codec"
123 depends on SND_SOC_TEGRA && I2C && GPIOLIB
124 select SND_SOC_RT5640
125 help
126 Say Y or M here if you want to add support for SoC audio on Tegra
127 boards using the RT5640 codec, such as Dalmore.
128
129config SND_SOC_TEGRA_WM8753
130 tristate "SoC Audio support for Tegra boards using a WM8753 codec"
131 depends on SND_SOC_TEGRA && I2C && GPIOLIB
132 select SND_SOC_WM8753
133 help
134 Say Y or M here if you want to add support for SoC audio on Tegra
135 boards using the WM8753 codec, such as Whistler.
136
137config SND_SOC_TEGRA_WM8903
138 tristate "SoC Audio support for Tegra boards using a WM8903 codec"
139 depends on SND_SOC_TEGRA && I2C && GPIOLIB
140 select SND_SOC_WM8903
141 help
142 Say Y or M here if you want to add support for SoC audio on Tegra
143 boards using the WM8093 codec. Currently, the supported boards are
144 Harmony, Ventana, Seaboard, Kaen, and Aebl.
145
146config SND_SOC_TEGRA_WM9712
147 tristate "SoC Audio support for Tegra boards using a WM9712 codec"
148 depends on SND_SOC_TEGRA && GPIOLIB
149 select SND_SOC_TEGRA20_AC97
150 select SND_SOC_WM9712
151 help
152 Say Y or M here if you want to add support for SoC audio on Tegra
153 boards using the WM9712 (or compatible) codec.
154
155config SND_SOC_TEGRA_TRIMSLICE
156 tristate "SoC Audio support for TrimSlice board"
157 depends on SND_SOC_TEGRA && I2C
158 select SND_SOC_TLV320AIC23_I2C
159 help
160 Say Y or M here if you want to add support for SoC audio on the
161 TrimSlice platform.
162
163config SND_SOC_TEGRA_ALC5632
164 tristate "SoC Audio support for Tegra boards using an ALC5632 codec"
165 depends on SND_SOC_TEGRA && I2C && GPIOLIB
166 select SND_SOC_ALC5632
167 help
168 Say Y or M here if you want to add support for SoC audio on the
169 Toshiba AC100 netbook.
170
171config SND_SOC_TEGRA_MAX98090
172 tristate "SoC Audio support for Tegra boards using a MAX98090 codec"
173 depends on SND_SOC_TEGRA && I2C && GPIOLIB
174 select SND_SOC_MAX98090
175 help
176 Say Y or M here if you want to add support for SoC audio on Tegra
177 boards using the MAX98090 codec, such as Venice2.
178
179config SND_SOC_TEGRA_RT5677
180 tristate "SoC Audio support for Tegra boards using a RT5677 codec"
181 depends on SND_SOC_TEGRA && I2C && GPIOLIB
182 select SND_SOC_RT5677
183 help
184 Say Y or M here if you want to add support for SoC audio on Tegra
185 boards using the RT5677 codec, such as Ryu.
186
187config SND_SOC_TEGRA_SGTL5000
188 tristate "SoC Audio support for Tegra boards using a SGTL5000 codec"
189 depends on SND_SOC_TEGRA && I2C && GPIOLIB
190 select SND_SOC_SGTL5000
191 help
192 Say Y or M here if you want to add support for SoC audio on Tegra
193 boards using the SGTL5000 codec, such as Apalis T30, Apalis TK1 or
194 Colibri T30.