xref: /openbmc/linux/sound/soc/codecs/Kconfig (revision 1f0214a8)
1# SPDX-License-Identifier: GPL-2.0-only
2# Helper to resolve issues with configs that have SPI enabled but I2C
3# modular, meaning we can't build the codec driver in with I2C support.
4# We use an ordered list of conditional defaults to pick the appropriate
5# setting - SPI can't be modular so that case doesn't need to be covered.
6config SND_SOC_I2C_AND_SPI
7	tristate
8	default m if I2C=m
9	default y if I2C=y
10	default y if SPI_MASTER=y
11
12menu "CODEC drivers"
13
14config SND_SOC_ALL_CODECS
15	tristate "Build all ASoC CODEC drivers"
16	depends on COMPILE_TEST
17	imply SND_SOC_88PM860X
18	imply SND_SOC_L3
19	imply SND_SOC_AB8500_CODEC
20	imply SND_SOC_AC97_CODEC
21	imply SND_SOC_AD1836
22	imply SND_SOC_AD193X_SPI
23	imply SND_SOC_AD193X_I2C
24	imply SND_SOC_AD1980
25	imply SND_SOC_AD73311
26	imply SND_SOC_ADAU1372_I2C
27	imply SND_SOC_ADAU1372_SPI
28	imply SND_SOC_ADAU1373
29	imply SND_SOC_ADAU1761_I2C
30	imply SND_SOC_ADAU1761_SPI
31	imply SND_SOC_ADAU1781_I2C
32	imply SND_SOC_ADAU1781_SPI
33	imply SND_SOC_ADAV801
34	imply SND_SOC_ADAV803
35	imply SND_SOC_ADAU1977_SPI
36	imply SND_SOC_ADAU1977_I2C
37	imply SND_SOC_ADAU1701
38	imply SND_SOC_ADAU7002
39	imply SND_SOC_ADAU7118_I2C
40	imply SND_SOC_ADAU7118_HW
41	imply SND_SOC_ADS117X
42	imply SND_SOC_AK4104
43	imply SND_SOC_AK4118
44	imply SND_SOC_AK4375
45	imply SND_SOC_AK4458
46	imply SND_SOC_AK4535
47	imply SND_SOC_AK4554
48	imply SND_SOC_AK4613
49	imply SND_SOC_AK4641
50	imply SND_SOC_AK4642
51	imply SND_SOC_AK4671
52	imply SND_SOC_AK5386
53	imply SND_SOC_AK5558
54	imply SND_SOC_ALC5623
55	imply SND_SOC_ALC5632
56	imply SND_SOC_AW8738
57	imply SND_SOC_BT_SCO
58	imply SND_SOC_BD28623
59	imply SND_SOC_CQ0093VC
60	imply SND_SOC_CROS_EC_CODEC
61	imply SND_SOC_CS35L32
62	imply SND_SOC_CS35L33
63	imply SND_SOC_CS35L34
64	imply SND_SOC_CS35L35
65	imply SND_SOC_CS35L36
66	imply SND_SOC_CS35L41_SPI
67	imply SND_SOC_CS35L41_I2C
68	imply SND_SOC_CS35L45_I2C
69	imply SND_SOC_CS35L45_SPI
70	imply SND_SOC_CS42L42
71	imply SND_SOC_CS42L51_I2C
72	imply SND_SOC_CS42L52
73	imply SND_SOC_CS42L56
74	imply SND_SOC_CS42L73
75	imply SND_SOC_CS4234
76	imply SND_SOC_CS4265
77	imply SND_SOC_CS4270
78	imply SND_SOC_CS4271_I2C
79	imply SND_SOC_CS4271_SPI
80	imply SND_SOC_CS42XX8_I2C
81	imply SND_SOC_CS43130
82	imply SND_SOC_CS4341
83	imply SND_SOC_CS4349
84	imply SND_SOC_CS47L15
85	imply SND_SOC_CS47L24
86	imply SND_SOC_CS47L35
87	imply SND_SOC_CS47L85
88	imply SND_SOC_CS47L90
89	imply SND_SOC_CS47L92
90	imply SND_SOC_CS53L30
91	imply SND_SOC_CX20442
92	imply SND_SOC_CX2072X
93	imply SND_SOC_DA7210
94	imply SND_SOC_DA7213
95	imply SND_SOC_DA7218
96	imply SND_SOC_DA7219
97	imply SND_SOC_DA732X
98	imply SND_SOC_DA9055
99	imply SND_SOC_DMIC
100	imply SND_SOC_ES8316
101	imply SND_SOC_ES8328_SPI
102	imply SND_SOC_ES8328_I2C
103	imply SND_SOC_ES7134
104	imply SND_SOC_ES7241
105	imply SND_SOC_GTM601
106	imply SND_SOC_HDAC_HDMI
107	imply SND_SOC_HDAC_HDA
108	imply SND_SOC_ICS43432
109	imply SND_SOC_INNO_RK3036
110	imply SND_SOC_ISABELLE
111	imply SND_SOC_JZ4740_CODEC
112	imply SND_SOC_JZ4725B_CODEC
113	imply SND_SOC_JZ4760_CODEC
114	imply SND_SOC_JZ4770_CODEC
115	imply SND_SOC_LM4857
116	imply SND_SOC_LM49453
117	imply SND_SOC_LOCHNAGAR_SC
118	imply SND_SOC_MAX98088
119	imply SND_SOC_MAX98090
120	imply SND_SOC_MAX98095
121	imply SND_SOC_MAX98357A
122	imply SND_SOC_MAX98371
123	imply SND_SOC_MAX98504
124	imply SND_SOC_MAX98520
125	imply SND_SOC_MAX9867
126	imply SND_SOC_MAX98925
127	imply SND_SOC_MAX98926
128	imply SND_SOC_MAX98927
129	imply SND_SOC_MAX98373_I2C
130	imply SND_SOC_MAX98373_SDW
131	imply SND_SOC_MAX98390
132	imply SND_SOC_MAX9850
133	imply SND_SOC_MAX9860
134	imply SND_SOC_MAX9759
135	imply SND_SOC_MAX9768
136	imply SND_SOC_MAX9877
137	imply SND_SOC_MC13783
138	imply SND_SOC_ML26124
139	imply SND_SOC_MT6351
140	imply SND_SOC_MT6358
141	imply SND_SOC_MT6359
142	imply SND_SOC_MT6660
143	imply SND_SOC_NAU8315
144	imply SND_SOC_NAU8540
145	imply SND_SOC_NAU8810
146	imply SND_SOC_NAU8821
147	imply SND_SOC_NAU8822
148	imply SND_SOC_NAU8824
149	imply SND_SOC_NAU8825
150	imply SND_SOC_HDMI_CODEC
151	imply SND_SOC_PCM1681
152	imply SND_SOC_PCM1789_I2C
153	imply SND_SOC_PCM179X_I2C
154	imply SND_SOC_PCM179X_SPI
155	imply SND_SOC_PCM186X_I2C
156	imply SND_SOC_PCM186X_SPI
157	imply SND_SOC_PCM3008
158	imply SND_SOC_PCM3060_I2C
159	imply SND_SOC_PCM3060_SPI
160	imply SND_SOC_PCM3168A_I2C
161	imply SND_SOC_PCM3168A_SPI
162	imply SND_SOC_PCM5102A
163	imply SND_SOC_PCM512x_I2C
164	imply SND_SOC_PCM512x_SPI
165	imply SND_SOC_RK3328
166	imply SND_SOC_RK817
167	imply SND_SOC_RT274
168	imply SND_SOC_RT286
169	imply SND_SOC_RT298
170	imply SND_SOC_RT1011
171	imply SND_SOC_RT1015
172	imply SND_SOC_RT1015P
173	imply SND_SOC_RT1016
174	imply SND_SOC_RT1019
175	imply SND_SOC_RT1305
176	imply SND_SOC_RT1308
177	imply SND_SOC_RT5514
178	imply SND_SOC_RT5616
179	imply SND_SOC_RT5631
180	imply SND_SOC_RT5640
181	imply SND_SOC_RT5645
182	imply SND_SOC_RT5651
183	imply SND_SOC_RT5659
184	imply SND_SOC_RT5660
185	imply SND_SOC_RT5663
186	imply SND_SOC_RT5665
187	imply SND_SOC_RT5668
188	imply SND_SOC_RT5670
189	imply SND_SOC_RT5677
190	imply SND_SOC_RT5682_I2C
191	imply SND_SOC_RT5682_SDW
192	imply SND_SOC_RT5682S
193	imply SND_SOC_RT700_SDW
194	imply SND_SOC_RT711_SDW
195	imply SND_SOC_RT711_SDCA_SDW
196	imply SND_SOC_RT715_SDW
197	imply SND_SOC_RT715_SDCA_SDW
198	imply SND_SOC_RT1308_SDW
199	imply SND_SOC_RT1316_SDW
200	imply SND_SOC_RT9120
201	imply SND_SOC_SDW_MOCKUP
202	imply SND_SOC_SGTL5000
203	imply SND_SOC_SI476X
204	imply SND_SOC_SIMPLE_AMPLIFIER
205	imply SND_SOC_SIMPLE_MUX
206	imply SND_SOC_SPDIF
207	imply SND_SOC_SSM2305
208	imply SND_SOC_SSM2518
209	imply SND_SOC_SSM2602_SPI
210	imply SND_SOC_SSM2602_I2C
211	imply SND_SOC_SSM4567
212	imply SND_SOC_STA32X
213	imply SND_SOC_STA350
214	imply SND_SOC_STA529
215	imply SND_SOC_STAC9766
216	imply SND_SOC_STI_SAS
217	imply SND_SOC_TAS2552
218	imply SND_SOC_TAS2562
219	imply SND_SOC_TAS2764
220	imply SND_SOC_TAS2770
221	imply SND_SOC_TAS5086
222	imply SND_SOC_TAS571X
223	imply SND_SOC_TAS5720
224	imply SND_SOC_TAS6424
225	imply SND_SOC_TDA7419
226	imply SND_SOC_TFA9879
227	imply SND_SOC_TFA989X
228	imply SND_SOC_TLV320ADC3XXX
229	imply SND_SOC_TLV320ADCX140
230	imply SND_SOC_TLV320AIC23_I2C
231	imply SND_SOC_TLV320AIC23_SPI
232	imply SND_SOC_TLV320AIC26
233	imply SND_SOC_TLV320AIC31XX
234	imply SND_SOC_TLV320AIC32X4_I2C
235	imply SND_SOC_TLV320AIC32X4_SPI
236	imply SND_SOC_TLV320AIC3X_I2C
237	imply SND_SOC_TLV320AIC3X_SPI
238	imply SND_SOC_TPA6130A2
239	imply SND_SOC_TLV320DAC33
240	imply SND_SOC_TSCS42XX
241	imply SND_SOC_TSCS454
242	imply SND_SOC_TS3A227E
243	imply SND_SOC_TWL4030
244	imply SND_SOC_TWL6040
245	imply SND_SOC_UDA1334
246	imply SND_SOC_UDA134X
247	imply SND_SOC_UDA1380
248	imply SND_SOC_WCD9335
249	imply SND_SOC_WCD934X
250	imply SND_SOC_WCD938X_SDW
251	imply SND_SOC_LPASS_MACRO_COMMON
252	imply SND_SOC_LPASS_RX_MACRO
253	imply SND_SOC_LPASS_TX_MACRO
254	imply SND_SOC_WL1273
255	imply SND_SOC_WM0010
256	imply SND_SOC_WM1250_EV1
257	imply SND_SOC_WM2000
258	imply SND_SOC_WM2200
259	imply SND_SOC_WM5100
260	imply SND_SOC_WM5102
261	imply SND_SOC_WM5110
262	imply SND_SOC_WM8350
263	imply SND_SOC_WM8400
264	imply SND_SOC_WM8510
265	imply SND_SOC_WM8523
266	imply SND_SOC_WM8524
267	imply SND_SOC_WM8580
268	imply SND_SOC_WM8711
269	imply SND_SOC_WM8727
270	imply SND_SOC_WM8728
271	imply SND_SOC_WM8731_I2C
272	imply SND_SOC_WM8731_SPI
273	imply SND_SOC_WM8737
274	imply SND_SOC_WM8741
275	imply SND_SOC_WM8750
276	imply SND_SOC_WM8753
277	imply SND_SOC_WM8770
278	imply SND_SOC_WM8776
279	imply SND_SOC_WM8782
280	imply SND_SOC_WM8804_I2C
281	imply SND_SOC_WM8804_SPI
282	imply SND_SOC_WM8900
283	imply SND_SOC_WM8903
284	imply SND_SOC_WM8904
285	imply SND_SOC_WM8940
286	imply SND_SOC_WM8955
287	imply SND_SOC_WM8960
288	imply SND_SOC_WM8961
289	imply SND_SOC_WM8962
290	imply SND_SOC_WM8971
291	imply SND_SOC_WM8974
292	imply SND_SOC_WM8978
293	imply SND_SOC_WM8983
294	imply SND_SOC_WM8985
295	imply SND_SOC_WM8988
296	imply SND_SOC_WM8990
297	imply SND_SOC_WM8991
298	imply SND_SOC_WM8993
299	imply SND_SOC_WM8994
300	imply SND_SOC_WM8995
301	imply SND_SOC_WM8996
302	imply SND_SOC_WM8997
303	imply SND_SOC_WM8998
304	imply SND_SOC_WM9081
305	imply SND_SOC_WM9090
306	imply SND_SOC_WM9705
307	imply SND_SOC_WM9712
308	imply SND_SOC_WM9713
309	imply SND_SOC_WSA881X
310	imply SND_SOC_ZL38060
311	help
312	  Normally ASoC codec drivers are only built if a machine driver which
313	  uses them is also built since they are only usable with a machine
314	  driver.  Selecting this option will allow these drivers to be built
315	  without an explicit machine driver for test and development purposes.
316
317	  Support for the bus types used to access the codecs to be built must
318	  be selected separately.
319
320	  If unsure select "N".
321
322config SND_SOC_88PM860X
323	tristate
324	depends on MFD_88PM860X
325
326config SND_SOC_ARIZONA
327	tristate
328	default y if SND_SOC_CS47L24=y
329	default y if SND_SOC_WM5102=y
330	default y if SND_SOC_WM5110=y
331	default y if SND_SOC_WM8997=y
332	default y if SND_SOC_WM8998=y
333	default m if SND_SOC_CS47L24=m
334	default m if SND_SOC_WM5102=m
335	default m if SND_SOC_WM5110=m
336	default m if SND_SOC_WM8997=m
337	default m if SND_SOC_WM8998=m
338
339config SND_SOC_WM_HUBS
340	tristate
341	default y if SND_SOC_WM8993=y || SND_SOC_WM8994=y
342	default m if SND_SOC_WM8993=m || SND_SOC_WM8994=m
343
344config SND_SOC_WM_ADSP
345	tristate
346	select CS_DSP
347	select SND_SOC_COMPRESS
348	default y if SND_SOC_MADERA=y
349	default y if SND_SOC_CS47L24=y
350	default y if SND_SOC_WM5102=y
351	default y if SND_SOC_WM5110=y
352	default y if SND_SOC_WM2200=y
353	default y if SND_SOC_CS35L41_SPI=y
354	default y if SND_SOC_CS35L41_I2C=y
355	default m if SND_SOC_MADERA=m
356	default m if SND_SOC_CS47L24=m
357	default m if SND_SOC_WM5102=m
358	default m if SND_SOC_WM5110=m
359	default m if SND_SOC_WM2200=m
360	default m if SND_SOC_CS35L41_SPI=m
361	default m if SND_SOC_CS35L41_I2C=m
362
363config SND_SOC_AB8500_CODEC
364	tristate
365	depends on ABX500_CORE
366
367config SND_SOC_AC97_CODEC
368	tristate "Build generic ASoC AC97 CODEC driver"
369	select SND_AC97_CODEC
370	select SND_SOC_AC97_BUS
371
372config SND_SOC_AD1836
373	tristate
374	depends on SPI_MASTER
375
376config SND_SOC_AD193X
377	tristate
378
379config SND_SOC_AD193X_SPI
380	tristate
381	depends on SPI_MASTER
382	select SND_SOC_AD193X
383
384config SND_SOC_AD193X_I2C
385	tristate
386	depends on I2C
387	select SND_SOC_AD193X
388
389config SND_SOC_AD1980
390	tristate
391	depends on SND_SOC_AC97_BUS
392	select REGMAP_AC97
393
394config SND_SOC_AD73311
395	tristate
396
397config SND_SOC_ADAU_UTILS
398	tristate
399
400config SND_SOC_ADAU1372
401	tristate
402	select SND_SOC_ADAU_UTILS
403
404config SND_SOC_ADAU1372_I2C
405	tristate "Analog Devices ADAU1372 CODEC (I2C)"
406	depends on I2C
407	select SND_SOC_ADAU1372
408	select REGMAP_I2C
409
410config SND_SOC_ADAU1372_SPI
411	tristate "Analog Devices ADAU1372 CODEC (SPI)"
412	depends on SPI
413	select SND_SOC_ADAU1372
414	select REGMAP_SPI
415
416config SND_SOC_ADAU1373
417	tristate
418	depends on I2C
419	select SND_SOC_ADAU_UTILS
420
421config SND_SOC_ADAU1701
422	tristate "Analog Devices ADAU1701 CODEC"
423	depends on I2C
424	select SND_SOC_SIGMADSP_I2C
425
426config SND_SOC_ADAU17X1
427	tristate
428	select SND_SOC_SIGMADSP_REGMAP
429	select SND_SOC_ADAU_UTILS
430
431config SND_SOC_ADAU1761
432	tristate
433	select SND_SOC_ADAU17X1
434
435config SND_SOC_ADAU1761_I2C
436	tristate "Analog Devices AU1761 CODEC - I2C"
437	depends on I2C
438	select SND_SOC_ADAU1761
439	select REGMAP_I2C
440
441config SND_SOC_ADAU1761_SPI
442	tristate "Analog Devices AU1761 CODEC - SPI"
443	depends on SPI
444	select SND_SOC_ADAU1761
445	select REGMAP_SPI
446
447config SND_SOC_ADAU1781
448	select SND_SOC_ADAU17X1
449	tristate
450
451config SND_SOC_ADAU1781_I2C
452	tristate
453	depends on I2C
454	select SND_SOC_ADAU1781
455	select REGMAP_I2C
456
457config SND_SOC_ADAU1781_SPI
458	tristate
459	depends on SPI_MASTER
460	select SND_SOC_ADAU1781
461	select REGMAP_SPI
462
463config SND_SOC_ADAU1977
464	tristate
465
466config SND_SOC_ADAU1977_SPI
467	tristate
468	depends on SPI_MASTER
469	select SND_SOC_ADAU1977
470	select REGMAP_SPI
471
472config SND_SOC_ADAU1977_I2C
473	tristate
474	depends on I2C
475	select SND_SOC_ADAU1977
476	select REGMAP_I2C
477
478config SND_SOC_ADAU7002
479	tristate "Analog Devices ADAU7002 Stereo PDM-to-I2S/TDM Converter"
480
481config SND_SOC_ADAU7118
482	tristate
483
484config SND_SOC_ADAU7118_HW
485	tristate "Analog Devices ADAU7118 8 Channel PDM-to-I2S/TDM Converter - HW Mode"
486	select SND_SOC_ADAU7118
487	help
488	  Enable support for the Analog Devices ADAU7118 8 Channel PDM-to-I2S/TDM
489	  Converter. In this mode, the device works in standalone mode which
490	  means that there is no bus to communicate with it. Stereo mode is not
491	  supported in this mode.
492
493	  To compile this driver as a module, choose M here: the module
494	  will be called snd-soc-adau7118-hw.
495
496config SND_SOC_ADAU7118_I2C
497	tristate "Analog Devices ADAU7118 8 Channel PDM-to-I2S/TDM Converter - I2C"
498	depends on I2C
499	select SND_SOC_ADAU7118
500	select REGMAP_I2C
501	help
502	  Enable support for the Analog Devices ADAU7118 8 Channel PDM-to-I2S/TDM
503	  Converter over I2C. This gives full support over the device.
504
505	  To compile this driver as a module, choose M here: the module
506	  will be called snd-soc-adau7118-i2c.
507
508config SND_SOC_ADAV80X
509	tristate
510
511config SND_SOC_ADAV801
512	tristate
513	depends on SPI_MASTER
514	select SND_SOC_ADAV80X
515
516config SND_SOC_ADAV803
517	tristate
518	depends on I2C
519	select SND_SOC_ADAV80X
520
521config SND_SOC_ADS117X
522	tristate
523
524config SND_SOC_AK4104
525	tristate "AKM AK4104 CODEC"
526	depends on SPI_MASTER
527
528config SND_SOC_AK4118
529	tristate "AKM AK4118 CODEC"
530	depends on I2C
531	select REGMAP_I2C
532
533config SND_SOC_AK4375
534	tristate "AKM AK4375 CODEC"
535	depends on I2C
536	select REGMAP_I2C
537	help
538	  Enable support for the Asahi-Kasei AK4375 codec.
539
540	  To compile this driver as a module, choose M here: the module
541	  will be called snd-soc-ak4375.
542
543config SND_SOC_AK4458
544	tristate "AKM AK4458 CODEC"
545	depends on I2C
546	select REGMAP_I2C
547
548config SND_SOC_AK4535
549	tristate
550	depends on I2C
551
552config SND_SOC_AK4554
553	tristate "AKM AK4554 CODEC"
554
555config SND_SOC_AK4613
556	tristate "AKM AK4613 CODEC"
557	depends on I2C
558
559config SND_SOC_AK4641
560	tristate
561	depends on I2C
562
563config SND_SOC_AK4642
564	tristate "AKM AK4642 CODEC"
565	depends on I2C
566
567config SND_SOC_AK4671
568	tristate
569	depends on I2C
570
571config SND_SOC_AK5386
572	tristate "AKM AK5638 CODEC"
573
574config SND_SOC_AK5558
575	tristate "AKM AK5558 CODEC"
576	depends on I2C
577	select REGMAP_I2C
578
579config SND_SOC_ALC5623
580	tristate "Realtek ALC5623 CODEC"
581	depends on I2C
582
583config SND_SOC_ALC5632
584	tristate
585	depends on I2C
586
587config SND_SOC_AW8738
588	tristate "Awinic AW8738 Audio Amplifier"
589	select GPIOLIB
590	help
591	  Enable support for the Awinic AW8738 audio amplifier (or similar).
592	  The driver supports simple audio amplifiers similar to
593	  SND_SOC_SIMPLE_AMPLIFIER, but additionally allows setting the
594	  operation mode using the Awinic-specific one-wire pulse control.
595
596config SND_SOC_BD28623
597	tristate "ROHM BD28623 CODEC"
598	help
599	  Enable support for ROHM BD28623MUV Class D speaker amplifier.
600	  This codec does not have any control buses such as I2C, it
601	  detect format of I2S automatically.
602
603config SND_SOC_BT_SCO
604	tristate "Dummy BT SCO codec driver"
605
606config SND_SOC_CPCAP
607	tristate "Motorola CPCAP codec"
608	depends on MFD_CPCAP
609
610config SND_SOC_CQ0093VC
611	tristate
612
613config SND_SOC_CROS_EC_CODEC
614	tristate "codec driver for ChromeOS EC"
615	depends on CROS_EC
616	select CRYPTO
617	select CRYPTO_LIB_SHA256
618	help
619	  If you say yes here you will get support for the
620	  ChromeOS Embedded Controller's Audio Codec.
621
622config SND_SOC_CS35L32
623	tristate "Cirrus Logic CS35L32 CODEC"
624	depends on I2C
625
626config SND_SOC_CS35L33
627	tristate "Cirrus Logic CS35L33 CODEC"
628	depends on I2C
629
630config SND_SOC_CS35L34
631	tristate "Cirrus Logic CS35L34 CODEC"
632	depends on I2C
633
634config SND_SOC_CS35L35
635	tristate "Cirrus Logic CS35L35 CODEC"
636	depends on I2C
637
638config SND_SOC_CS35L36
639	tristate "Cirrus Logic CS35L36 CODEC"
640	depends on I2C
641
642config SND_SOC_CS35L41_LIB
643	tristate
644
645config SND_SOC_CS35L41
646	tristate
647
648config SND_SOC_CS35L41_SPI
649	tristate "Cirrus Logic CS35L41 CODEC (SPI)"
650	depends on SPI_MASTER
651	select SND_SOC_CS35L41_LIB
652	select SND_SOC_CS35L41
653	select REGMAP_SPI
654
655config SND_SOC_CS35L41_I2C
656	tristate "Cirrus Logic CS35L41 CODEC (I2C)"
657	depends on I2C
658	select SND_SOC_CS35L41_LIB
659	select SND_SOC_CS35L41
660	select REGMAP_I2C
661
662config SND_SOC_CS35L45_TABLES
663	tristate
664
665config SND_SOC_CS35L45
666	tristate
667
668config SND_SOC_CS35L45_SPI
669	tristate "Cirrus Logic CS35L45 CODEC (SPI)"
670	depends on SPI_MASTER
671	select REGMAP
672	select REGMAP_SPI
673	select SND_SOC_CS35L45_TABLES
674	select SND_SOC_CS35L45
675	help
676	  Enable support for Cirrus Logic CS35L45 smart speaker amplifier
677	  with SPI control.
678
679config SND_SOC_CS35L45_I2C
680	tristate "Cirrus Logic CS35L45 CODEC (I2C)"
681	depends on I2C
682	select REGMAP
683	select REGMAP_I2C
684	select SND_SOC_CS35L45_TABLES
685	select SND_SOC_CS35L45
686	help
687	  Enable support for Cirrus Logic CS35L45 smart speaker amplifier
688	  with I2C control.
689
690config SND_SOC_CS42L42
691	tristate "Cirrus Logic CS42L42 CODEC"
692	depends on I2C
693
694config SND_SOC_CS42L51
695	tristate
696
697config SND_SOC_CS42L51_I2C
698	tristate "Cirrus Logic CS42L51 CODEC (I2C)"
699	depends on I2C
700	select SND_SOC_CS42L51
701
702config SND_SOC_CS42L52
703	tristate "Cirrus Logic CS42L52 CODEC"
704	depends on I2C && INPUT
705
706config SND_SOC_CS42L56
707	tristate "Cirrus Logic CS42L56 CODEC"
708	depends on I2C && INPUT
709
710config SND_SOC_CS42L73
711	tristate "Cirrus Logic CS42L73 CODEC"
712	depends on I2C
713
714config SND_SOC_CS4234
715	tristate "Cirrus Logic CS4234 CODEC"
716	depends on I2C
717	select REGMAP_I2C
718
719config SND_SOC_CS4265
720	tristate "Cirrus Logic CS4265 CODEC"
721	depends on I2C
722	select REGMAP_I2C
723
724# Cirrus Logic CS4270 Codec
725config SND_SOC_CS4270
726	tristate "Cirrus Logic CS4270 CODEC"
727	depends on I2C
728
729# Cirrus Logic CS4270 Codec VD = 3.3V Errata
730# Select if you are affected by the errata where the part will not function
731# if MCLK divide-by-1.5 is selected and VD is set to 3.3V.  The driver will
732# not select any sample rates that require MCLK to be divided by 1.5.
733config SND_SOC_CS4270_VD33_ERRATA
734	bool
735	depends on SND_SOC_CS4270
736
737config SND_SOC_CS4271
738	tristate
739
740config SND_SOC_CS4271_I2C
741	tristate "Cirrus Logic CS4271 CODEC (I2C)"
742	depends on I2C
743	select SND_SOC_CS4271
744	select REGMAP_I2C
745
746config SND_SOC_CS4271_SPI
747	tristate "Cirrus Logic CS4271 CODEC (SPI)"
748	depends on SPI_MASTER
749	select SND_SOC_CS4271
750	select REGMAP_SPI
751
752config SND_SOC_CS42XX8
753	tristate
754
755config SND_SOC_CS42XX8_I2C
756	tristate "Cirrus Logic CS42448/CS42888 CODEC (I2C)"
757	depends on I2C
758	select SND_SOC_CS42XX8
759	select REGMAP_I2C
760
761# Cirrus Logic CS43130 HiFi DAC
762config SND_SOC_CS43130
763	tristate "Cirrus Logic CS43130 CODEC"
764	depends on I2C
765
766config SND_SOC_CS4341
767	tristate "Cirrus Logic CS4341 CODEC"
768	depends on SND_SOC_I2C_AND_SPI
769	select REGMAP_I2C if I2C
770	select REGMAP_SPI if SPI_MASTER
771
772# Cirrus Logic CS4349 HiFi DAC
773config SND_SOC_CS4349
774	tristate "Cirrus Logic CS4349 CODEC"
775	depends on I2C
776
777config SND_SOC_CS47L15
778	tristate
779	depends on MFD_CS47L15
780
781config SND_SOC_CS47L24
782	tristate
783	depends on MFD_CS47L24 && MFD_ARIZONA
784
785config SND_SOC_CS47L35
786	tristate
787	depends on MFD_CS47L35
788
789config SND_SOC_CS47L85
790	tristate
791	depends on MFD_CS47L85
792
793config SND_SOC_CS47L90
794	tristate
795	depends on MFD_CS47L90
796
797config SND_SOC_CS47L92
798	tristate
799	depends on MFD_CS47L92
800
801# Cirrus Logic Quad-Channel ADC
802config SND_SOC_CS53L30
803	tristate "Cirrus Logic CS53L30 CODEC"
804	depends on I2C
805
806config SND_SOC_CX20442
807	tristate
808	depends on TTY
809
810config SND_SOC_CX2072X
811	tristate "Conexant CX2072X CODEC"
812	depends on I2C
813	help
814	  Enable support for Conexant CX20721 and CX20723 codec chips.
815
816config SND_SOC_JZ4740_CODEC
817	depends on MACH_INGENIC || COMPILE_TEST
818	depends on OF
819	select REGMAP_MMIO
820	tristate "Ingenic JZ4740 internal CODEC"
821	help
822	  Enable support for the internal CODEC found in the JZ4740 SoC
823	  from Ingenic.
824
825	  This driver can also be built as a module. If so, the module
826	  will be called snd-soc-jz4740-codec.
827
828config SND_SOC_JZ4725B_CODEC
829	depends on MACH_INGENIC || COMPILE_TEST
830	depends on OF
831	select REGMAP
832	tristate "Ingenic JZ4725B internal CODEC"
833	help
834	  Enable support for the internal CODEC found in the JZ4725B SoC
835	  from Ingenic.
836
837	  This driver can also be built as a module. If so, the module
838	  will be called snd-soc-jz4725b-codec.
839
840config SND_SOC_JZ4760_CODEC
841        depends on MACH_INGENIC || COMPILE_TEST
842        depends on OF
843        select REGMAP
844        tristate "Ingenic JZ4760 internal CODEC"
845        help
846          Enable support for the internal CODEC found in the JZ4760 SoC
847          from Ingenic.
848
849          This driver can also be built as a module. If so, the module
850          will be called snd-soc-jz4760-codec.
851
852config SND_SOC_JZ4770_CODEC
853	depends on MACH_INGENIC || COMPILE_TEST
854	depends on OF
855	select REGMAP
856	tristate "Ingenic JZ4770 internal CODEC"
857	help
858	  Enable support for the internal CODEC found in the JZ4770 SoC
859	  from Ingenic.
860
861	  This driver can also be built as a module. If so, the module
862	  will be called snd-soc-jz4770-codec.
863
864config SND_SOC_L3
865	tristate
866
867config SND_SOC_DA7210
868	tristate
869	depends on SND_SOC_I2C_AND_SPI
870
871config SND_SOC_DA7213
872	tristate "Dialog DA7213 CODEC"
873	depends on I2C
874
875config SND_SOC_DA7218
876	tristate
877	depends on I2C
878
879config SND_SOC_DA7219
880	tristate
881	depends on I2C
882
883config SND_SOC_DA732X
884	tristate
885	depends on I2C
886
887config SND_SOC_DA9055
888	tristate
889	depends on I2C
890
891config SND_SOC_DMIC
892	tristate "Generic Digital Microphone CODEC"
893	help
894	  Enable support for the Generic Digital Microphone CODEC.
895	  Select this if your sound card has DMICs.
896
897config SND_SOC_HDMI_CODEC
898	tristate
899	select SND_PCM_ELD
900	select SND_PCM_IEC958
901	select HDMI
902
903config SND_SOC_ES7134
904	tristate "Everest Semi ES7134 CODEC"
905
906config SND_SOC_ES7241
907	tristate "Everest Semi ES7241 CODEC"
908
909config SND_SOC_ES8316
910	tristate "Everest Semi ES8316 CODEC"
911	depends on I2C
912
913config SND_SOC_ES8328
914	tristate
915
916config SND_SOC_ES8328_I2C
917	tristate "Everest Semi ES8328 CODEC (I2C)"
918	depends on I2C
919	select SND_SOC_ES8328
920
921config SND_SOC_ES8328_SPI
922	tristate "Everest Semi ES8328 CODEC (SPI)"
923	depends on SPI_MASTER
924	select SND_SOC_ES8328
925
926config SND_SOC_GTM601
927	tristate 'GTM601 UMTS modem audio codec'
928
929config SND_SOC_HDAC_HDMI
930	tristate
931	select SND_HDA_EXT_CORE
932	select SND_PCM_ELD
933	select HDMI
934
935config SND_SOC_HDAC_HDA
936	tristate
937	select SND_HDA
938
939config SND_SOC_ICS43432
940	tristate "ICS43423 and compatible i2s microphones"
941
942config SND_SOC_INNO_RK3036
943	tristate "Inno codec driver for RK3036 SoC"
944	select REGMAP_MMIO
945
946config SND_SOC_ISABELLE
947	tristate
948	depends on I2C
949
950config SND_SOC_LM49453
951	tristate
952	depends on I2C
953
954config SND_SOC_LOCHNAGAR_SC
955	tristate "Lochnagar Sound Card"
956	depends on MFD_LOCHNAGAR
957	help
958	  This driver support the sound card functionality of the Cirrus
959	  Logic Lochnagar audio development board.
960
961config SND_SOC_MADERA
962	tristate
963	default y if SND_SOC_CS47L15=y
964	default y if SND_SOC_CS47L35=y
965	default y if SND_SOC_CS47L85=y
966	default y if SND_SOC_CS47L90=y
967	default y if SND_SOC_CS47L92=y
968	default m if SND_SOC_CS47L15=m
969	default m if SND_SOC_CS47L35=m
970	default m if SND_SOC_CS47L85=m
971	default m if SND_SOC_CS47L90=m
972	default m if SND_SOC_CS47L92=m
973
974config SND_SOC_MAX98088
975	tristate "Maxim MAX98088/9 Low-Power, Stereo Audio Codec"
976	depends on I2C
977
978config SND_SOC_MAX98090
979	tristate
980	depends on I2C
981
982config SND_SOC_MAX98095
983	tristate
984	depends on I2C
985
986config SND_SOC_MAX98357A
987	tristate "Maxim MAX98357A CODEC"
988	depends on GPIOLIB
989
990config SND_SOC_MAX98371
991	tristate
992	depends on I2C
993
994config SND_SOC_MAX98504
995	tristate "Maxim MAX98504 speaker amplifier"
996	depends on I2C
997
998config SND_SOC_MAX9867
999	tristate "Maxim MAX9867 CODEC"
1000	depends on I2C
1001
1002config SND_SOC_MAX98925
1003	tristate
1004	depends on I2C
1005
1006config SND_SOC_MAX98926
1007	tristate
1008	depends on I2C
1009
1010config SND_SOC_MAX98927
1011	tristate "Maxim Integrated MAX98927 Speaker Amplifier"
1012	depends on I2C
1013
1014config SND_SOC_MAX98520
1015	tristate "Maxim Integrated MAX98520 Speaker Amplifier"
1016	depends on I2C
1017	help
1018	  Enable support for Maxim Integrated MAX98520 audio
1019	  amplifier, which implements a tripler charge pump
1020	  based boost converter and supports sample rates of
1021	  8KHz to 192KHz.
1022
1023	  To compile this driver as a module, choose M here.
1024
1025config SND_SOC_MAX98373
1026	tristate
1027
1028config SND_SOC_MAX98373_I2C
1029	tristate "Maxim Integrated MAX98373 Speaker Amplifier"
1030	depends on I2C
1031	select SND_SOC_MAX98373
1032
1033config SND_SOC_MAX98373_SDW
1034	tristate "Maxim Integrated MAX98373 Speaker Amplifier - SDW"
1035	depends on SOUNDWIRE
1036	select SND_SOC_MAX98373
1037	select REGMAP_SOUNDWIRE
1038	help
1039	  Enable support for Maxim Integrated MAX98373 Soundwire
1040	  amplifier. MAX98373 supports either the MIPI SoundWire
1041	  compatible interface for audio and control data, or
1042	  the PCM interface for audio data and a standard I2C
1043	  interface for control data. Select this if MAX98373 is
1044	  connected via soundwire.
1045
1046config SND_SOC_MAX98390
1047	tristate "Maxim Integrated MAX98390 Speaker Amplifier"
1048	depends on I2C
1049
1050config SND_SOC_MAX9850
1051	tristate
1052	depends on I2C
1053
1054config SND_SOC_MAX9860
1055	tristate "Maxim MAX9860 Mono Audio Voice Codec"
1056	depends on I2C
1057	select REGMAP_I2C
1058
1059config SND_SOC_MSM8916_WCD_ANALOG
1060	tristate "Qualcomm MSM8916 WCD Analog Codec"
1061	depends on SPMI || COMPILE_TEST
1062
1063config SND_SOC_MSM8916_WCD_DIGITAL
1064	tristate "Qualcomm MSM8916 WCD DIGITAL Codec"
1065	select REGMAP_MMIO
1066
1067config SND_SOC_PCM1681
1068	tristate "Texas Instruments PCM1681 CODEC"
1069	depends on I2C
1070
1071config SND_SOC_PCM1789
1072	tristate
1073
1074config SND_SOC_PCM1789_I2C
1075	tristate "Texas Instruments PCM1789 CODEC (I2C)"
1076	depends on I2C
1077	select SND_SOC_PCM1789
1078	help
1079	  Enable support for Texas Instruments PCM1789 CODEC.
1080	  Select this if your PCM1789 is connected via an I2C bus.
1081
1082config SND_SOC_PCM179X
1083	tristate
1084
1085config SND_SOC_PCM179X_I2C
1086	tristate "Texas Instruments PCM179X CODEC (I2C)"
1087	depends on I2C
1088	select SND_SOC_PCM179X
1089	help
1090	  Enable support for Texas Instruments PCM179x CODEC.
1091	  Select this if your PCM179x is connected via an I2C bus.
1092
1093config SND_SOC_PCM179X_SPI
1094	tristate "Texas Instruments PCM179X CODEC (SPI)"
1095	depends on SPI_MASTER
1096	select SND_SOC_PCM179X
1097	help
1098	  Enable support for Texas Instruments PCM179x CODEC.
1099	  Select this if your PCM179x is connected via an SPI bus.
1100
1101config SND_SOC_PCM186X
1102	tristate
1103
1104config SND_SOC_PCM186X_I2C
1105	tristate "Texas Instruments PCM186x CODECs - I2C"
1106	depends on I2C
1107	select SND_SOC_PCM186X
1108	select REGMAP_I2C
1109
1110config SND_SOC_PCM186X_SPI
1111	tristate "Texas Instruments PCM186x CODECs - SPI"
1112	depends on SPI_MASTER
1113	select SND_SOC_PCM186X
1114	select REGMAP_SPI
1115
1116config SND_SOC_PCM3008
1117	tristate
1118
1119config SND_SOC_PCM3060
1120	tristate
1121
1122config SND_SOC_PCM3060_I2C
1123	tristate "Texas Instruments PCM3060 CODEC - I2C"
1124	depends on I2C
1125	select SND_SOC_PCM3060
1126	select REGMAP_I2C
1127
1128config SND_SOC_PCM3060_SPI
1129	tristate "Texas Instruments PCM3060 CODEC - SPI"
1130	depends on SPI_MASTER
1131	select SND_SOC_PCM3060
1132	select REGMAP_SPI
1133
1134config SND_SOC_PCM3168A
1135	tristate
1136
1137config SND_SOC_PCM3168A_I2C
1138	tristate "Texas Instruments PCM3168A CODEC - I2C"
1139	depends on I2C
1140	select SND_SOC_PCM3168A
1141	select REGMAP_I2C
1142
1143config SND_SOC_PCM3168A_SPI
1144	tristate "Texas Instruments PCM3168A CODEC - SPI"
1145	depends on SPI_MASTER
1146	select SND_SOC_PCM3168A
1147	select REGMAP_SPI
1148
1149config SND_SOC_PCM5102A
1150	tristate "Texas Instruments PCM5102A CODEC"
1151
1152config SND_SOC_PCM512x
1153	tristate
1154
1155config SND_SOC_PCM512x_I2C
1156	tristate "Texas Instruments PCM512x CODECs - I2C"
1157	depends on I2C
1158	select SND_SOC_PCM512x
1159	select REGMAP_I2C
1160
1161config SND_SOC_PCM512x_SPI
1162	tristate "Texas Instruments PCM512x CODECs - SPI"
1163	depends on SPI_MASTER
1164	select SND_SOC_PCM512x
1165	select REGMAP_SPI
1166
1167config SND_SOC_RK3328
1168	tristate "Rockchip RK3328 audio CODEC"
1169	select REGMAP_MMIO
1170
1171config SND_SOC_RK817
1172	tristate "Rockchip RK817 audio CODEC"
1173	depends on MFD_RK808
1174	select REGMAP_I2C
1175
1176config SND_SOC_RL6231
1177	tristate
1178	default y if SND_SOC_RT5514=y
1179	default y if SND_SOC_RT5616=y
1180	default y if SND_SOC_RT5640=y
1181	default y if SND_SOC_RT5645=y
1182	default y if SND_SOC_RT5651=y
1183	default y if SND_SOC_RT5659=y
1184	default y if SND_SOC_RT5660=y
1185	default y if SND_SOC_RT5663=y
1186	default y if SND_SOC_RT5665=y
1187	default y if SND_SOC_RT5668=y
1188	default y if SND_SOC_RT5670=y
1189	default y if SND_SOC_RT5677=y
1190	default y if SND_SOC_RT5682=y
1191	default y if SND_SOC_RT1011=y
1192	default y if SND_SOC_RT1015=y
1193	default y if SND_SOC_RT1015P=y
1194	default y if SND_SOC_RT1019=y
1195	default y if SND_SOC_RT1305=y
1196	default y if SND_SOC_RT1308=y
1197	default m if SND_SOC_RT5514=m
1198	default m if SND_SOC_RT5616=m
1199	default m if SND_SOC_RT5640=m
1200	default m if SND_SOC_RT5645=m
1201	default m if SND_SOC_RT5651=m
1202	default m if SND_SOC_RT5659=m
1203	default m if SND_SOC_RT5660=m
1204	default m if SND_SOC_RT5663=m
1205	default m if SND_SOC_RT5665=m
1206	default m if SND_SOC_RT5668=m
1207	default m if SND_SOC_RT5670=m
1208	default m if SND_SOC_RT5677=m
1209	default m if SND_SOC_RT5682=m
1210	default m if SND_SOC_RT1011=m
1211	default m if SND_SOC_RT1015=m
1212	default m if SND_SOC_RT1015P=m
1213	default m if SND_SOC_RT1019=m
1214	default m if SND_SOC_RT1305=m
1215	default m if SND_SOC_RT1308=m
1216
1217config SND_SOC_RL6347A
1218	tristate
1219	default y if SND_SOC_RT274=y
1220	default y if SND_SOC_RT286=y
1221	default y if SND_SOC_RT298=y
1222	default m if SND_SOC_RT274=m
1223	default m if SND_SOC_RT286=m
1224	default m if SND_SOC_RT298=m
1225
1226config SND_SOC_RT274
1227	tristate
1228	depends on I2C
1229
1230config SND_SOC_RT286
1231	tristate
1232	depends on I2C
1233
1234config SND_SOC_RT298
1235	tristate
1236	depends on I2C
1237
1238config SND_SOC_RT1011
1239	tristate
1240	depends on I2C
1241
1242config SND_SOC_RT1015
1243	tristate
1244	depends on I2C
1245
1246config SND_SOC_RT1015P
1247	tristate
1248	depends on GPIOLIB
1249
1250config SND_SOC_RT1016
1251	tristate
1252	depends on I2C
1253
1254config SND_SOC_RT1019
1255	tristate
1256	depends on I2C
1257
1258config SND_SOC_RT1305
1259	tristate
1260	depends on I2C
1261
1262config SND_SOC_RT1308
1263	tristate
1264	depends on I2C
1265
1266config SND_SOC_RT1308_SDW
1267	tristate "Realtek RT1308 Codec - SDW"
1268	depends on I2C && SOUNDWIRE
1269	select REGMAP_SOUNDWIRE
1270
1271config SND_SOC_RT1316_SDW
1272	tristate "Realtek RT1316 Codec - SDW"
1273	depends on SOUNDWIRE
1274	select REGMAP_SOUNDWIRE
1275
1276config SND_SOC_RT5514
1277	tristate
1278	depends on I2C
1279
1280config SND_SOC_RT5514_SPI
1281	tristate
1282	depends on SPI_MASTER
1283
1284config SND_SOC_RT5514_SPI_BUILTIN
1285	bool # force RT5514_SPI to be built-in to avoid link errors
1286	default SND_SOC_RT5514=y && SND_SOC_RT5514_SPI=m
1287
1288config SND_SOC_RT5616
1289	tristate "Realtek RT5616 CODEC"
1290	depends on I2C
1291
1292config SND_SOC_RT5631
1293	tristate "Realtek ALC5631/RT5631 CODEC"
1294	depends on I2C
1295
1296config SND_SOC_RT5640
1297	tristate "Realtek RT5640/RT5639 Codec"
1298	depends on I2C
1299
1300config SND_SOC_RT5645
1301	tristate
1302	depends on I2C
1303
1304config SND_SOC_RT5651
1305	tristate
1306	depends on I2C
1307
1308config SND_SOC_RT5659
1309	tristate "Realtek RT5658/RT5659 Codec"
1310	depends on I2C
1311
1312config SND_SOC_RT5660
1313	tristate
1314	depends on I2C
1315
1316config SND_SOC_RT5663
1317	tristate
1318	depends on I2C
1319
1320config SND_SOC_RT5665
1321	tristate
1322	depends on I2C
1323
1324config SND_SOC_RT5668
1325	tristate
1326	depends on I2C
1327
1328config SND_SOC_RT5670
1329	tristate
1330	depends on I2C
1331
1332config SND_SOC_RT5677
1333	tristate
1334	depends on I2C
1335	select REGMAP_I2C
1336	select REGMAP_IRQ
1337
1338config SND_SOC_RT5677_SPI
1339	tristate
1340	default SND_SOC_RT5677 && SPI
1341
1342config SND_SOC_RT5682
1343	tristate
1344
1345config SND_SOC_RT5682_I2C
1346	tristate
1347	depends on I2C
1348	select SND_SOC_RT5682
1349
1350config SND_SOC_RT5682_SDW
1351	tristate "Realtek RT5682 Codec - SDW"
1352	depends on SOUNDWIRE
1353	select SND_SOC_RT5682
1354	select REGMAP_SOUNDWIRE
1355
1356config SND_SOC_RT5682S
1357	tristate
1358	depends on I2C
1359
1360config SND_SOC_RT700
1361	tristate
1362
1363config SND_SOC_RT700_SDW
1364	tristate "Realtek RT700 Codec - SDW"
1365	depends on SOUNDWIRE
1366	select SND_SOC_RT700
1367	select REGMAP_SOUNDWIRE
1368
1369config SND_SOC_RT711
1370	tristate
1371
1372config SND_SOC_RT711_SDW
1373	tristate "Realtek RT711 Codec - SDW"
1374	depends on SOUNDWIRE
1375	select SND_SOC_RT711
1376	select REGMAP_SOUNDWIRE
1377
1378config SND_SOC_RT711_SDCA_SDW
1379	tristate "Realtek RT711 SDCA Codec - SDW"
1380	depends on SOUNDWIRE
1381	select REGMAP_SOUNDWIRE
1382	select REGMAP_SOUNDWIRE_MBQ
1383
1384config SND_SOC_RT715
1385	tristate
1386
1387config SND_SOC_RT715_SDW
1388	tristate "Realtek RT715 Codec - SDW"
1389	depends on SOUNDWIRE
1390	select SND_SOC_RT715
1391	select REGMAP_SOUNDWIRE
1392
1393config SND_SOC_RT715_SDCA_SDW
1394	tristate "Realtek RT715 SDCA Codec - SDW"
1395	depends on SOUNDWIRE
1396	select REGMAP_SOUNDWIRE
1397	select REGMAP_SOUNDWIRE_MBQ
1398
1399config SND_SOC_RT9120
1400	tristate "Richtek RT9120 Stereo Class-D Amplifier"
1401	depends on I2C
1402	select REGMAP_I2C
1403	help
1404	  Enable support for Richtek RT9120 20W, stereo, inductor-less,
1405	  high-efficiency Class-D audio amplifier.
1406
1407config SND_SOC_SDW_MOCKUP
1408	tristate "SoundWire mockup codec"
1409	depends on EXPERT
1410	depends on SOUNDWIRE
1411	help
1412	  This option enables a SoundWire mockup codec that does not drive the
1413	  bus, take part in the command/command protocol or generate data on a
1414	  Source port.
1415	  This option is only intended to be used for tests on a device
1416	  with a connector, in combination with a bus analyzer, or to test new
1417	  topologies that differ from the actual hardware layout.
1418	  This mockup device could be totally virtual but could also be a
1419	  real physical one with one key restriction: it is not allowed by the
1420	  SoundWire specification to be configured via a sideband mechanism and
1421	  generate audio data for capture. However, nothing prevents such a
1422	  peripheral device from snooping the bus.
1423
1424#Freescale sgtl5000 codec
1425config SND_SOC_SGTL5000
1426	tristate "Freescale SGTL5000 CODEC"
1427	depends on I2C
1428
1429config SND_SOC_SI476X
1430	tristate
1431
1432config SND_SOC_SIGMADSP
1433	tristate
1434	select CRC32
1435
1436config SND_SOC_SIGMADSP_I2C
1437	tristate
1438	select SND_SOC_SIGMADSP
1439
1440config SND_SOC_SIGMADSP_REGMAP
1441	tristate
1442	select SND_SOC_SIGMADSP
1443
1444config SND_SOC_SIMPLE_AMPLIFIER
1445	tristate "Simple Audio Amplifier"
1446
1447config SND_SOC_SIMPLE_MUX
1448	tristate "Simple Audio Mux"
1449	depends on GPIOLIB
1450
1451config SND_SOC_SPDIF
1452	tristate "S/PDIF CODEC"
1453
1454config SND_SOC_SSM2305
1455	tristate "Analog Devices SSM2305 Class-D Amplifier"
1456	help
1457	  Enable support for Analog Devices SSM2305 filterless
1458	  high-efficiency mono Class-D audio power amplifiers.
1459
1460config SND_SOC_SSM2518
1461	tristate "Analog Devices SSM2518 Class-D Amplifier"
1462	depends on I2C
1463
1464config SND_SOC_SSM2602
1465	tristate
1466
1467config SND_SOC_SSM2602_SPI
1468	tristate "Analog Devices SSM2602 CODEC - SPI"
1469	depends on SPI_MASTER
1470	select SND_SOC_SSM2602
1471	select REGMAP_SPI
1472
1473config SND_SOC_SSM2602_I2C
1474	tristate "Analog Devices SSM2602 CODEC - I2C"
1475	depends on I2C
1476	select SND_SOC_SSM2602
1477	select REGMAP_I2C
1478
1479config SND_SOC_SSM4567
1480	tristate "Analog Devices ssm4567 amplifier driver support"
1481	depends on I2C
1482
1483config SND_SOC_STA32X
1484	tristate "STA326, STA328 and STA329 speaker amplifier"
1485	depends on I2C
1486	select REGMAP_I2C
1487
1488config SND_SOC_STA350
1489	tristate "STA350 speaker amplifier"
1490	depends on I2C
1491
1492config SND_SOC_STA529
1493	tristate
1494	depends on I2C
1495
1496config SND_SOC_STAC9766
1497	tristate
1498	depends on SND_SOC_AC97_BUS
1499
1500config SND_SOC_STI_SAS
1501	tristate "codec Audio support for STI SAS codec"
1502
1503config SND_SOC_TAS2552
1504	tristate "Texas Instruments TAS2552 Mono Audio amplifier"
1505	depends on I2C
1506
1507config SND_SOC_TAS2562
1508	tristate "Texas Instruments TAS2562 Mono Audio amplifier"
1509	depends on I2C
1510
1511config SND_SOC_TAS2764
1512	tristate "Texas Instruments TAS2764 Mono Audio amplifier"
1513	depends on I2C
1514
1515config SND_SOC_TAS2770
1516	tristate "Texas Instruments TAS2770 speaker amplifier"
1517	depends on I2C
1518
1519config SND_SOC_TAS5086
1520	tristate "Texas Instruments TAS5086 speaker amplifier"
1521	depends on I2C
1522
1523config SND_SOC_TAS571X
1524	tristate "Texas Instruments TAS571x power amplifiers"
1525	depends on I2C
1526	help
1527	  Enable support for Texas Instruments TAS5707, TAS5711, TAS5717,
1528	  TAS5719 and TAS5721 power amplifiers
1529
1530config SND_SOC_TAS5720
1531	tristate "Texas Instruments TAS5720 Mono Audio amplifier"
1532	depends on I2C
1533	help
1534	  Enable support for Texas Instruments TAS5720L/M high-efficiency mono
1535	  Class-D audio power amplifiers.
1536
1537config SND_SOC_TAS5805M
1538	tristate "Texas Instruments TAS5805M speaker amplifier"
1539	depends on I2C
1540	help
1541	  Enable support for Texas Instruments TAS5805M Class-D
1542	  amplifiers. This is a speaker amplifier with an integrated
1543	  DSP. DSP configuration for each instance needs to be supplied
1544	  via a device-tree attribute.
1545
1546config SND_SOC_TAS6424
1547	tristate "Texas Instruments TAS6424 Quad-Channel Audio amplifier"
1548	depends on I2C
1549	help
1550	  Enable support for Texas Instruments TAS6424 high-efficiency
1551	  digital input quad-channel Class-D audio power amplifiers.
1552
1553config SND_SOC_TDA7419
1554	tristate "ST TDA7419 audio processor"
1555	depends on I2C
1556	select REGMAP_I2C
1557
1558config SND_SOC_TFA9879
1559	tristate "NXP Semiconductors TFA9879 amplifier"
1560	depends on I2C
1561
1562config SND_SOC_TFA989X
1563	tristate "NXP/Goodix TFA989X (TFA1) amplifiers"
1564	depends on I2C
1565	select REGMAP_I2C
1566	help
1567	  Enable support for NXP (now Goodix) TFA989X (TFA1 family) speaker
1568	  amplifiers, e.g. TFA9895.
1569	  Note that the driver currently bypasses the built-in "CoolFlux DSP"
1570	  and does not support (hardware) volume control.
1571
1572config SND_SOC_TLV320ADC3XXX
1573	tristate "Texas Instruments TLV320ADC3001/3101 audio ADC"
1574	depends on I2C
1575	help
1576	 Enable support for Texas Instruments TLV320ADC3001 and TLV320ADC3101
1577	 ADCs.
1578
1579config SND_SOC_TLV320AIC23
1580	tristate
1581
1582config SND_SOC_TLV320AIC23_I2C
1583	tristate "Texas Instruments TLV320AIC23 audio CODEC - I2C"
1584	depends on I2C
1585	select SND_SOC_TLV320AIC23
1586
1587config SND_SOC_TLV320AIC23_SPI
1588	tristate "Texas Instruments TLV320AIC23 audio CODEC - SPI"
1589	depends on SPI_MASTER
1590	select SND_SOC_TLV320AIC23
1591
1592config SND_SOC_TLV320AIC26
1593	tristate
1594	depends on SPI
1595
1596config SND_SOC_TLV320AIC31XX
1597	tristate "Texas Instruments TLV320AIC31xx CODECs"
1598	depends on I2C
1599	select REGMAP_I2C
1600
1601config SND_SOC_TLV320AIC32X4
1602	tristate
1603	depends on COMMON_CLK
1604
1605config SND_SOC_TLV320AIC32X4_I2C
1606	tristate "Texas Instruments TLV320AIC32x4 audio CODECs - I2C"
1607	depends on I2C
1608	depends on COMMON_CLK
1609	select SND_SOC_TLV320AIC32X4
1610
1611config SND_SOC_TLV320AIC32X4_SPI
1612	tristate "Texas Instruments TLV320AIC32x4 audio CODECs - SPI"
1613	depends on SPI_MASTER
1614	depends on COMMON_CLK
1615	select SND_SOC_TLV320AIC32X4
1616
1617config SND_SOC_TLV320AIC3X
1618	tristate
1619
1620config SND_SOC_TLV320AIC3X_I2C
1621	tristate "Texas Instruments TLV320AIC3x audio CODECs - I2C"
1622	depends on I2C
1623	select SND_SOC_TLV320AIC3X
1624	select REGMAP_I2C
1625
1626config SND_SOC_TLV320AIC3X_SPI
1627	tristate "Texas Instruments TLV320AIC3x audio CODECs - SPI"
1628	depends on SPI_MASTER
1629	select SND_SOC_TLV320AIC3X
1630	select REGMAP_SPI
1631
1632config SND_SOC_TLV320DAC33
1633	tristate
1634	depends on I2C
1635
1636config SND_SOC_TLV320ADCX140
1637	tristate "Texas Instruments TLV320ADCX140 CODEC family"
1638	depends on I2C
1639	select REGMAP_I2C
1640	help
1641	  Add support for Texas Instruments tlv320adc3140, tlv320adc5140 and
1642	  tlv320adc6140 quad channel ADCs.
1643
1644config SND_SOC_TS3A227E
1645	tristate "TI Headset/Mic detect and keypress chip"
1646	depends on I2C
1647
1648config SND_SOC_TSCS42XX
1649	tristate "Tempo Semiconductor TSCS42xx CODEC"
1650	depends on I2C
1651	select REGMAP_I2C
1652	help
1653	  Add support for Tempo Semiconductor's TSCS42xx audio CODEC.
1654
1655config SND_SOC_TSCS454
1656	tristate "Tempo Semiconductor TSCS454 CODEC"
1657	depends on I2C
1658	select REGMAP_I2C
1659	help
1660	  Add support for Tempo Semiconductor's TSCS454 audio CODEC.
1661
1662config SND_SOC_TWL4030
1663	tristate
1664	depends on TWL4030_CORE
1665	select MFD_TWL4030_AUDIO
1666
1667config SND_SOC_TWL6040
1668	tristate
1669	depends on TWL6040_CORE
1670
1671config SND_SOC_UDA1334
1672	tristate "NXP UDA1334 DAC"
1673	depends on GPIOLIB
1674	help
1675	  The UDA1334 is an NXP audio codec, supports the I2S-bus data format
1676	  and has basic features such as de-emphasis (at 44.1 kHz sampling
1677	  rate) and mute.
1678
1679config SND_SOC_UDA134X
1680	tristate
1681
1682config SND_SOC_UDA1380
1683	tristate
1684	depends on I2C
1685
1686config SND_SOC_WCD9335
1687	tristate "WCD9335 Codec"
1688	depends on SLIMBUS
1689	select REGMAP_SLIMBUS
1690	select REGMAP_IRQ
1691	help
1692	  The WCD9335 is a standalone Hi-Fi audio CODEC IC, supports
1693	  Qualcomm Technologies, Inc. (QTI) multimedia solutions,
1694	  including the MSM8996, MSM8976, and MSM8956 chipsets.
1695
1696config SND_SOC_WCD_MBHC
1697	tristate
1698
1699config SND_SOC_WCD934X
1700	tristate "WCD9340/WCD9341 Codec"
1701	depends on COMMON_CLK
1702	select SND_SOC_WCD_MBHC
1703	depends on MFD_WCD934X
1704	help
1705	  The WCD9340/9341 is a audio codec IC Integrated in
1706	  Qualcomm SoCs like SDM845.
1707
1708config SND_SOC_WCD938X
1709	depends on SND_SOC_WCD938X_SDW
1710	tristate
1711	depends on SOUNDWIRE || !SOUNDWIRE
1712
1713config SND_SOC_WCD938X_SDW
1714	tristate "WCD9380/WCD9385 Codec - SDW"
1715	select SND_SOC_WCD938X
1716	select SND_SOC_WCD_MBHC
1717	select REGMAP_IRQ
1718	depends on SOUNDWIRE
1719	select REGMAP_SOUNDWIRE
1720	help
1721	  The WCD9380/9385 is a audio codec IC Integrated in
1722	  Qualcomm SoCs like SM8250.
1723
1724config SND_SOC_WL1273
1725	tristate
1726
1727config SND_SOC_WM0010
1728	tristate
1729	depends on SPI_MASTER
1730
1731config SND_SOC_WM1250_EV1
1732	tristate
1733	depends on I2C
1734
1735config SND_SOC_WM2000
1736	tristate
1737	depends on I2C
1738
1739config SND_SOC_WM2200
1740	tristate
1741	depends on I2C
1742
1743config SND_SOC_WM5100
1744	tristate
1745	depends on I2C
1746
1747config SND_SOC_WM5102
1748	tristate
1749	depends on MFD_WM5102 && MFD_ARIZONA
1750
1751config SND_SOC_WM5110
1752	tristate
1753	depends on MFD_WM5110 && MFD_ARIZONA
1754
1755config SND_SOC_WM8350
1756	tristate
1757	depends on MFD_WM8350
1758
1759config SND_SOC_WM8400
1760	tristate
1761	# FIXME nothing selects SND_SOC_WM8400??
1762	depends on MFD_WM8400
1763
1764config SND_SOC_WM8510
1765	tristate "Wolfson Microelectronics WM8510 CODEC"
1766	depends on SND_SOC_I2C_AND_SPI
1767
1768config SND_SOC_WM8523
1769	tristate "Wolfson Microelectronics WM8523 DAC"
1770	depends on I2C
1771
1772config SND_SOC_WM8524
1773	tristate "Wolfson Microelectronics WM8524 DAC"
1774	depends on GPIOLIB
1775
1776config SND_SOC_WM8580
1777	tristate "Wolfson Microelectronics WM8580 and WM8581 CODECs"
1778	depends on I2C
1779
1780config SND_SOC_WM8711
1781	tristate "Wolfson Microelectronics WM8711 CODEC"
1782	depends on SND_SOC_I2C_AND_SPI
1783
1784config SND_SOC_WM8727
1785	tristate
1786
1787config SND_SOC_WM8728
1788	tristate "Wolfson Microelectronics WM8728 DAC"
1789	depends on SND_SOC_I2C_AND_SPI
1790
1791config SND_SOC_WM8731
1792	tristate
1793
1794config SND_SOC_WM8731_I2C
1795	tristate "Wolfson Microelectronics WM8731 CODEC with I2C"
1796	depends on I2C
1797	select REGMAP
1798	select SND_SOC_WM8731
1799
1800config SND_SOC_WM8731_SPI
1801	tristate "Wolfson Microelectronics WM8731 CODEC with SPI"
1802	depends on SPI
1803	select REGMAP
1804	select SND_SOC_WM8731
1805
1806config SND_SOC_WM8737
1807	tristate "Wolfson Microelectronics WM8737 ADC"
1808	depends on SND_SOC_I2C_AND_SPI
1809
1810config SND_SOC_WM8741
1811	tristate "Wolfson Microelectronics WM8741 DAC"
1812	depends on SND_SOC_I2C_AND_SPI
1813
1814config SND_SOC_WM8750
1815	tristate "Wolfson Microelectronics WM8750 CODEC"
1816	depends on SND_SOC_I2C_AND_SPI
1817
1818config SND_SOC_WM8753
1819	tristate "Wolfson Microelectronics WM8753 CODEC"
1820	depends on SND_SOC_I2C_AND_SPI
1821
1822config SND_SOC_WM8770
1823	tristate "Wolfson Microelectronics WM8770 CODEC"
1824	depends on SPI_MASTER
1825
1826config SND_SOC_WM8776
1827	tristate "Wolfson Microelectronics WM8776 CODEC"
1828	depends on SND_SOC_I2C_AND_SPI
1829
1830config SND_SOC_WM8782
1831	tristate "Wolfson Microelectronics WM8782 ADC"
1832
1833config SND_SOC_WM8804
1834	tristate
1835
1836config SND_SOC_WM8804_I2C
1837	tristate "Wolfson Microelectronics WM8804 S/PDIF transceiver I2C"
1838	depends on I2C
1839	select SND_SOC_WM8804
1840	select REGMAP_I2C
1841
1842config SND_SOC_WM8804_SPI
1843	tristate "Wolfson Microelectronics WM8804 S/PDIF transceiver SPI"
1844	depends on SPI_MASTER
1845	select SND_SOC_WM8804
1846	select REGMAP_SPI
1847
1848config SND_SOC_WM8900
1849	tristate
1850	depends on SND_SOC_I2C_AND_SPI
1851
1852config SND_SOC_WM8903
1853	tristate "Wolfson Microelectronics WM8903 CODEC"
1854	depends on I2C
1855
1856config SND_SOC_WM8904
1857	tristate "Wolfson Microelectronics WM8904 CODEC"
1858	depends on I2C
1859
1860config SND_SOC_WM8940
1861	tristate
1862	depends on I2C
1863
1864config SND_SOC_WM8955
1865	tristate
1866	depends on I2C
1867
1868config SND_SOC_WM8960
1869	tristate "Wolfson Microelectronics WM8960 CODEC"
1870	depends on I2C
1871
1872config SND_SOC_WM8961
1873	tristate
1874	depends on I2C
1875
1876config SND_SOC_WM8962
1877	tristate "Wolfson Microelectronics WM8962 CODEC"
1878	depends on I2C && INPUT
1879
1880config SND_SOC_WM8971
1881	tristate
1882	depends on I2C
1883
1884config SND_SOC_WM8974
1885	tristate "Wolfson Microelectronics WM8974 codec"
1886	depends on I2C
1887
1888config SND_SOC_WM8978
1889	tristate "Wolfson Microelectronics WM8978 codec"
1890	depends on I2C
1891
1892config SND_SOC_WM8983
1893	tristate
1894	depends on SND_SOC_I2C_AND_SPI
1895
1896config SND_SOC_WM8985
1897	tristate "Wolfson Microelectronics WM8985 and WM8758 codec driver"
1898	depends on SND_SOC_I2C_AND_SPI
1899
1900config SND_SOC_WM8988
1901	tristate
1902	depends on SND_SOC_I2C_AND_SPI
1903
1904config SND_SOC_WM8990
1905	tristate
1906	depends on I2C
1907
1908config SND_SOC_WM8991
1909	tristate
1910	depends on I2C
1911
1912config SND_SOC_WM8993
1913	tristate
1914	depends on I2C
1915
1916config SND_SOC_WM8994
1917	tristate
1918
1919config SND_SOC_WM8995
1920	tristate
1921	depends on SND_SOC_I2C_AND_SPI
1922
1923config SND_SOC_WM8996
1924	tristate
1925	depends on I2C
1926
1927config SND_SOC_WM8997
1928	tristate
1929	depends on MFD_WM8997 && MFD_ARIZONA
1930
1931config SND_SOC_WM8998
1932	tristate
1933	depends on MFD_WM8998 && MFD_ARIZONA
1934
1935config SND_SOC_WM9081
1936	tristate
1937	depends on I2C
1938
1939config SND_SOC_WM9090
1940	tristate
1941	depends on I2C
1942
1943config SND_SOC_WM9705
1944	tristate
1945	depends on SND_SOC_AC97_BUS || AC97_BUS_NEW
1946	select REGMAP_AC97
1947	select AC97_BUS_COMPAT if AC97_BUS_NEW
1948
1949config SND_SOC_WM9712
1950	tristate
1951	depends on SND_SOC_AC97_BUS || AC97_BUS_NEW
1952	select REGMAP_AC97
1953	select AC97_BUS_COMPAT if AC97_BUS_NEW
1954
1955config SND_SOC_WM9713
1956	tristate
1957	depends on SND_SOC_AC97_BUS || AC97_BUS_NEW
1958	select REGMAP_AC97
1959	select AC97_BUS_COMPAT if AC97_BUS_NEW
1960
1961config SND_SOC_WSA881X
1962	tristate "WSA881X Codec"
1963	depends on SOUNDWIRE
1964	select REGMAP_SOUNDWIRE
1965	tristate
1966	help
1967	  This enables support for Qualcomm WSA8810/WSA8815 Class-D
1968	  Smart Speaker Amplifier.
1969
1970config SND_SOC_ZL38060
1971	tristate "Microsemi ZL38060 Connected Home Audio Processor"
1972	depends on SPI_MASTER
1973	select REGMAP
1974	help
1975	  Support for ZL38060 Connected Home Audio Processor from Microsemi,
1976	  which consists of a Digital Signal Processor (DSP), several Digital
1977	  Audio Interfaces (DAIs), analog outputs, and a block of 14 GPIOs.
1978
1979# Amp
1980config SND_SOC_LM4857
1981	tristate
1982	depends on I2C
1983
1984config SND_SOC_MAX9759
1985	tristate "Maxim MAX9759 speaker Amplifier"
1986	depends on GPIOLIB
1987
1988config SND_SOC_MAX9768
1989	tristate
1990	depends on I2C
1991
1992config SND_SOC_MAX9877
1993	tristate
1994	depends on I2C
1995
1996config SND_SOC_MC13783
1997	tristate
1998	depends on MFD_MC13XXX
1999
2000config SND_SOC_ML26124
2001	tristate
2002	depends on I2C
2003
2004config SND_SOC_MT6351
2005	tristate "MediaTek MT6351 Codec"
2006
2007config SND_SOC_MT6358
2008	tristate "MediaTek MT6358 Codec"
2009	help
2010	  Enable support for the platform which uses MT6358 as
2011	  external codec device.
2012
2013config SND_SOC_MT6359
2014	tristate "MediaTek MT6359 Codec"
2015	depends on MTK_PMIC_WRAP
2016	help
2017	  Enable support for the platform which uses MT6359 as
2018	  external codec device.
2019
2020config SND_SOC_MT6359_ACCDET
2021	tristate "MediaTek MT6359 ACCDET driver"
2022	depends on MTK_PMIC_WRAP
2023	help
2024	  ACCDET means Accessory Detection technology, MediaTek develop it
2025	  for ASoC codec soc-jack detection mechanism.
2026	  Select N if you don't have jack on board.
2027
2028config SND_SOC_MT6660
2029	tristate "Mediatek MT6660 Speaker Amplifier"
2030	depends on I2C
2031	help
2032	  MediaTek MT6660 is a smart power amplifier which contain
2033	  speaker protection, multi-band DRC, equalizer functions.
2034	  Select N if you don't have MT6660 on board.
2035	  Select M to build this as module.
2036
2037config SND_SOC_NAU8315
2038	tristate "Nuvoton Technology Corporation NAU8315 CODEC"
2039	depends on GPIOLIB
2040
2041config SND_SOC_NAU8540
2042	tristate "Nuvoton Technology Corporation NAU85L40 CODEC"
2043	depends on I2C
2044
2045config SND_SOC_NAU8810
2046	tristate "Nuvoton Technology Corporation NAU88C10 CODEC"
2047	depends on I2C
2048
2049config SND_SOC_NAU8821
2050	tristate "Nuvoton Technology Corporation NAU88L21 CODEC"
2051	depends on I2C
2052
2053config SND_SOC_NAU8822
2054	tristate "Nuvoton Technology Corporation NAU88C22 CODEC"
2055	depends on I2C
2056
2057config SND_SOC_NAU8824
2058	tristate "Nuvoton Technology Corporation NAU88L24 CODEC"
2059	depends on I2C
2060
2061config SND_SOC_NAU8825
2062	tristate
2063	depends on I2C
2064
2065config SND_SOC_TPA6130A2
2066	tristate "Texas Instruments TPA6130A2 headphone amplifier"
2067	depends on I2C
2068
2069config SND_SOC_LPASS_MACRO_COMMON
2070        tristate
2071
2072config SND_SOC_LPASS_WSA_MACRO
2073	depends on COMMON_CLK
2074	select REGMAP_MMIO
2075	tristate "Qualcomm WSA Macro in LPASS(Low Power Audio SubSystem)"
2076
2077config SND_SOC_LPASS_VA_MACRO
2078	depends on COMMON_CLK
2079	select REGMAP_MMIO
2080	select SND_SOC_LPASS_MACRO_COMMON
2081	tristate "Qualcomm VA Macro in LPASS(Low Power Audio SubSystem)"
2082
2083config SND_SOC_LPASS_RX_MACRO
2084	depends on COMMON_CLK
2085	select REGMAP_MMIO
2086	select SND_SOC_LPASS_MACRO_COMMON
2087	tristate "Qualcomm RX Macro in LPASS(Low Power Audio SubSystem)"
2088
2089config SND_SOC_LPASS_TX_MACRO
2090	depends on COMMON_CLK
2091	select REGMAP_MMIO
2092	select SND_SOC_LPASS_MACRO_COMMON
2093	tristate "Qualcomm TX Macro in LPASS(Low Power Audio SubSystem)"
2094
2095endmenu
2096