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