91db5f8f00b6afbd91e0c1ac4f43e35d4d78fe5b
[platform/kernel/linux-rpi.git] / sound / pci / hda / Kconfig
1 # SPDX-License-Identifier: GPL-2.0-only
2 menu "HD-Audio"
3
4 config SND_HDA
5         tristate
6         select SND_PCM
7         select SND_VMASTER
8         select SND_JACK
9         select SND_HDA_CORE
10
11 config SND_HDA_GENERIC_LEDS
12        bool
13
14 config SND_HDA_INTEL
15         tristate "HD Audio PCI"
16         depends on SND_PCI
17         select SND_HDA
18         select SND_INTEL_DSP_CONFIG
19         help
20           Say Y here to include support for Intel "High Definition
21           Audio" (Azalia) and its compatible devices.
22
23           This option enables the HD-audio controller.  Don't forget
24           to choose the appropriate codec options below.
25
26           To compile this driver as a module, choose M here: the module
27           will be called snd-hda-intel.
28
29 config SND_HDA_TEGRA
30         tristate "NVIDIA Tegra HD Audio"
31         depends on ARCH_TEGRA
32         select SND_HDA
33         select SND_HDA_ALIGNED_MMIO
34         help
35           Say Y here to support the HDA controller present in NVIDIA
36           Tegra SoCs
37
38           This options enables support for the HD Audio controller
39           present in some NVIDIA Tegra SoCs, used to communicate audio
40           to the HDMI output.
41
42           To compile this driver as a module, choose M here: the module
43           will be called snd-hda-tegra.
44
45 if SND_HDA
46
47 config SND_HDA_HWDEP
48         bool "Build hwdep interface for HD-audio driver"
49         select SND_HWDEP
50         help
51           Say Y here to build a hwdep interface for HD-audio driver.
52           This interface can be used for out-of-band communication
53           with codecs for debugging purposes.
54
55 config SND_HDA_RECONFIG
56         bool "Allow dynamic codec reconfiguration"
57         help
58           Say Y here to enable the HD-audio codec re-configuration feature.
59           It allows user to clear the whole codec configuration, change the
60           codec setup, add extra verbs, and re-configure the codec dynamically.
61
62           Note that this item alone doesn't provide the sysfs interface, but
63           enables the feature just for the patch loader below.
64           If you need the traditional sysfs entries for the manual interaction,
65           turn on CONFIG_SND_HDA_HWDEP as well.
66
67 config SND_HDA_INPUT_BEEP
68         bool "Support digital beep via input layer"
69         depends on INPUT=y || INPUT=SND_HDA
70         help
71           Say Y here to build a digital beep interface for HD-audio
72           driver. This interface is used to generate digital beeps.
73
74 config SND_HDA_INPUT_BEEP_MODE
75         int "Digital beep registration mode (0=off, 1=on)"
76         depends on SND_HDA_INPUT_BEEP=y
77         default "1"
78         range 0 1
79         help
80           Set 0 to disable the digital beep interface for HD-audio by default.
81           Set 1 to always enable the digital beep interface for HD-audio by
82           default.
83
84 config SND_HDA_PATCH_LOADER
85         bool "Support initialization patch loading for HD-audio"
86         select FW_LOADER
87         select SND_HDA_RECONFIG
88         help
89           Say Y here to allow the HD-audio driver to load a pseudo
90           firmware file ("patch") for overriding the BIOS setup at
91           start up.  The "patch" file can be specified via patch module
92           option, such as patch=hda-init.
93
94 config SND_HDA_SCODEC_CS35L41
95         tristate
96         select SND_HDA_GENERIC
97         select REGMAP_IRQ
98
99 config SND_HDA_CS_DSP_CONTROLS
100         tristate
101         select FW_CS_DSP
102
103 config SND_HDA_SCODEC_CS35L41_I2C
104         tristate "Build CS35L41 HD-audio side codec support for I2C Bus"
105         depends on I2C
106         depends on ACPI
107         depends on SND_SOC
108         select SND_SOC_CS35L41_LIB
109         select SND_HDA_SCODEC_CS35L41
110         select SND_HDA_CS_DSP_CONTROLS
111         help
112           Say Y or M here to include CS35L41 I2C HD-audio side codec support
113           in snd-hda-intel driver, such as ALC287.
114
115 comment "Set to Y if you want auto-loading the side codec driver"
116         depends on SND_HDA=y && SND_HDA_SCODEC_CS35L41_I2C=m
117
118 config SND_HDA_SCODEC_CS35L41_SPI
119         tristate "Build CS35L41 HD-audio codec support for SPI Bus"
120         depends on SPI_MASTER
121         depends on ACPI
122         depends on SND_SOC
123         select SND_SOC_CS35L41_LIB
124         select SND_HDA_SCODEC_CS35L41
125         select SND_HDA_CS_DSP_CONTROLS
126         help
127           Say Y or M here to include CS35L41 SPI HD-audio side codec support
128           in snd-hda-intel driver, such as ALC287.
129
130 comment "Set to Y if you want auto-loading the side codec driver"
131         depends on SND_HDA=y && SND_HDA_SCODEC_CS35L41_SPI=m
132
133 config SND_HDA_SCODEC_CS35L56
134         tristate
135
136 config SND_HDA_SCODEC_CS35L56_I2C
137         tristate "Build CS35L56 HD-audio side codec support for I2C Bus"
138         depends on I2C
139         depends on ACPI || COMPILE_TEST
140         depends on SND_SOC
141         select CS_DSP
142         select SND_HDA_GENERIC
143         select SND_SOC_CS35L56_SHARED
144         select SND_HDA_SCODEC_CS35L56
145         select SND_HDA_CS_DSP_CONTROLS
146         help
147           Say Y or M here to include CS35L56 amplifier support with
148           I2C control.
149
150 config SND_HDA_SCODEC_CS35L56_SPI
151         tristate "Build CS35L56 HD-audio side codec support for SPI Bus"
152         depends on SPI_MASTER
153         depends on ACPI || COMPILE_TEST
154         depends on SND_SOC
155         select CS_DSP
156         select SND_HDA_GENERIC
157         select SND_SOC_CS35L56_SHARED
158         select SND_HDA_SCODEC_CS35L56
159         select SND_HDA_CS_DSP_CONTROLS
160         help
161           Say Y or M here to include CS35L56 amplifier support with
162           SPI control.
163
164 config SND_HDA_SCODEC_TAS2781_I2C
165         tristate "Build TAS2781 HD-audio side codec support for I2C Bus"
166         depends on I2C
167         depends on ACPI
168         depends on SND_SOC
169         select SND_SOC_TAS2781_COMLIB
170         select SND_SOC_TAS2781_FMWLIB
171         select CRC32_SARWATE
172         help
173           Say Y or M here to include TAS2781 I2C HD-audio side codec support
174           in snd-hda-intel driver, such as ALC287.
175
176 comment "Set to Y if you want auto-loading the side codec driver"
177         depends on SND_HDA=y && SND_HDA_SCODEC_TAS2781_I2C=m
178
179 config SND_HDA_CODEC_REALTEK
180         tristate "Build Realtek HD-audio codec support"
181         select SND_HDA_GENERIC
182         select SND_HDA_GENERIC_LEDS
183         help
184           Say Y or M here to include Realtek HD-audio codec support in
185           snd-hda-intel driver, such as ALC880.
186
187 comment "Set to Y if you want auto-loading the codec driver"
188         depends on SND_HDA=y && SND_HDA_CODEC_REALTEK=m
189
190 config SND_HDA_CODEC_ANALOG
191         tristate "Build Analog Devices HD-audio codec support"
192         select SND_HDA_GENERIC
193         help
194           Say Y or M here to include Analog Devices HD-audio codec support in
195           snd-hda-intel driver, such as AD1986A.
196
197 comment "Set to Y if you want auto-loading the codec driver"
198         depends on SND_HDA=y && SND_HDA_CODEC_ANALOG=m
199
200 config SND_HDA_CODEC_SIGMATEL
201         tristate "Build IDT/Sigmatel HD-audio codec support"
202         select SND_HDA_GENERIC
203         select SND_HDA_GENERIC_LEDS
204         help
205           Say Y or M here to include IDT (Sigmatel) HD-audio codec support in
206           snd-hda-intel driver, such as STAC9200.
207
208 comment "Set to Y if you want auto-loading the codec driver"
209         depends on SND_HDA=y && SND_HDA_CODEC_SIGMATEL=m
210
211 config SND_HDA_CODEC_VIA
212         tristate "Build VIA HD-audio codec support"
213         select SND_HDA_GENERIC
214         help
215           Say Y or M here to include VIA HD-audio codec support in
216           snd-hda-intel driver, such as VT1708.
217
218 comment "Set to Y if you want auto-loading the codec driver"
219         depends on SND_HDA=y && SND_HDA_CODEC_VIA=m
220
221 config SND_HDA_CODEC_HDMI
222         tristate "Build HDMI/DisplayPort HD-audio codec support"
223         select SND_DYNAMIC_MINORS
224         help
225           Say Y or M here to include HDMI and DisplayPort HD-audio codec
226           support in snd-hda-intel driver.  This includes all AMD/ATI,
227           Intel and Nvidia HDMI/DisplayPort codecs.
228
229           Note that this option mandatorily enables CONFIG_SND_DYNAMIC_MINORS
230           to assure the multiple streams for DP-MST support.
231
232 comment "Set to Y if you want auto-loading the codec driver"
233         depends on SND_HDA=y && SND_HDA_CODEC_HDMI=m
234
235 config SND_HDA_CODEC_CIRRUS
236         tristate "Build Cirrus Logic codec support"
237         select SND_HDA_GENERIC
238         help
239           Say Y or M here to include Cirrus Logic codec support in
240           snd-hda-intel driver, such as CS4206.
241
242 comment "Set to Y if you want auto-loading the codec driver"
243         depends on SND_HDA=y && SND_HDA_CODEC_CIRRUS=m
244
245 config SND_HDA_CODEC_CS8409
246         tristate "Build Cirrus Logic HDA bridge support"
247         select SND_HDA_GENERIC
248         help
249           Say Y or M here to include Cirrus Logic HDA bridge support in
250           snd-hda-intel driver, such as CS8409.
251
252 comment "Set to Y if you want auto-loading the codec driver"
253         depends on SND_HDA=y && SND_HDA_CODEC_CS8409=m
254
255 config SND_HDA_CODEC_CONEXANT
256         tristate "Build Conexant HD-audio codec support"
257         select SND_HDA_GENERIC
258         select SND_HDA_GENERIC_LEDS
259         help
260           Say Y or M here to include Conexant HD-audio codec support in
261           snd-hda-intel driver, such as CX20549.
262
263 comment "Set to Y if you want auto-loading the codec driver"
264         depends on SND_HDA=y && SND_HDA_CODEC_CONEXANT=m
265
266 config SND_HDA_CODEC_CA0110
267         tristate "Build Creative CA0110-IBG codec support"
268         select SND_HDA_GENERIC
269         help
270           Say Y or M here to include Creative CA0110-IBG codec support in
271           snd-hda-intel driver, found on some Creative X-Fi cards.
272
273 comment "Set to Y if you want auto-loading the codec driver"
274         depends on SND_HDA=y && SND_HDA_CODEC_CA0110=m
275
276 config SND_HDA_CODEC_CA0132
277         tristate "Build Creative CA0132 codec support"
278         help
279           Say Y or M here to include Creative CA0132 codec support in
280           snd-hda-intel driver.
281
282 comment "Set to Y if you want auto-loading the codec driver"
283         depends on SND_HDA=y && SND_HDA_CODEC_CA0132=m
284
285 config SND_HDA_CODEC_CA0132_DSP
286         bool "Support new DSP code for CA0132 codec"
287         depends on SND_HDA_CODEC_CA0132
288         default y
289         select SND_HDA_DSP_LOADER
290         select FW_LOADER
291         help
292           Say Y here to enable the DSP for Creative CA0132 for extended
293           features like equalizer or echo cancellation.
294
295           Note that this option requires the external firmware file
296           (ctefx.bin).
297
298 config SND_HDA_CODEC_CMEDIA
299         tristate "Build C-Media HD-audio codec support"
300         select SND_HDA_GENERIC
301         help
302           Say Y or M here to include C-Media HD-audio codec support in
303           snd-hda-intel driver, such as CMI9880.
304
305 comment "Set to Y if you want auto-loading the codec driver"
306         depends on SND_HDA=y && SND_HDA_CODEC_CMEDIA=m
307
308 config SND_HDA_CODEC_SI3054
309         tristate "Build Silicon Labs 3054 HD-modem codec support"
310         help
311           Say Y or M here to include Silicon Labs 3054 HD-modem codec
312           (and compatibles) support in snd-hda-intel driver.
313
314 comment "Set to Y if you want auto-loading the codec driver"
315         depends on SND_HDA=y && SND_HDA_CODEC_SI3054=m
316
317 config SND_HDA_GENERIC
318         tristate "Enable generic HD-audio codec parser"
319         select SND_CTL_LED if SND_HDA_GENERIC_LEDS
320         select LEDS_CLASS if SND_HDA_GENERIC_LEDS
321         help
322           Say Y or M here to enable the generic HD-audio codec parser
323           in snd-hda-intel driver.
324
325 comment "Set to Y if you want auto-loading the codec driver"
326         depends on SND_HDA=y && SND_HDA_GENERIC=m
327
328 config SND_HDA_POWER_SAVE_DEFAULT
329         int "Default time-out for HD-audio power-save mode"
330         depends on PM
331         default 0
332         help
333           The default time-out value in seconds for HD-audio automatic
334           power-save mode.  0 means to disable the power-save mode.
335
336 config SND_HDA_INTEL_HDMI_SILENT_STREAM
337         bool "Enable Silent Stream always for HDMI"
338         depends on SND_HDA_INTEL
339         help
340           Say Y to enable HD-Audio Keep Alive (KAE) aka Silent Stream
341           for HDMI on hardware that supports the feature.
342
343           When enabled, the HDMI/DisplayPort codec will continue to provide
344           a continuous clock and a valid but silent data stream to
345           any connected external receiver. This allows to avoid gaps
346           at start of playback. Many receivers require multiple seconds
347           to start playing audio after the clock has been stopped.
348           This feature can impact power consumption as resources
349           are kept reserved both at transmitter and receiver.
350
351 config SND_HDA_CTL_DEV_ID
352         bool "Use the device identifier field for controls"
353         depends on SND_HDA_INTEL
354         help
355           Say Y to use the device identifier field for (mixer)
356           controls (old behaviour until this option is available).
357
358           When enabled, the multiple HDA codecs may set the device
359           field in control (mixer) element identifiers. The use
360           of this field is not recommended and defined for mixer controls.
361
362           The old behaviour (Y) is obsolete and will be removed. Consider
363           to not enable this option.
364
365 endif
366
367 endmenu