xref: /openbmc/linux/sound/soc/codecs/Kconfig (revision 6c870213d6f3a25981c10728f46294a3bed1703f)
1# Helper to resolve issues with configs that have SPI enabled but I2C
2# modular, meaning we can't build the codec driver in with I2C support.
3# We use an ordered list of conditional defaults to pick the appropriate
4# setting - SPI can't be modular so that case doesn't need to be covered.
5config SND_SOC_I2C_AND_SPI
6	tristate
7	default m if I2C=m
8	default y if I2C=y
9	default y if SPI_MASTER=y
10
11menu "CODEC drivers"
12
13config SND_SOC_ALL_CODECS
14	tristate "Build all ASoC CODEC drivers"
15	depends on COMPILE_TEST
16	select SND_SOC_88PM860X if MFD_88PM860X
17	select SND_SOC_L3
18	select SND_SOC_AB8500_CODEC if ABX500_CORE
19	select SND_SOC_AC97_CODEC if SND_SOC_AC97_BUS
20	select SND_SOC_AD1836 if SPI_MASTER
21	select SND_SOC_AD193X_SPI if SPI_MASTER
22	select SND_SOC_AD193X_I2C if I2C
23	select SND_SOC_AD1980 if SND_SOC_AC97_BUS
24	select SND_SOC_AD73311
25	select SND_SOC_ADAU1373 if I2C
26	select SND_SOC_ADAV801 if SPI_MASTER
27	select SND_SOC_ADAV803 if I2C
28	select SND_SOC_ADAU1977_SPI if SPI_MASTER
29	select SND_SOC_ADAU1977_I2C if I2C
30	select SND_SOC_ADAU1701 if I2C
31	select SND_SOC_ADS117X
32	select SND_SOC_AK4104 if SPI_MASTER
33	select SND_SOC_AK4535 if I2C
34	select SND_SOC_AK4554
35	select SND_SOC_AK4641 if I2C
36	select SND_SOC_AK4642 if I2C
37	select SND_SOC_AK4671 if I2C
38	select SND_SOC_AK5386
39	select SND_SOC_ALC5623 if I2C
40	select SND_SOC_ALC5632 if I2C
41	select SND_SOC_CQ0093VC if MFD_DAVINCI_VOICECODEC
42	select SND_SOC_CS42L51 if I2C
43	select SND_SOC_CS42L52 if I2C
44	select SND_SOC_CS42L73 if I2C
45	select SND_SOC_CS4270 if I2C
46	select SND_SOC_CS4271 if SND_SOC_I2C_AND_SPI
47	select SND_SOC_CS42XX8_I2C if I2C
48	select SND_SOC_CX20442 if TTY
49	select SND_SOC_DA7210 if I2C
50	select SND_SOC_DA7213 if I2C
51	select SND_SOC_DA732X if I2C
52	select SND_SOC_DA9055 if I2C
53	select SND_SOC_BT_SCO
54	select SND_SOC_ISABELLE if I2C
55	select SND_SOC_JZ4740_CODEC
56	select SND_SOC_LM4857 if I2C
57	select SND_SOC_LM49453 if I2C
58	select SND_SOC_MAX98088 if I2C
59	select SND_SOC_MAX98090 if I2C
60	select SND_SOC_MAX98095 if I2C
61	select SND_SOC_MAX9850 if I2C
62	select SND_SOC_MAX9768 if I2C
63	select SND_SOC_MAX9877 if I2C
64	select SND_SOC_MC13783 if MFD_MC13XXX
65	select SND_SOC_ML26124 if I2C
66	select SND_SOC_HDMI_CODEC
67	select SND_SOC_PCM1681 if I2C
68	select SND_SOC_PCM1792A if SPI_MASTER
69	select SND_SOC_PCM3008
70	select SND_SOC_PCM512x_I2C if I2C
71	select SND_SOC_PCM512x_SPI if SPI_MASTER
72	select SND_SOC_RT5631 if I2C
73	select SND_SOC_RT5640 if I2C
74	select SND_SOC_SGTL5000 if I2C
75	select SND_SOC_SI476X if MFD_SI476X_CORE
76	select SND_SOC_SIRF_AUDIO_CODEC
77	select SND_SOC_SN95031 if INTEL_SCU_IPC
78	select SND_SOC_SPDIF
79	select SND_SOC_SSM2518 if I2C
80	select SND_SOC_SSM2602_SPI if SPI_MASTER
81	select SND_SOC_SSM2602_I2C if I2C
82	select SND_SOC_STA32X if I2C
83	select SND_SOC_STA529 if I2C
84	select SND_SOC_STAC9766 if SND_SOC_AC97_BUS
85	select SND_SOC_TAS5086 if I2C
86	select SND_SOC_TLV320AIC23_I2C if I2C
87	select SND_SOC_TLV320AIC23_SPI if SPI_MASTER
88	select SND_SOC_TLV320AIC26 if SPI_MASTER
89	select SND_SOC_TLV320AIC31XX if I2C
90	select SND_SOC_TLV320AIC32X4 if I2C
91	select SND_SOC_TLV320AIC3X if I2C
92	select SND_SOC_TPA6130A2 if I2C
93	select SND_SOC_TLV320DAC33 if I2C
94	select SND_SOC_TWL4030 if TWL4030_CORE
95	select SND_SOC_TWL6040 if TWL6040_CORE
96	select SND_SOC_UDA134X
97	select SND_SOC_UDA1380 if I2C
98	select SND_SOC_WL1273 if MFD_WL1273_CORE
99	select SND_SOC_WM0010 if SPI_MASTER
100	select SND_SOC_WM1250_EV1 if I2C
101	select SND_SOC_WM2000 if I2C
102	select SND_SOC_WM2200 if I2C
103	select SND_SOC_WM5100 if I2C
104	select SND_SOC_WM5102 if MFD_WM5102
105	select SND_SOC_WM5110 if MFD_WM5110
106	select SND_SOC_WM8350 if MFD_WM8350
107	select SND_SOC_WM8400 if MFD_WM8400
108	select SND_SOC_WM8510 if SND_SOC_I2C_AND_SPI
109	select SND_SOC_WM8523 if I2C
110	select SND_SOC_WM8580 if I2C
111	select SND_SOC_WM8711 if SND_SOC_I2C_AND_SPI
112	select SND_SOC_WM8727
113	select SND_SOC_WM8728 if SND_SOC_I2C_AND_SPI
114	select SND_SOC_WM8731 if SND_SOC_I2C_AND_SPI
115	select SND_SOC_WM8737 if SND_SOC_I2C_AND_SPI
116	select SND_SOC_WM8741 if SND_SOC_I2C_AND_SPI
117	select SND_SOC_WM8750 if SND_SOC_I2C_AND_SPI
118	select SND_SOC_WM8753 if SND_SOC_I2C_AND_SPI
119	select SND_SOC_WM8770 if SPI_MASTER
120	select SND_SOC_WM8776 if SND_SOC_I2C_AND_SPI
121	select SND_SOC_WM8782
122	select SND_SOC_WM8804 if SND_SOC_I2C_AND_SPI
123	select SND_SOC_WM8900 if I2C
124	select SND_SOC_WM8903 if I2C
125	select SND_SOC_WM8904 if I2C
126	select SND_SOC_WM8940 if I2C
127	select SND_SOC_WM8955 if I2C
128	select SND_SOC_WM8960 if I2C
129	select SND_SOC_WM8961 if I2C
130	select SND_SOC_WM8962 if I2C
131	select SND_SOC_WM8971 if I2C
132	select SND_SOC_WM8974 if I2C
133	select SND_SOC_WM8978 if I2C
134	select SND_SOC_WM8983 if SND_SOC_I2C_AND_SPI
135	select SND_SOC_WM8985 if SND_SOC_I2C_AND_SPI
136	select SND_SOC_WM8988 if SND_SOC_I2C_AND_SPI
137	select SND_SOC_WM8990 if I2C
138	select SND_SOC_WM8991 if I2C
139	select SND_SOC_WM8993 if I2C
140	select SND_SOC_WM8994 if MFD_WM8994
141	select SND_SOC_WM8995 if SND_SOC_I2C_AND_SPI
142	select SND_SOC_WM8996 if I2C
143	select SND_SOC_WM8997 if MFD_WM8997
144	select SND_SOC_WM9081 if I2C
145	select SND_SOC_WM9090 if I2C
146	select SND_SOC_WM9705 if SND_SOC_AC97_BUS
147	select SND_SOC_WM9712 if SND_SOC_AC97_BUS
148	select SND_SOC_WM9713 if SND_SOC_AC97_BUS
149        help
150          Normally ASoC codec drivers are only built if a machine driver which
151          uses them is also built since they are only usable with a machine
152          driver.  Selecting this option will allow these drivers to be built
153          without an explicit machine driver for test and development purposes.
154
155	  Support for the bus types used to access the codecs to be built must
156	  be selected separately.
157
158          If unsure select "N".
159
160config SND_SOC_88PM860X
161	tristate
162
163config SND_SOC_ARIZONA
164	tristate
165	default y if SND_SOC_WM5102=y
166	default y if SND_SOC_WM5110=y
167	default y if SND_SOC_WM8997=y
168	default m if SND_SOC_WM5102=m
169	default m if SND_SOC_WM5110=m
170	default m if SND_SOC_WM8997=m
171
172config SND_SOC_WM_HUBS
173	tristate
174	default y if SND_SOC_WM8993=y || SND_SOC_WM8994=y
175	default m if SND_SOC_WM8993=m || SND_SOC_WM8994=m
176
177config SND_SOC_WM_ADSP
178	tristate
179	default y if SND_SOC_WM5102=y
180	default y if SND_SOC_WM5110=y
181	default y if SND_SOC_WM2200=y
182	default m if SND_SOC_WM5102=m
183	default m if SND_SOC_WM5110=m
184	default m if SND_SOC_WM2200=m
185
186config SND_SOC_AB8500_CODEC
187	tristate
188
189config SND_SOC_AC97_CODEC
190	tristate
191	select SND_AC97_CODEC
192
193config SND_SOC_AD1836
194	tristate
195
196config SND_SOC_AD193X
197	tristate
198
199config SND_SOC_AD193X_SPI
200	tristate
201	select SND_SOC_AD193X
202
203config SND_SOC_AD193X_I2C
204	tristate
205	select SND_SOC_AD193X
206
207config SND_SOC_AD1980
208	tristate
209
210config SND_SOC_AD73311
211	tristate
212
213config SND_SOC_ADAU1701
214	tristate "Analog Devices ADAU1701 CODEC"
215	depends on I2C
216	select SND_SOC_SIGMADSP
217
218config SND_SOC_ADAU1373
219	tristate
220
221config SND_SOC_ADAU1977
222	tristate
223
224config SND_SOC_ADAU1977_SPI
225	tristate
226	select SND_SOC_ADAU1977
227	select REGMAP_SPI
228
229config SND_SOC_ADAU1977_I2C
230	tristate
231	select SND_SOC_ADAU1977
232	select REGMAP_I2C
233
234config SND_SOC_ADAV80X
235	tristate
236
237config SND_SOC_ADAV801
238	tristate
239	select SND_SOC_ADAV80X
240
241config SND_SOC_ADAV803
242	tristate
243	select SND_SOC_ADAV80X
244
245config SND_SOC_ADS117X
246	tristate
247
248config SND_SOC_AK4104
249	tristate "AKM AK4104 CODEC"
250	depends on SPI_MASTER
251
252config SND_SOC_AK4535
253	tristate
254
255config SND_SOC_AK4554
256	tristate "AKM AK4554 CODEC"
257
258config SND_SOC_AK4641
259	tristate
260
261config SND_SOC_AK4642
262	tristate "AKM AK4642 CODEC"
263	depends on I2C
264
265config SND_SOC_AK4671
266	tristate
267
268config SND_SOC_AK5386
269	tristate "AKM AK5638 CODEC"
270
271config SND_SOC_ALC5623
272       tristate
273
274config SND_SOC_ALC5632
275	tristate
276
277config SND_SOC_CQ0093VC
278	tristate
279
280config SND_SOC_CS42L51
281	tristate
282
283config SND_SOC_CS42L52
284	tristate "Cirrus Logic CS42L52 CODEC"
285	depends on I2C
286
287config SND_SOC_CS42L73
288	tristate "Cirrus Logic CS42L73 CODEC"
289	depends on I2C
290
291# Cirrus Logic CS4270 Codec
292config SND_SOC_CS4270
293	tristate "Cirrus Logic CS4270 CODEC"
294	depends on I2C
295
296# Cirrus Logic CS4270 Codec VD = 3.3V Errata
297# Select if you are affected by the errata where the part will not function
298# if MCLK divide-by-1.5 is selected and VD is set to 3.3V.  The driver will
299# not select any sample rates that require MCLK to be divided by 1.5.
300config SND_SOC_CS4270_VD33_ERRATA
301	bool
302	depends on SND_SOC_CS4270
303
304config SND_SOC_CS4271
305	tristate "Cirrus Logic CS4271 CODEC"
306	depends on SND_SOC_I2C_AND_SPI
307
308config SND_SOC_CS42XX8
309	tristate
310
311config SND_SOC_CS42XX8_I2C
312	tristate "Cirrus Logic CS42448/CS42888 CODEC (I2C)"
313	depends on I2C
314	select SND_SOC_CS42XX8
315	select REGMAP_I2C
316
317config SND_SOC_CX20442
318	tristate
319	depends on TTY
320
321config SND_SOC_JZ4740_CODEC
322	select REGMAP_MMIO
323	tristate
324
325config SND_SOC_L3
326       tristate
327
328config SND_SOC_DA7210
329        tristate
330
331config SND_SOC_DA7213
332        tristate
333
334config SND_SOC_DA732X
335        tristate
336
337config SND_SOC_DA9055
338	tristate
339
340config SND_SOC_BT_SCO
341	tristate
342
343config SND_SOC_DMIC
344	tristate
345
346config SND_SOC_HDMI_CODEC
347       tristate "HDMI stub CODEC"
348
349config SND_SOC_ISABELLE
350        tristate
351
352config SND_SOC_LM49453
353	tristate
354
355config SND_SOC_MAX98088
356       tristate
357
358config SND_SOC_MAX98090
359       tristate
360
361config SND_SOC_MAX98095
362       tristate
363
364config SND_SOC_MAX9850
365	tristate
366
367config SND_SOC_PCM1681
368	tristate "Texas Instruments PCM1681 CODEC"
369	depends on I2C
370
371config SND_SOC_PCM1792A
372	tristate "Texas Instruments PCM1792A CODEC"
373	depends on SPI_MASTER
374
375config SND_SOC_PCM3008
376       tristate
377
378config SND_SOC_PCM512x
379	tristate
380
381config SND_SOC_PCM512x_I2C
382	tristate "Texas Instruments PCM512x CODECs - I2C"
383	depends on I2C
384	select SND_SOC_PCM512x
385	select REGMAP_I2C
386
387config SND_SOC_PCM512x_SPI
388	tristate "Texas Instruments PCM512x CODECs - SPI"
389	depends on SPI_MASTER
390	select SND_SOC_PCM512x
391	select REGMAP_SPI
392
393config SND_SOC_RT5631
394	tristate
395
396config SND_SOC_RT5640
397	tristate
398
399#Freescale sgtl5000 codec
400config SND_SOC_SGTL5000
401	tristate "Freescale SGTL5000 CODEC"
402	depends on I2C
403
404config SND_SOC_SI476X
405	tristate
406
407config SND_SOC_SIGMADSP
408	tristate
409	select CRC32
410
411config SND_SOC_SIRF_AUDIO_CODEC
412	tristate "SiRF SoC internal audio codec"
413	select REGMAP_MMIO
414
415config SND_SOC_SN95031
416	tristate
417
418config SND_SOC_SPDIF
419	tristate "S/PDIF CODEC"
420
421config SND_SOC_SSM2518
422	tristate
423
424config SND_SOC_SSM2602
425	tristate
426
427config SND_SOC_SSM2602_SPI
428	select SND_SOC_SSM2602
429	tristate
430
431config SND_SOC_SSM2602_I2C
432	select SND_SOC_SSM2602
433	tristate
434
435config SND_SOC_STA32X
436	tristate
437
438config SND_SOC_STA529
439	tristate
440
441config SND_SOC_STAC9766
442	tristate
443
444config SND_SOC_TAS5086
445	tristate "Texas Instruments TAS5086 speaker amplifier"
446	depends on I2C
447
448config SND_SOC_TLV320AIC23
449	tristate
450
451config SND_SOC_TLV320AIC23_I2C
452	tristate
453	select SND_SOC_TLV320AIC23
454
455config SND_SOC_TLV320AIC23_SPI
456	tristate
457	select SND_SOC_TLV320AIC23
458
459config SND_SOC_TLV320AIC26
460	tristate
461	depends on SPI
462
463config SND_SOC_TLV320AIC31XX
464        tristate
465
466config SND_SOC_TLV320AIC32X4
467	tristate
468
469config SND_SOC_TLV320AIC3X
470	tristate "Texas Instruments TLV320AIC3x CODECs"
471	depends on I2C
472
473config SND_SOC_TLV320DAC33
474	tristate
475
476config SND_SOC_TWL4030
477	select MFD_TWL4030_AUDIO
478	tristate
479
480config SND_SOC_TWL6040
481	tristate
482
483config SND_SOC_UDA134X
484       tristate
485
486config SND_SOC_UDA1380
487        tristate
488
489config SND_SOC_WL1273
490	tristate
491
492config SND_SOC_WM0010
493	tristate
494
495config SND_SOC_WM1250_EV1
496	tristate
497
498config SND_SOC_WM2000
499	tristate
500
501config SND_SOC_WM2200
502	tristate
503
504config SND_SOC_WM5100
505	tristate
506
507config SND_SOC_WM5102
508	tristate
509
510config SND_SOC_WM5110
511	tristate
512
513config SND_SOC_WM8350
514	tristate
515
516config SND_SOC_WM8400
517	tristate
518
519config SND_SOC_WM8510
520	tristate "Wolfson Microelectronics WM8510 CODEC"
521	depends on SND_SOC_I2C_AND_SPI
522
523config SND_SOC_WM8523
524	tristate "Wolfson Microelectronics WM8523 DAC"
525	depends on I2C
526
527config SND_SOC_WM8580
528	tristate "Wolfson Microelectronics WM8523 CODEC"
529	depends on I2C
530
531config SND_SOC_WM8711
532	tristate "Wolfson Microelectronics WM8711 CODEC"
533	depends on SND_SOC_I2C_AND_SPI
534
535config SND_SOC_WM8727
536	tristate
537
538config SND_SOC_WM8728
539	tristate "Wolfson Microelectronics WM8728 DAC"
540	depends on SND_SOC_I2C_AND_SPI
541
542config SND_SOC_WM8731
543	tristate "Wolfson Microelectronics WM8731 CODEC"
544	depends on SND_SOC_I2C_AND_SPI
545
546config SND_SOC_WM8737
547	tristate "Wolfson Microelectronics WM8737 ADC"
548	depends on SND_SOC_I2C_AND_SPI
549
550config SND_SOC_WM8741
551	tristate "Wolfson Microelectronics WM8737 DAC"
552	depends on SND_SOC_I2C_AND_SPI
553
554config SND_SOC_WM8750
555	tristate "Wolfson Microelectronics WM8750 CODEC"
556	depends on SND_SOC_I2C_AND_SPI
557
558config SND_SOC_WM8753
559	tristate "Wolfson Microelectronics WM8753 CODEC"
560	depends on SND_SOC_I2C_AND_SPI
561
562config SND_SOC_WM8770
563	tristate "Wolfson Microelectronics WM8770 CODEC"
564	depends on SPI_MASTER
565
566config SND_SOC_WM8776
567	tristate "Wolfson Microelectronics WM8776 CODEC"
568	depends on SND_SOC_I2C_AND_SPI
569
570config SND_SOC_WM8782
571	tristate
572
573config SND_SOC_WM8804
574	tristate "Wolfson Microelectronics WM8804 S/PDIF transceiver"
575	depends on SND_SOC_I2C_AND_SPI
576
577config SND_SOC_WM8900
578	tristate
579
580config SND_SOC_WM8903
581	tristate "Wolfson Microelectronics WM8903 CODEC"
582	depends on I2C
583
584config SND_SOC_WM8904
585	tristate
586
587config SND_SOC_WM8940
588        tristate
589
590config SND_SOC_WM8955
591	tristate
592
593config SND_SOC_WM8960
594	tristate
595
596config SND_SOC_WM8961
597	tristate
598
599config SND_SOC_WM8962
600	tristate "Wolfson Microelectronics WM8962 CODEC"
601	depends on I2C
602
603config SND_SOC_WM8971
604	tristate
605
606config SND_SOC_WM8974
607	tristate
608
609config SND_SOC_WM8978
610	tristate
611
612config SND_SOC_WM8983
613	tristate
614
615config SND_SOC_WM8985
616	tristate
617
618config SND_SOC_WM8988
619	tristate
620
621config SND_SOC_WM8990
622	tristate
623
624config SND_SOC_WM8991
625	tristate
626
627config SND_SOC_WM8993
628	tristate
629
630config SND_SOC_WM8994
631	tristate
632
633config SND_SOC_WM8995
634	tristate
635
636config SND_SOC_WM8996
637	tristate
638
639config SND_SOC_WM8997
640	tristate
641
642config SND_SOC_WM9081
643	tristate
644
645config SND_SOC_WM9090
646	tristate
647
648config SND_SOC_WM9705
649	tristate
650
651config SND_SOC_WM9712
652	tristate
653
654config SND_SOC_WM9713
655	tristate
656
657# Amp
658config SND_SOC_LM4857
659	tristate
660
661config SND_SOC_MAX9768
662	tristate
663
664config SND_SOC_MAX9877
665	tristate
666
667config SND_SOC_MC13783
668	tristate
669
670config SND_SOC_ML26124
671	tristate
672
673config SND_SOC_TPA6130A2
674	tristate "Texas Instruments TPA6130A2 headphone amplifier"
675	depends on I2C
676
677endmenu
678