config SND_EP93XX_SOC
tristate "SoC Audio support for the Cirrus Logic EP93xx series"
-------- depends on (ARCH_EP93XX || COMPILE_TEST) && SND_SOC
++++++++ depends on ARCH_EP93XX || COMPILE_TEST
select SND_SOC_GENERIC_DMAENGINE_PCM
help
Say Y or M if you want to add support for codecs attached to
tristate "SoC Audio support for Bluewater Systems Snapper CL15 module"
depends on SND_EP93XX_SOC && MACH_SNAPPER_CL15
select SND_EP93XX_SOC_I2S
----- --- select SND_SOC_TLV320AIC23
+++++ +++ select SND_SOC_TLV320AIC23_I2C
help
Say Y or M here if you want to add support for I2S audio on the
Bluewater Systems Snapper CL15 module.
default y if I2C=y
default y if SPI_MASTER=y
++++++++menu "CODEC drivers"
++++++++
config SND_SOC_ALL_CODECS
tristate "Build all ASoC CODEC drivers"
depends on COMPILE_TEST
select SND_SOC_AB8500_CODEC if ABX500_CORE
select SND_SOC_AC97_CODEC if SND_SOC_AC97_BUS
select SND_SOC_AD1836 if SPI_MASTER
-------- select SND_SOC_AD193X if SND_SOC_I2C_AND_SPI
++++++++ select SND_SOC_AD193X_SPI if SPI_MASTER
++++++++ select SND_SOC_AD193X_I2C if I2C
select SND_SOC_AD1980 if SND_SOC_AC97_BUS
select SND_SOC_AD73311
select SND_SOC_ADAU1373 if I2C
-------- select SND_SOC_ADAV80X if SND_SOC_I2C_AND_SPI
++++++++ select SND_SOC_ADAV801 if SPI_MASTER
++++++++ select SND_SOC_ADAV803 if I2C
++++++++ select SND_SOC_ADAU1977_SPI if SPI_MASTER
++++++++ select SND_SOC_ADAU1977_I2C if I2C
select SND_SOC_ADAU1701 if I2C
select SND_SOC_ADS117X
select SND_SOC_AK4104 if SPI_MASTER
select SND_SOC_AK4535 if I2C
++++++++ select SND_SOC_AK4554
select SND_SOC_AK4641 if I2C
select SND_SOC_AK4642 if I2C
select SND_SOC_AK4671 if I2C
select SND_SOC_PCM1681 if I2C
select SND_SOC_PCM1792A if SPI_MASTER
select SND_SOC_PCM3008
++++++++ select SND_SOC_PCM512x_I2C if I2C
++++++++ select SND_SOC_PCM512x_SPI if SPI_MASTER
select SND_SOC_RT5631 if I2C
select SND_SOC_RT5640 if I2C
select SND_SOC_SGTL5000 if I2C
select SND_SOC_STA529 if I2C
select SND_SOC_STAC9766 if SND_SOC_AC97_BUS
select SND_SOC_TAS5086 if I2C
----- --- select SND_SOC_TLV320AIC23 if I2C
+++++ +++ select SND_SOC_TLV320AIC23_I2C if I2C
+++++ +++ select SND_SOC_TLV320AIC23_SPI if SPI_MASTER
select SND_SOC_TLV320AIC26 if SPI_MASTER
select SND_SOC_TLV320AIC32X4 if I2C
select SND_SOC_TLV320AIC3X if I2C
config SND_SOC_AD193X
tristate
++++++++config SND_SOC_AD193X_SPI
++++++++ tristate
++++++++ select SND_SOC_AD193X
++++++++
++++++++config SND_SOC_AD193X_I2C
++++++++ tristate
++++++++ select SND_SOC_AD193X
++++++++
config SND_SOC_AD1980
tristate
tristate
config SND_SOC_ADAU1701
++++++++ tristate "Analog Devices ADAU1701 CODEC"
++++++++ depends on I2C
select SND_SOC_SIGMADSP
-------- tristate
config SND_SOC_ADAU1373
tristate
++++++++config SND_SOC_ADAU1977
++++++++ tristate
++++++++
++++++++config SND_SOC_ADAU1977_SPI
++++++++ tristate
++++++++ select SND_SOC_ADAU1977
++++++++ select REGMAP_SPI
++++++++
++++++++config SND_SOC_ADAU1977_I2C
++++++++ tristate
++++++++ select SND_SOC_ADAU1977
++++++++ select REGMAP_I2C
++++++++
config SND_SOC_ADAV80X
tristate
++++++++config SND_SOC_ADAV801
++++++++ tristate
++++++++ select SND_SOC_ADAV80X
++++++++
++++++++config SND_SOC_ADAV803
++++++++ tristate
++++++++ select SND_SOC_ADAV80X
++++++++
config SND_SOC_ADS117X
tristate
config SND_SOC_AK4104
-------- tristate
++++++++ tristate "AKM AK4104 CODEC"
++++++++ depends on SPI_MASTER
config SND_SOC_AK4535
tristate
config SND_SOC_AK4554
-------- tristate
++++++++ tristate "AKM AK4554 CODEC"
config SND_SOC_AK4641
tristate
config SND_SOC_AK4642
-------- tristate
++++++++ tristate "AKM AK4642 CODEC"
++++++++ depends on I2C
config SND_SOC_AK4671
tristate
config SND_SOC_AK5386
-------- tristate
++++++++ tristate "AKM AK5638 CODEC"
config SND_SOC_ALC5623
tristate
++++++++
config SND_SOC_ALC5632
tristate
tristate
config SND_SOC_CS42L52
-------- tristate
++++++++ tristate "Cirrus Logic CS42L52 CODEC"
++++++++ depends on I2C
config SND_SOC_CS42L73
-------- tristate
++++++++ tristate "Cirrus Logic CS42L73 CODEC"
++++++++ depends on I2C
# Cirrus Logic CS4270 Codec
config SND_SOC_CS4270
-------- tristate
++++++++ tristate "Cirrus Logic CS4270 CODEC"
++++++++ depends on I2C
# Cirrus Logic CS4270 Codec VD = 3.3V Errata
# Select if you are affected by the errata where the part will not function
depends on SND_SOC_CS4270
config SND_SOC_CS4271
-------- tristate
++++++++ tristate "Cirrus Logic CS4271 CODEC"
++++++++ depends on SND_SOC_I2C_AND_SPI
config SND_SOC_CX20442
tristate
config SND_SOC_DMIC
tristate
++++++++config SND_SOC_HDMI_CODEC
++++++++ tristate "HDMI stub CODEC"
++++++++
config SND_SOC_ISABELLE
tristate
config SND_SOC_MAX9850
tristate
--------config SND_SOC_HDMI_CODEC
-------- tristate
--------
config SND_SOC_PCM1681
-------- tristate
++++++++ tristate "Texas Instruments PCM1681 CODEC"
++++++++ depends on I2C
config SND_SOC_PCM1792A
-------- tristate
++++++++ tristate "Texas Instruments PCM1792A CODEC"
++++++++ depends on SPI_MASTER
config SND_SOC_PCM3008
tristate
++++++++config SND_SOC_PCM512x
++++++++ tristate
++++++++
++++++++config SND_SOC_PCM512x_I2C
++++++++ tristate "Texas Instruments PCM512x CODECs - I2C"
++++++++ depends on I2C
++++++++ select SND_SOC_PCM512x
++++++++ select REGMAP_I2C
++++++++
++++++++config SND_SOC_PCM512x_SPI
++++++++ tristate "Texas Instruments PCM512x CODECs - SPI"
++++++++ depends on SPI_MASTER
++++++++ select SND_SOC_PCM512x
++++++++ select REGMAP_SPI
++++++++
config SND_SOC_RT5631
tristate
#Freescale sgtl5000 codec
config SND_SOC_SGTL5000
-------- tristate
++++++++ tristate "Freescale SGTL5000 CODEC"
++++++++ depends on I2C
config SND_SOC_SI476X
tristate
tristate
config SND_SOC_SPDIF
-------- tristate
++++++++ tristate "S/PDIF CODEC"
config SND_SOC_SSM2518
tristate
tristate
config SND_SOC_TAS5086
-------- tristate
++++++++ tristate "Texas Instruments TAS5086 speaker amplifier"
++++++++ depends on I2C
config SND_SOC_TLV320AIC23
tristate
+++++ +++config SND_SOC_TLV320AIC23_I2C
+++++ +++ tristate
+++++ +++ select SND_SOC_TLV320AIC23
+++++ +++
+++++ +++config SND_SOC_TLV320AIC23_SPI
+++++ +++ tristate
+++++ +++ select SND_SOC_TLV320AIC23
+++++ +++
config SND_SOC_TLV320AIC26
tristate
depends on SPI
tristate
config SND_SOC_TLV320AIC3X
-------- tristate
++++++++ tristate "Texas Instruments TLV320AIC3x CODECs"
++++++++ depends on I2C
config SND_SOC_TLV320DAC33
tristate
tristate
config SND_SOC_WM8510
-------- tristate
++++++++ tristate "Wolfson Microelectronics WM8510 CODEC"
++++++++ depends on SND_SOC_I2C_AND_SPI
config SND_SOC_WM8523
-------- tristate
++++++++ tristate "Wolfson Microelectronics WM8523 DAC"
++++++++ depends on I2C
config SND_SOC_WM8580
-------- tristate
++++++++ tristate "Wolfson Microelectronics WM8523 CODEC"
++++++++ depends on I2C
config SND_SOC_WM8711
-------- tristate
++++++++ tristate "Wolfson Microelectronics WM8711 CODEC"
++++++++ depends on SND_SOC_I2C_AND_SPI
config SND_SOC_WM8727
tristate
config SND_SOC_WM8728
-------- tristate
++++++++ tristate "Wolfson Microelectronics WM8728 DAC"
++++++++ depends on SND_SOC_I2C_AND_SPI
config SND_SOC_WM8731
-------- tristate
++++++++ tristate "Wolfson Microelectronics WM8731 CODEC"
++++++++ depends on SND_SOC_I2C_AND_SPI
config SND_SOC_WM8737
-------- tristate
++++++++ tristate "Wolfson Microelectronics WM8737 ADC"
++++++++ depends on SND_SOC_I2C_AND_SPI
config SND_SOC_WM8741
-------- tristate
++++++++ tristate "Wolfson Microelectronics WM8737 DAC"
++++++++ depends on SND_SOC_I2C_AND_SPI
config SND_SOC_WM8750
-------- tristate
++++++++ tristate "Wolfson Microelectronics WM8750 CODEC"
++++++++ depends on SND_SOC_I2C_AND_SPI
config SND_SOC_WM8753
-------- tristate
++++++++ tristate "Wolfson Microelectronics WM8753 CODEC"
++++++++ depends on SND_SOC_I2C_AND_SPI
config SND_SOC_WM8770
-------- tristate
++++++++ tristate "Wolfson Microelectronics WM8770 CODEC"
++++++++ depends on SPI_MASTER
config SND_SOC_WM8776
-------- tristate
++++++++ tristate "Wolfson Microelectronics WM8776 CODEC"
++++++++ depends on SND_SOC_I2C_AND_SPI
config SND_SOC_WM8782
tristate
config SND_SOC_WM8804
-------- tristate
++++++++ tristate "Wolfson Microelectronics WM8804 S/PDIF transceiver"
++++++++ depends on SND_SOC_I2C_AND_SPI
config SND_SOC_WM8900
tristate
config SND_SOC_WM8903
-------- tristate
++++++++ tristate "Wolfson Microelectronics WM8903 CODEC"
++++++++ depends on I2C
config SND_SOC_WM8904
tristate
tristate
config SND_SOC_WM8962
-------- tristate
++++++++ tristate "Wolfson Microelectronics WM8962 CODEC"
++++++++ depends on I2C
config SND_SOC_WM8971
tristate
tristate
config SND_SOC_TPA6130A2
-------- tristate
++++++++ tristate "Texas Instruments TPA6130A2 headphone amplifier"
++++++++ depends on I2C
++++++++
++++++++endmenu
snd-soc-ac97-objs := ac97.o
snd-soc-ad1836-objs := ad1836.o
snd-soc-ad193x-objs := ad193x.o
++++++++snd-soc-ad193x-spi-objs := ad193x-spi.o
++++++++snd-soc-ad193x-i2c-objs := ad193x-i2c.o
snd-soc-ad1980-objs := ad1980.o
snd-soc-ad73311-objs := ad73311.o
snd-soc-adau1701-objs := adau1701.o
snd-soc-adau1373-objs := adau1373.o
++++++++snd-soc-adau1977-objs := adau1977.o
++++++++snd-soc-adau1977-spi-objs := adau1977-spi.o
++++++++snd-soc-adau1977-i2c-objs := adau1977-i2c.o
snd-soc-adav80x-objs := adav80x.o
++++++++snd-soc-adav801-objs := adav801.o
++++++++snd-soc-adav803-objs := adav803.o
snd-soc-ads117x-objs := ads117x.o
snd-soc-ak4104-objs := ak4104.o
snd-soc-ak4535-objs := ak4535.o
snd-soc-pcm1681-objs := pcm1681.o
snd-soc-pcm1792a-codec-objs := pcm1792a.o
snd-soc-pcm3008-objs := pcm3008.o
++++++++snd-soc-pcm512x-objs := pcm512x.o
++++++++snd-soc-pcm512x-i2c-objs := pcm512x-i2c.o
++++++++snd-soc-pcm512x-spi-objs := pcm512x-spi.o
snd-soc-rt5631-objs := rt5631.o
snd-soc-rt5640-objs := rt5640.o
snd-soc-sgtl5000-objs := sgtl5000.o
snd-soc-stac9766-objs := stac9766.o
snd-soc-tas5086-objs := tas5086.o
snd-soc-tlv320aic23-objs := tlv320aic23.o
+++++ +++snd-soc-tlv320aic23-i2c-objs := tlv320aic23-i2c.o
+++++ +++snd-soc-tlv320aic23-spi-objs := tlv320aic23-spi.o
snd-soc-tlv320aic26-objs := tlv320aic26.o
snd-soc-tlv320aic3x-objs := tlv320aic3x.o
snd-soc-tlv320aic32x4-objs := tlv320aic32x4.o
obj-$(CONFIG_SND_SOC_AC97_CODEC) += snd-soc-ac97.o
obj-$(CONFIG_SND_SOC_AD1836) += snd-soc-ad1836.o
obj-$(CONFIG_SND_SOC_AD193X) += snd-soc-ad193x.o
++++++++obj-$(CONFIG_SND_SOC_AD193X_SPI) += snd-soc-ad193x-spi.o
++++++++obj-$(CONFIG_SND_SOC_AD193X_I2C) += snd-soc-ad193x-i2c.o
obj-$(CONFIG_SND_SOC_AD1980) += snd-soc-ad1980.o
obj-$(CONFIG_SND_SOC_AD73311) += snd-soc-ad73311.o
obj-$(CONFIG_SND_SOC_ADAU1373) += snd-soc-adau1373.o
++++++++obj-$(CONFIG_SND_SOC_ADAU1977) += snd-soc-adau1977.o
++++++++obj-$(CONFIG_SND_SOC_ADAU1977_SPI) += snd-soc-adau1977-spi.o
++++++++obj-$(CONFIG_SND_SOC_ADAU1977_I2C) += snd-soc-adau1977-i2c.o
obj-$(CONFIG_SND_SOC_ADAU1701) += snd-soc-adau1701.o
obj-$(CONFIG_SND_SOC_ADAV80X) += snd-soc-adav80x.o
++++++++obj-$(CONFIG_SND_SOC_ADAV801) += snd-soc-adav801.o
++++++++obj-$(CONFIG_SND_SOC_ADAV803) += snd-soc-adav803.o
obj-$(CONFIG_SND_SOC_ADS117X) += snd-soc-ads117x.o
obj-$(CONFIG_SND_SOC_AK4104) += snd-soc-ak4104.o
obj-$(CONFIG_SND_SOC_AK4535) += snd-soc-ak4535.o
obj-$(CONFIG_SND_SOC_PCM1681) += snd-soc-pcm1681.o
obj-$(CONFIG_SND_SOC_PCM1792A) += snd-soc-pcm1792a-codec.o
obj-$(CONFIG_SND_SOC_PCM3008) += snd-soc-pcm3008.o
++++++++obj-$(CONFIG_SND_SOC_PCM512x) += snd-soc-pcm512x.o
++++++++obj-$(CONFIG_SND_SOC_PCM512x_I2C) += snd-soc-pcm512x-i2c.o
++++++++obj-$(CONFIG_SND_SOC_PCM512x_SPI) += snd-soc-pcm512x-spi.o
obj-$(CONFIG_SND_SOC_RT5631) += snd-soc-rt5631.o
obj-$(CONFIG_SND_SOC_RT5640) += snd-soc-rt5640.o
obj-$(CONFIG_SND_SOC_SGTL5000) += snd-soc-sgtl5000.o
obj-$(CONFIG_SND_SOC_STAC9766) += snd-soc-stac9766.o
obj-$(CONFIG_SND_SOC_TAS5086) += snd-soc-tas5086.o
obj-$(CONFIG_SND_SOC_TLV320AIC23) += snd-soc-tlv320aic23.o
+++++ +++obj-$(CONFIG_SND_SOC_TLV320AIC23_I2C) += snd-soc-tlv320aic23-i2c.o
+++++ +++obj-$(CONFIG_SND_SOC_TLV320AIC23_SPI) += snd-soc-tlv320aic23-spi.o
obj-$(CONFIG_SND_SOC_TLV320AIC26) += snd-soc-tlv320aic26.o
obj-$(CONFIG_SND_SOC_TLV320AIC3X) += snd-soc-tlv320aic3x.o
obj-$(CONFIG_SND_SOC_TLV320AIC32X4) += snd-soc-tlv320aic32x4.o
"150Hz", "200Hz", "300Hz", "400Hz"
};
-- ------static const struct soc_enum da732x_dac1_hpf_mode_enum[] = {
-- ------ SOC_ENUM_SINGLE(DA732X_REG_DAC1_HPF, DA732X_HPF_MODE_SHIFT,
- DA732X_HPF_MODE_MAX, da732x_hpf_mode)
- };
-
- static const struct soc_enum da732x_dac2_hpf_mode_enum[] = {
- SOC_ENUM_SINGLE(DA732X_REG_DAC2_HPF, DA732X_HPF_MODE_SHIFT,
-- ------ DA732X_HPF_MODE_MAX, da732x_hpf_mode)
-- ------};
++ ++++++static SOC_ENUM_SINGLE_DECL(da732x_dac1_hpf_mode_enum,
++ ++++++ DA732X_REG_DAC1_HPF, DA732X_HPF_MODE_SHIFT,
++ ++++++ da732x_hpf_mode);
- static const struct soc_enum da732x_dac3_hpf_mode_enum[] = {
- SOC_ENUM_SINGLE(DA732X_REG_DAC3_HPF, DA732X_HPF_MODE_SHIFT,
- ------static const struct soc_enum da732x_dac2_hpf_mode_enum[] = {
- ------ SOC_ENUM_SINGLE(DA732X_REG_DAC2_HPF, DA732X_HPF_MODE_SHIFT,
-- ------ DA732X_HPF_MODE_MAX, da732x_hpf_mode)
-- ------};
++ ++++++static SOC_ENUM_SINGLE_DECL(da732x_dac2_hpf_mode_enum,
++ ++++++ DA732X_REG_DAC2_HPF, DA732X_HPF_MODE_SHIFT,
++ ++++++ da732x_hpf_mode);
- static const struct soc_enum da732x_adc1_hpf_mode_enum[] = {
- SOC_ENUM_SINGLE(DA732X_REG_ADC1_HPF, DA732X_HPF_MODE_SHIFT,
- ------static const struct soc_enum da732x_dac3_hpf_mode_enum[] = {
- ------ SOC_ENUM_SINGLE(DA732X_REG_DAC3_HPF, DA732X_HPF_MODE_SHIFT,
-- ------ DA732X_HPF_MODE_MAX, da732x_hpf_mode)
-- ------};
++ ++++++static SOC_ENUM_SINGLE_DECL(da732x_dac3_hpf_mode_enum,
++ ++++++ DA732X_REG_DAC3_HPF, DA732X_HPF_MODE_SHIFT,
++ ++++++ da732x_hpf_mode);
- static const struct soc_enum da732x_adc2_hpf_mode_enum[] = {
- SOC_ENUM_SINGLE(DA732X_REG_ADC2_HPF, DA732X_HPF_MODE_SHIFT,
- ------static const struct soc_enum da732x_adc1_hpf_mode_enum[] = {
- ------ SOC_ENUM_SINGLE(DA732X_REG_ADC1_HPF, DA732X_HPF_MODE_SHIFT,
-- ------ DA732X_HPF_MODE_MAX, da732x_hpf_mode)
-- ------};
++ ++++++static SOC_ENUM_SINGLE_DECL(da732x_adc1_hpf_mode_enum,
++ ++++++ DA732X_REG_ADC1_HPF, DA732X_HPF_MODE_SHIFT,
++ ++++++ da732x_hpf_mode);
- static const struct soc_enum da732x_dac1_hp_filter_enum[] = {
- SOC_ENUM_SINGLE(DA732X_REG_DAC1_HPF, DA732X_HPF_MUSIC_SHIFT,
- DA732X_HPF_MUSIC_MAX, da732x_hpf_music)
- ------static const struct soc_enum da732x_adc2_hpf_mode_enum[] = {
- ------ SOC_ENUM_SINGLE(DA732X_REG_ADC2_HPF, DA732X_HPF_MODE_SHIFT,
- ------ DA732X_HPF_MODE_MAX, da732x_hpf_mode)
-- ------};
++ ++++++static SOC_ENUM_SINGLE_DECL(da732x_adc2_hpf_mode_enum,
++ ++++++ DA732X_REG_ADC2_HPF, DA732X_HPF_MODE_SHIFT,
++ ++++++ da732x_hpf_mode);
- static const struct soc_enum da732x_dac2_hp_filter_enum[] = {
- SOC_ENUM_SINGLE(DA732X_REG_DAC2_HPF, DA732X_HPF_MUSIC_SHIFT,
- ------static const struct soc_enum da732x_dac1_hp_filter_enum[] = {
- ------ SOC_ENUM_SINGLE(DA732X_REG_DAC1_HPF, DA732X_HPF_MUSIC_SHIFT,
-- ------ DA732X_HPF_MUSIC_MAX, da732x_hpf_music)
-- ------};
++ ++++++static SOC_ENUM_SINGLE_DECL(da732x_dac1_hp_filter_enum,
++ ++++++ DA732X_REG_DAC1_HPF, DA732X_HPF_MUSIC_SHIFT,
++ ++++++ da732x_hpf_music);
- static const struct soc_enum da732x_dac3_hp_filter_enum[] = {
- SOC_ENUM_SINGLE(DA732X_REG_DAC3_HPF, DA732X_HPF_MUSIC_SHIFT,
- ------static const struct soc_enum da732x_dac2_hp_filter_enum[] = {
- ------ SOC_ENUM_SINGLE(DA732X_REG_DAC2_HPF, DA732X_HPF_MUSIC_SHIFT,
-- ------ DA732X_HPF_MUSIC_MAX, da732x_hpf_music)
-- ------};
++ ++++++static SOC_ENUM_SINGLE_DECL(da732x_dac2_hp_filter_enum,
++ ++++++ DA732X_REG_DAC2_HPF, DA732X_HPF_MUSIC_SHIFT,
++ ++++++ da732x_hpf_music);
- static const struct soc_enum da732x_adc1_hp_filter_enum[] = {
- SOC_ENUM_SINGLE(DA732X_REG_ADC1_HPF, DA732X_HPF_MUSIC_SHIFT,
- ------static const struct soc_enum da732x_dac3_hp_filter_enum[] = {
- ------ SOC_ENUM_SINGLE(DA732X_REG_DAC3_HPF, DA732X_HPF_MUSIC_SHIFT,
-- ------ DA732X_HPF_MUSIC_MAX, da732x_hpf_music)
-- ------};
++ ++++++static SOC_ENUM_SINGLE_DECL(da732x_dac3_hp_filter_enum,
++ ++++++ DA732X_REG_DAC3_HPF, DA732X_HPF_MUSIC_SHIFT,
++ ++++++ da732x_hpf_music);
- static const struct soc_enum da732x_adc2_hp_filter_enum[] = {
- SOC_ENUM_SINGLE(DA732X_REG_ADC2_HPF, DA732X_HPF_MUSIC_SHIFT,
- ------static const struct soc_enum da732x_adc1_hp_filter_enum[] = {
- ------ SOC_ENUM_SINGLE(DA732X_REG_ADC1_HPF, DA732X_HPF_MUSIC_SHIFT,
-- ------ DA732X_HPF_MUSIC_MAX, da732x_hpf_music)
-- ------};
++ ++++++static SOC_ENUM_SINGLE_DECL(da732x_adc1_hp_filter_enum,
++ ++++++ DA732X_REG_ADC1_HPF, DA732X_HPF_MUSIC_SHIFT,
++ ++++++ da732x_hpf_music);
- static const struct soc_enum da732x_dac1_voice_filter_enum[] = {
- SOC_ENUM_SINGLE(DA732X_REG_DAC1_HPF, DA732X_HPF_VOICE_SHIFT,
- DA732X_HPF_VOICE_MAX, da732x_hpf_voice)
- ------static const struct soc_enum da732x_adc2_hp_filter_enum[] = {
- ------ SOC_ENUM_SINGLE(DA732X_REG_ADC2_HPF, DA732X_HPF_MUSIC_SHIFT,
- ------ DA732X_HPF_MUSIC_MAX, da732x_hpf_music)
-- ------};
++ ++++++static SOC_ENUM_SINGLE_DECL(da732x_adc2_hp_filter_enum,
++ ++++++ DA732X_REG_ADC2_HPF, DA732X_HPF_MUSIC_SHIFT,
++ ++++++ da732x_hpf_music);
- static const struct soc_enum da732x_dac2_voice_filter_enum[] = {
- SOC_ENUM_SINGLE(DA732X_REG_DAC2_HPF, DA732X_HPF_VOICE_SHIFT,
- ------static const struct soc_enum da732x_dac1_voice_filter_enum[] = {
- ------ SOC_ENUM_SINGLE(DA732X_REG_DAC1_HPF, DA732X_HPF_VOICE_SHIFT,
-- ------ DA732X_HPF_VOICE_MAX, da732x_hpf_voice)
-- ------};
++ ++++++static SOC_ENUM_SINGLE_DECL(da732x_dac1_voice_filter_enum,
++ ++++++ DA732X_REG_DAC1_HPF, DA732X_HPF_VOICE_SHIFT,
++ ++++++ da732x_hpf_voice);
- static const struct soc_enum da732x_dac3_voice_filter_enum[] = {
- SOC_ENUM_SINGLE(DA732X_REG_DAC3_HPF, DA732X_HPF_VOICE_SHIFT,
- ------static const struct soc_enum da732x_dac2_voice_filter_enum[] = {
- ------ SOC_ENUM_SINGLE(DA732X_REG_DAC2_HPF, DA732X_HPF_VOICE_SHIFT,
-- ------ DA732X_HPF_VOICE_MAX, da732x_hpf_voice)
-- ------};
++ ++++++static SOC_ENUM_SINGLE_DECL(da732x_dac2_voice_filter_enum,
++ ++++++ DA732X_REG_DAC2_HPF, DA732X_HPF_VOICE_SHIFT,
++ ++++++ da732x_hpf_voice);
- static const struct soc_enum da732x_adc1_voice_filter_enum[] = {
- SOC_ENUM_SINGLE(DA732X_REG_ADC1_HPF, DA732X_HPF_VOICE_SHIFT,
- ------static const struct soc_enum da732x_dac3_voice_filter_enum[] = {
- ------ SOC_ENUM_SINGLE(DA732X_REG_DAC3_HPF, DA732X_HPF_VOICE_SHIFT,
-- ------ DA732X_HPF_VOICE_MAX, da732x_hpf_voice)
-- ------};
++ ++++++static SOC_ENUM_SINGLE_DECL(da732x_dac3_voice_filter_enum,
++ ++++++ DA732X_REG_DAC3_HPF, DA732X_HPF_VOICE_SHIFT,
++ ++++++ da732x_hpf_voice);
- ------static const struct soc_enum da732x_adc1_voice_filter_enum[] = {
- ------ SOC_ENUM_SINGLE(DA732X_REG_ADC1_HPF, DA732X_HPF_VOICE_SHIFT,
- ------ DA732X_HPF_VOICE_MAX, da732x_hpf_voice)
- ------};
- ------
-- ------static const struct soc_enum da732x_adc2_voice_filter_enum[] = {
-- ------ SOC_ENUM_SINGLE(DA732X_REG_ADC2_HPF, DA732X_HPF_VOICE_SHIFT,
-- ------ DA732X_HPF_VOICE_MAX, da732x_hpf_voice)
-- ------};
++ ++++++static SOC_ENUM_SINGLE_DECL(da732x_adc1_voice_filter_enum,
++ ++++++ DA732X_REG_ADC1_HPF, DA732X_HPF_VOICE_SHIFT,
++ ++++++ da732x_hpf_voice);
++ ++++++static SOC_ENUM_SINGLE_DECL(da732x_adc2_voice_filter_enum,
++ ++++++ DA732X_REG_ADC2_HPF, DA732X_HPF_VOICE_SHIFT,
++ ++++++ da732x_hpf_voice);
static int da732x_hpf_set(struct snd_kcontrol *kcontrol,
struct snd_ctl_elem_value *ucontrol)
};
/* ADC1LMUX */
-- ------static const struct soc_enum adc1l_enum =
-- ------ SOC_ENUM_SINGLE(DA732X_REG_INP_MUX, DA732X_ADC1L_MUX_SEL_SHIFT,
-- ------ DA732X_ADCL_MUX_MAX, adcl_text);
++ ++++++static SOC_ENUM_SINGLE_DECL(adc1l_enum,
++ ++++++ DA732X_REG_INP_MUX, DA732X_ADC1L_MUX_SEL_SHIFT,
++ ++++++ adcl_text);
static const struct snd_kcontrol_new adc1l_mux =
SOC_DAPM_ENUM("ADC Route", adc1l_enum);
/* ADC1RMUX */
-- ------static const struct soc_enum adc1r_enum =
-- ------ SOC_ENUM_SINGLE(DA732X_REG_INP_MUX, DA732X_ADC1R_MUX_SEL_SHIFT,
-- ------ DA732X_ADCR_MUX_MAX, adcr_text);
++ ++++++static SOC_ENUM_SINGLE_DECL(adc1r_enum,
++ ++++++ DA732X_REG_INP_MUX, DA732X_ADC1R_MUX_SEL_SHIFT,
++ ++++++ adcr_text);
static const struct snd_kcontrol_new adc1r_mux =
SOC_DAPM_ENUM("ADC Route", adc1r_enum);
/* ADC2LMUX */
-- ------static const struct soc_enum adc2l_enum =
-- ------ SOC_ENUM_SINGLE(DA732X_REG_INP_MUX, DA732X_ADC2L_MUX_SEL_SHIFT,
-- ------ DA732X_ADCL_MUX_MAX, adcl_text);
++ ++++++static SOC_ENUM_SINGLE_DECL(adc2l_enum,
++ ++++++ DA732X_REG_INP_MUX, DA732X_ADC2L_MUX_SEL_SHIFT,
++ ++++++ adcl_text);
static const struct snd_kcontrol_new adc2l_mux =
SOC_DAPM_ENUM("ADC Route", adc2l_enum);
/* ADC2RMUX */
-- ------static const struct soc_enum adc2r_enum =
-- ------ SOC_ENUM_SINGLE(DA732X_REG_INP_MUX, DA732X_ADC2R_MUX_SEL_SHIFT,
-- ------ DA732X_ADCR_MUX_MAX, adcr_text);
++ ++++++static SOC_ENUM_SINGLE_DECL(adc2r_enum,
++ ++++++ DA732X_REG_INP_MUX, DA732X_ADC2R_MUX_SEL_SHIFT,
++ ++++++ adcr_text);
static const struct snd_kcontrol_new adc2r_mux =
SOC_DAPM_ENUM("ADC Route", adc2r_enum);
-- ------static const struct soc_enum da732x_hp_left_output =
-- ------ SOC_ENUM_SINGLE(DA732X_REG_HPL, DA732X_HP_OUT_DAC_EN_SHIFT,
-- ------ DA732X_DAC_EN_MAX, enable_text);
++ ++++++static SOC_ENUM_SINGLE_DECL(da732x_hp_left_output,
++ ++++++ DA732X_REG_HPL, DA732X_HP_OUT_DAC_EN_SHIFT,
++ ++++++ enable_text);
static const struct snd_kcontrol_new hpl_mux =
SOC_DAPM_ENUM("HPL Switch", da732x_hp_left_output);
-- ------static const struct soc_enum da732x_hp_right_output =
-- ------ SOC_ENUM_SINGLE(DA732X_REG_HPR, DA732X_HP_OUT_DAC_EN_SHIFT,
-- ------ DA732X_DAC_EN_MAX, enable_text);
++ ++++++static SOC_ENUM_SINGLE_DECL(da732x_hp_right_output,
++ ++++++ DA732X_REG_HPR, DA732X_HP_OUT_DAC_EN_SHIFT,
++ ++++++ enable_text);
static const struct snd_kcontrol_new hpr_mux =
SOC_DAPM_ENUM("HPR Switch", da732x_hp_right_output);
-- ------static const struct soc_enum da732x_speaker_output =
-- ------ SOC_ENUM_SINGLE(DA732X_REG_LIN3, DA732X_LOUT_DAC_EN_SHIFT,
-- ------ DA732X_DAC_EN_MAX, enable_text);
++ ++++++static SOC_ENUM_SINGLE_DECL(da732x_speaker_output,
++ ++++++ DA732X_REG_LIN3, DA732X_LOUT_DAC_EN_SHIFT,
++ ++++++ enable_text);
static const struct snd_kcontrol_new spk_mux =
SOC_DAPM_ENUM("SPK Switch", da732x_speaker_output);
-- ------static const struct soc_enum da732x_lout4_output =
-- ------ SOC_ENUM_SINGLE(DA732X_REG_LIN4, DA732X_LOUT_DAC_EN_SHIFT,
-- ------ DA732X_DAC_EN_MAX, enable_text);
++ ++++++static SOC_ENUM_SINGLE_DECL(da732x_lout4_output,
++ ++++++ DA732X_REG_LIN4, DA732X_LOUT_DAC_EN_SHIFT,
++ ++++++ enable_text);
static const struct snd_kcontrol_new lout4_mux =
SOC_DAPM_ENUM("LOUT4 Switch", da732x_lout4_output);
-- ------static const struct soc_enum da732x_lout2_output =
-- ------ SOC_ENUM_SINGLE(DA732X_REG_LIN2, DA732X_LOUT_DAC_EN_SHIFT,
-- ------ DA732X_DAC_EN_MAX, enable_text);
++ ++++++static SOC_ENUM_SINGLE_DECL(da732x_lout2_output,
++ ++++++ DA732X_REG_LIN2, DA732X_LOUT_DAC_EN_SHIFT,
++ ++++++ enable_text);
static const struct snd_kcontrol_new lout2_mux =
SOC_DAPM_ENUM("LOUT2 Switch", da732x_lout2_output);
},
};
++++++++static bool da732x_volatile(struct device *dev, unsigned int reg)
++++++++{
++++++++ switch (reg) {
++++++++ case DA732X_REG_HPL_DAC_OFF_CNTL:
++++++++ case DA732X_REG_HPR_DAC_OFF_CNTL:
++++++++ return true;
++++++++ default:
++++++++ return false;
++++++++ }
++++++++}
++++++++
static const struct regmap_config da732x_regmap = {
.reg_bits = 8,
.val_bits = 8,
.max_register = DA732X_MAX_REG,
++++++++ .volatile_reg = da732x_volatile,
.reg_defaults = da732x_reg_cache,
.num_reg_defaults = ARRAY_SIZE(da732x_reg_cache),
.cache_type = REGCACHE_RBTREE,
da732x_hp_dc_offset_cancellation(codec);
-- ------ regcache_cache_only(codec->control_data, false);
-- ------ regcache_sync(codec->control_data);
++ ++++++ regcache_cache_only(da732x->regmap, false);
++ ++++++ regcache_sync(da732x->regmap);
} else {
snd_soc_update_bits(codec, DA732X_REG_BIAS_EN,
DA732X_BIAS_BOOST_MASK,
}
break;
case SND_SOC_BIAS_OFF:
-- ------ regcache_cache_only(codec->control_data, true);
++ ++++++ regcache_cache_only(da732x->regmap, true);
da732x_set_charge_pump(codec, DA732X_DISABLE_CP);
snd_soc_update_bits(codec, DA732X_REG_BIAS_EN, DA732X_BIAS_EN,
DA732X_BIAS_DIS);
.dapm_routes = da732x_dapm_routes,
.num_dapm_routes = ARRAY_SIZE(da732x_dapm_routes),
.set_pll = da732x_set_dai_pll,
-- ------ .reg_cache_size = ARRAY_SIZE(da732x_reg_cache),
};
static int da732x_i2c_probe(struct i2c_client *i2c,
#include <linux/init.h>
#include <linux/delay.h>
#include <linux/pm.h>
----- ---#include <linux/i2c.h>
#include <linux/regmap.h>
#include <linux/slab.h>
#include <sound/core.h>
{ 9, 0x0000 },
};
----- ---static const struct regmap_config tlv320aic23_regmap = {
+++++ +++const struct regmap_config tlv320aic23_regmap = {
.reg_bits = 7,
.val_bits = 9,
static const char *rec_src_text[] = { "Line", "Mic" };
static const char *deemph_text[] = {"None", "32Khz", "44.1Khz", "48Khz"};
----- ---static const struct soc_enum rec_src_enum =
----- --- SOC_ENUM_SINGLE(TLV320AIC23_ANLG, 2, 2, rec_src_text);
+++++ +++static SOC_ENUM_SINGLE_DECL(rec_src_enum,
+++++ +++ TLV320AIC23_ANLG, 2, rec_src_text);
static const struct snd_kcontrol_new tlv320aic23_rec_src_mux_controls =
SOC_DAPM_ENUM("Input Select", rec_src_enum);
----- ---static const struct soc_enum tlv320aic23_rec_src =
----- --- SOC_ENUM_SINGLE(TLV320AIC23_ANLG, 2, 2, rec_src_text);
----- ---static const struct soc_enum tlv320aic23_deemph =
----- --- SOC_ENUM_SINGLE(TLV320AIC23_DIGT, 1, 4, deemph_text);
+++++ +++static SOC_ENUM_SINGLE_DECL(tlv320aic23_rec_src,
+++++ +++ TLV320AIC23_ANLG, 2, rec_src_text);
+++++ +++static SOC_ENUM_SINGLE_DECL(tlv320aic23_deemph,
+++++ +++ TLV320AIC23_DIGT, 1, deemph_text);
static const DECLARE_TLV_DB_SCALE(out_gain_tlv, -12100, 100, 0);
static const DECLARE_TLV_DB_SCALE(input_gain_tlv, -1725, 75, 0);
struct aic23 *aic23 = snd_soc_codec_get_drvdata(codec);
/* deactivate */
-------- if (!codec->active) {
++++++++ if (!snd_soc_codec_is_active(codec)) {
udelay(50);
snd_soc_write(codec, TLV320AIC23_ACTIVE, 0x0);
}
return 0;
}
----- ---static int tlv320aic23_probe(struct snd_soc_codec *codec)
+++++ +++static int tlv320aic23_codec_probe(struct snd_soc_codec *codec)
{
int ret;
}
static struct snd_soc_codec_driver soc_codec_dev_tlv320aic23 = {
----- --- .probe = tlv320aic23_probe,
+++++ +++ .probe = tlv320aic23_codec_probe,
.remove = tlv320aic23_remove,
.suspend = tlv320aic23_suspend,
.resume = tlv320aic23_resume,
.num_dapm_routes = ARRAY_SIZE(tlv320aic23_intercon),
};
----- ---/*
----- --- * If the i2c layer weren't so broken, we could pass this kind of data
----- --- * around
----- --- */
----- ---static int tlv320aic23_codec_probe(struct i2c_client *i2c,
----- --- const struct i2c_device_id *i2c_id)
+++++ +++int tlv320aic23_probe(struct device *dev, struct regmap *regmap)
{
struct aic23 *aic23;
----- --- int ret;
----- --- if (!i2c_check_functionality(i2c->adapter, I2C_FUNC_SMBUS_BYTE_DATA))
----- --- return -EINVAL;
+++++ +++ if (IS_ERR(regmap))
+++++ +++ return PTR_ERR(regmap);
----- --- aic23 = devm_kzalloc(&i2c->dev, sizeof(struct aic23), GFP_KERNEL);
+++++ +++ aic23 = devm_kzalloc(dev, sizeof(struct aic23), GFP_KERNEL);
if (aic23 == NULL)
return -ENOMEM;
----- --- aic23->regmap = devm_regmap_init_i2c(i2c, &tlv320aic23_regmap);
----- --- if (IS_ERR(aic23->regmap))
----- --- return PTR_ERR(aic23->regmap);
+++++ +++ aic23->regmap = regmap;
----- --- i2c_set_clientdata(i2c, aic23);
+++++ +++ dev_set_drvdata(dev, aic23);
----- --- ret = snd_soc_register_codec(&i2c->dev,
----- --- &soc_codec_dev_tlv320aic23, &tlv320aic23_dai, 1);
----- --- return ret;
----- ---}
----- ---static int __exit tlv320aic23_i2c_remove(struct i2c_client *i2c)
----- ---{
----- --- snd_soc_unregister_codec(&i2c->dev);
----- --- return 0;
+++++ +++ return snd_soc_register_codec(dev, &soc_codec_dev_tlv320aic23,
+++++ +++ &tlv320aic23_dai, 1);
}
----- ---static const struct i2c_device_id tlv320aic23_id[] = {
----- --- {"tlv320aic23", 0},
----- --- {}
----- ---};
----- ---
----- ---MODULE_DEVICE_TABLE(i2c, tlv320aic23_id);
----- ---
----- ---static struct i2c_driver tlv320aic23_i2c_driver = {
----- --- .driver = {
----- --- .name = "tlv320aic23-codec",
----- --- },
----- --- .probe = tlv320aic23_codec_probe,
----- --- .remove = __exit_p(tlv320aic23_i2c_remove),
----- --- .id_table = tlv320aic23_id,
----- ---};
----- ---
----- ---module_i2c_driver(tlv320aic23_i2c_driver);
----- ---
MODULE_DESCRIPTION("ASoC TLV320AIC23 codec driver");
MODULE_LICENSE("GPL");
config SND_SOC_FSL_SAI
tristate
+++++++ + select REGMAP_MMIO
select SND_SOC_GENERIC_DMAENGINE_PCM
config SND_SOC_FSL_SSI
config SND_SOC_FSL_SPDIF
tristate
+++++++ + select REGMAP_MMIO
config SND_SOC_FSL_ESAI
tristate
+++++++ + select REGMAP_MMIO
config SND_SOC_FSL_UTILS
tristate
depends on MACH_EUKREA_MBIMX27_BASEBOARD \
|| MACH_EUKREA_MBIMXSD25_BASEBOARD \
|| MACH_EUKREA_MBIMXSD35_BASEBOARD \
----- --- || MACH_EUKREA_MBIMXSD51_BASEBOARD
+++++ +++ || MACH_EUKREA_MBIMXSD51_BASEBOARD \
+++++ +++ || (OF && ARM)
depends on I2C
----- --- select SND_SOC_TLV320AIC23
----- --- select SND_SOC_IMX_PCM_FIQ
+++++ +++ select SND_SOC_TLV320AIC23_I2C
select SND_SOC_IMX_AUDMUX
select SND_SOC_IMX_SSI
+++++ +++ select SND_SOC_FSL_SSI
+++++ +++ select SND_SOC_IMX_PCM_DMA
help
Enable I2S based access to the TLV320AIC23B codec attached
to the SSI interface
tristate "SoC Audio support for i.MX boards with S/PDIF"
select SND_SOC_IMX_PCM_DMA
select SND_SOC_FSL_SPDIF
------- - select REGMAP_MMIO
help
SoC Audio support for i.MX boards with S/PDIF
Say Y if you want to add support for SoC audio on an i.MX board with
config SND_SOC_IMX_MC13783
tristate "SoC Audio support for I.MX boards with mc13783"
- depends on MFD_MC13783 && ARM
+ depends on MFD_MC13XXX && ARM
select SND_SOC_IMX_SSI
select SND_SOC_IMX_AUDMUX
select SND_SOC_MC13783
regmap_update_bits(esai_priv->regmap, REG_ESAI_TSMA,
ESAI_xSMA_xS_MASK, ESAI_xSMA_xS(tx_mask));
regmap_update_bits(esai_priv->regmap, REG_ESAI_TSMB,
-------- ESAI_xSMA_xS_MASK, ESAI_xSMB_xS(tx_mask));
++++++++ ESAI_xSMB_xS_MASK, ESAI_xSMB_xS(tx_mask));
regmap_update_bits(esai_priv->regmap, REG_ESAI_RCCR,
ESAI_xCCR_xDC_MASK, ESAI_xCCR_xDC(slots));
regmap_update_bits(esai_priv->regmap, REG_ESAI_RSMA,
ESAI_xSMA_xS_MASK, ESAI_xSMA_xS(rx_mask));
regmap_update_bits(esai_priv->regmap, REG_ESAI_RSMB,
-------- ESAI_xSMA_xS_MASK, ESAI_xSMB_xS(rx_mask));
++++++++ ESAI_xSMB_xS_MASK, ESAI_xSMB_xS(rx_mask));
esai_priv->slot_width = slot_width;
static int fsl_esai_startup(struct snd_pcm_substream *substream,
struct snd_soc_dai *dai)
{
++++++ ++ int ret;
struct fsl_esai *esai_priv = snd_soc_dai_get_drvdata(dai);
/*
* Some platforms might use the same bit to gate all three or two of
* clocks, so keep all clocks open/close at the same time for safety
*/
------ -- clk_prepare_enable(esai_priv->coreclk);
------ -- if (!IS_ERR(esai_priv->extalclk))
------ -- clk_prepare_enable(esai_priv->extalclk);
------ -- if (!IS_ERR(esai_priv->fsysclk))
------ -- clk_prepare_enable(esai_priv->fsysclk);
++++++ ++ ret = clk_prepare_enable(esai_priv->coreclk);
++++++ ++ if (ret)
++++++ ++ return ret;
++++++ ++ if (!IS_ERR(esai_priv->extalclk)) {
++++++ ++ ret = clk_prepare_enable(esai_priv->extalclk);
++++++ ++ if (ret)
++++++ ++ goto err_extalck;
++++++ ++ }
++++++ ++ if (!IS_ERR(esai_priv->fsysclk)) {
++++++ ++ ret = clk_prepare_enable(esai_priv->fsysclk);
++++++ ++ if (ret)
++++++ ++ goto err_fsysclk;
++++++ ++ }
if (!dai->active) {
/* Reset Port C */
}
return 0;
++++++ ++
++++++ ++err_fsysclk:
++++++ ++ if (!IS_ERR(esai_priv->extalclk))
++++++ ++ clk_disable_unprepare(esai_priv->extalclk);
++++++ ++err_extalck:
++++++ ++ clk_disable_unprepare(esai_priv->coreclk);
++++++ ++
++++++ ++ return ret;
}
static int fsl_esai_hw_params(struct snd_pcm_substream *substream,
}
}
------ --static const struct regmap_config fsl_esai_regmap_config = {
++++++ ++static struct regmap_config fsl_esai_regmap_config = {
.reg_bits = 32,
.reg_stride = 4,
.val_bits = 32,
esai_priv->pdev = pdev;
strcpy(esai_priv->name, np->name);
++++++ ++ if (of_property_read_bool(np, "big-endian"))
++++++ ++ fsl_esai_regmap_config.val_format_endian = REGMAP_ENDIAN_BIG;
++++++ ++
/* Get the addresses and IRQ */
res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
regs = devm_ioremap_resource(&pdev->dev, res);
{
struct fsl_spdif_priv *spdif_private = snd_soc_dai_get_drvdata(dai);
----- --- dai->playback_dma_data = &spdif_private->dma_params_tx;
----- --- dai->capture_dma_data = &spdif_private->dma_params_rx;
+++++ +++ snd_soc_dai_init_dma_data(dai, &spdif_private->dma_params_tx,
+++++ +++ &spdif_private->dma_params_rx);
snd_soc_add_dai_controls(dai, fsl_spdif_ctrls, ARRAY_SIZE(fsl_spdif_ctrls));
}
}
-------- static const struct regmap_config fsl_spdif_regmap_config = {
++++++++ static struct regmap_config fsl_spdif_regmap_config = {
.reg_bits = 32,
.reg_stride = 4,
.val_bits = 32,
memcpy(&spdif_priv->cpu_dai_drv, &fsl_spdif_dai, sizeof(fsl_spdif_dai));
spdif_priv->cpu_dai_drv.name = spdif_priv->name;
++++++++ if (of_property_read_bool(np, "big-endian"))
++++++++ fsl_spdif_regmap_config.val_format_endian = REGMAP_ENDIAN_BIG;
++++++++
/* Get the addresses and IRQ */
res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
regs = devm_ioremap_resource(&pdev->dev, res);
config SND_S3C24XX_I2S
tristate
- select S3C2410_DMA
+ select S3C24XX_DMA
config SND_S3C_I2SV2_SOC
tristate
select SND_SOC_WM8750
select SND_S3C2412_SOC_I2S
help
-------- Sat Y if you want to add support for SoC audio on the Jive.
++++++++ Say Y if you want to add support for SoC audio on the Jive.
config SND_SOC_SAMSUNG_SMDK_WM8580
tristate "SoC I2S Audio support for WM8580 on SMDK"
tristate "SoC I2S Audio support for TLV320AIC23 on Simtec boards"
depends on SND_SOC_SAMSUNG && ARCH_S3C24XX
select SND_S3C24XX_I2S
----- --- select SND_SOC_TLV320AIC23
+++++ +++ select SND_SOC_TLV320AIC23_I2C
select SND_SOC_SAMSUNG_SIMTEC
config SND_SOC_SAMSUNG_SIMTEC_HERMES
config SND_SOC_SAMSUNG_SMDK_WM9713
tristate "SoC AC97 Audio support for SMDK with WM9713"
-------- depends on SND_SOC_SAMSUNG && (MACH_SMDK6410 || MACH_SMDKC100 || MACH_SMDKV210 || MACH_SMDKC110 || MACH_SMDKV310 || MACH_SMDKC210)
++++++++ depends on SND_SOC_SAMSUNG && (MACH_SMDK6410 || MACH_SMDKC100 || MACH_SMDKV210 || MACH_SMDKC110)
select SND_SOC_WM9713
select SND_SAMSUNG_AC97
help
-------- Sat Y if you want to add support for SoC audio on the SMDK.
++++++++ Say Y if you want to add support for SoC audio on the SMDK.
config SND_SOC_SMARTQ
tristate "SoC I2S Audio support for SmartQ board"
config SND_SOC_BELLS
tristate "Audio support for Wolfson Bells"
- depends on SND_SOC_SAMSUNG && MACH_WLF_CRAGG_6410
+ depends on SND_SOC_SAMSUNG && MACH_WLF_CRAGG_6410 && MFD_ARIZONA
select SND_SAMSUNG_I2S
select SND_SOC_WM5102
select SND_SOC_WM5110