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