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