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