menuconfig SND_SOC_SAMSUNG
	tristate "ASoC support for Samsung"
	depends on PLAT_SAMSUNG || ARCH_EXYNOS || COMPILE_TEST
	depends on COMMON_CLK
	select SND_SOC_GENERIC_DMAENGINE_PCM
	---help---
	  Say Y or M if you want to add support for codecs attached to
	  the Samsung SoCs' Audio interfaces. You will also need to
	  select the audio interfaces to support below.

if SND_SOC_SAMSUNG

config SND_S3C24XX_I2S
	tristate

config SND_S3C_I2SV2_SOC
	tristate

config SND_S3C2412_SOC_I2S
	tristate
	select SND_S3C_I2SV2_SOC

config SND_SAMSUNG_PCM
	tristate "Samsung PCM interface support"

config SND_SAMSUNG_SPDIF
	tristate "Samsung SPDIF transmitter support"
	select SND_SOC_SPDIF

config SND_SAMSUNG_I2S
	tristate "Samsung I2S interface support"

config SND_SOC_SAMSUNG_DISPLAYPORT
	tristate "Samsung display port audio interface support"

config SND_SOC_SAMSUNG_NEO1973_WM8753
	tristate "Audio support for Openmoko Neo1973 Smartphones (GTA02)"
	depends on MACH_NEO1973_GTA02
	select SND_S3C24XX_I2S
	select SND_SOC_WM8753
	select SND_SOC_BT_SCO
	help
	  Say Y here to enable audio support for the Openmoko Neo1973
	  Smartphones.

config SND_SOC_SAMSUNG_JIVE_WM8750
	tristate "SoC I2S Audio support for Jive"
	depends on MACH_JIVE && I2C
	select SND_SOC_WM8750
	select SND_S3C2412_SOC_I2S
	help
	  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"
	depends on MACH_SMDK6410 || COMPILE_TEST
	depends on I2C
	select SND_SOC_WM8580
	select SND_SAMSUNG_I2S
	help
	  Say Y if you want to add support for SoC audio on the SMDKs.

config SND_SOC_SAMSUNG_SMDK_WM8994
	tristate "SoC I2S Audio support for WM8994 on SMDK"
	depends on I2C=y
	select MFD_WM8994
	select SND_SOC_WM8994
	select SND_SAMSUNG_I2S
	help
		Say Y if you want to add support for SoC audio on the SMDKs.

config SND_SOC_SAMSUNG_S3C24XX_UDA134X
	tristate "SoC I2S Audio support UDA134X wired to a S3C24XX"
	depends on ARCH_S3C24XX
	select SND_S3C24XX_I2S
	select SND_SOC_L3
	select SND_SOC_UDA134X

config SND_SOC_SAMSUNG_SIMTEC
	tristate
	help
	  Internal node for common S3C24XX/Simtec suppor

config SND_SOC_SAMSUNG_SIMTEC_TLV320AIC23
	tristate "SoC I2S Audio support for TLV320AIC23 on Simtec boards"
	depends on ARCH_S3C24XX && I2C
	select SND_S3C24XX_I2S
	select SND_SOC_TLV320AIC23_I2C
	select SND_SOC_SAMSUNG_SIMTEC

config SND_SOC_SAMSUNG_SIMTEC_HERMES
	tristate "SoC I2S Audio support for Simtec Hermes board"
	depends on ARCH_S3C24XX && I2C
	select SND_S3C24XX_I2S
	select SND_SOC_TLV320AIC3X
	select SND_SOC_SAMSUNG_SIMTEC

config SND_SOC_SAMSUNG_H1940_UDA1380
	tristate "Audio support for the HP iPAQ H1940"
	depends on ARCH_H1940 && I2C
	select SND_S3C24XX_I2S
	select SND_SOC_UDA1380
	help
	  This driver provides audio support for HP iPAQ h1940 PDA.

config SND_SOC_SAMSUNG_RX1950_UDA1380
	tristate "Audio support for the HP iPAQ RX1950"
	depends on MACH_RX1950 && I2C
	select SND_S3C24XX_I2S
	select SND_SOC_UDA1380
	help
	  This driver provides audio support for HP iPAQ RX1950 PDA.

config SND_SOC_SMARTQ
	tristate "SoC I2S Audio support for SmartQ board"
	depends on MACH_SMARTQ || COMPILE_TEST
	depends on GPIOLIB || COMPILE_TEST
	depends on I2C
	select SND_SAMSUNG_I2S
	select SND_SOC_WM8750

config SND_SOC_SAMSUNG_SMDK_SPDIF
	tristate "SoC S/PDIF Audio support for SMDK"
	select SND_SAMSUNG_SPDIF
	help
	  Say Y if you want to add support for SoC S/PDIF audio on the SMDK.

config SND_SOC_SMDK_WM8994_PCM
	tristate "SoC PCM Audio support for WM8994 on SMDK"
	depends on I2C=y
	select MFD_WM8994
	select SND_SOC_WM8994
	select SND_SAMSUNG_PCM
	help
	  Say Y if you want to add support for SoC audio on the SMDK

config SND_SOC_SPEYSIDE
	tristate "Audio support for Wolfson Speyside"
	depends on I2C && SPI_MASTER
	depends on MACH_WLF_CRAGG_6410 || COMPILE_TEST
	select SND_SAMSUNG_I2S
	select SND_SOC_WM8996
	select SND_SOC_WM9081
	select SND_SOC_WM0010
	select SND_SOC_WM1250_EV1

config SND_SOC_TOBERMORY
	tristate "Audio support for Wolfson Tobermory"
	depends on INPUT && I2C
	depends on MACH_WLF_CRAGG_6410 || COMPILE_TEST
	select SND_SAMSUNG_I2S
	select SND_SOC_WM8962

config SND_SOC_BELLS
	tristate "Audio support for Wolfson Bells"
	depends on MFD_ARIZONA && I2C && SPI_MASTER
	depends on MACH_WLF_CRAGG_6410 || COMPILE_TEST
	select SND_SAMSUNG_I2S
	select SND_SOC_WM5102
	select SND_SOC_WM5110
	select SND_SOC_WM9081
	select SND_SOC_WM0010
	select SND_SOC_WM1250_EV1

config SND_SOC_LOWLAND
	tristate "Audio support for Wolfson Lowland"
	depends on I2C
	depends on MACH_WLF_CRAGG_6410 || COMPILE_TEST
	select SND_SAMSUNG_I2S
	select SND_SOC_WM5100
	select SND_SOC_WM9081

config SND_SOC_LITTLEMILL
	tristate "Audio support for Wolfson Littlemill"
	depends on I2C
	depends on MACH_WLF_CRAGG_6410 || COMPILE_TEST
	select SND_SAMSUNG_I2S
	select MFD_WM8994
	select SND_SOC_WM8994

config SND_SOC_SNOW
	tristate "Audio support for Google Snow boards"
	depends on I2C
	select SND_SOC_MAX98090
	select SND_SOC_MAX98095
	select SND_SAMSUNG_I2S
	help
	  Say Y if you want to add audio support for various Snow
	  boards based on Exynos5 series of SoCs.

config SND_SOC_ODROID
	tristate "Audio support for Odroid XU3/XU4"
	depends on SND_SOC_SAMSUNG && I2C
	select SND_SOC_MAX98090
	select SND_SAMSUNG_I2S
	help
	  Say Y here to enable audio support for the Odroid XU3/XU4.

config SND_SOC_SAMSUNG_EXYNOS9610
	tristate "Audio support on exynos9610"
	select SND_SOC_SAMSUNG_ABOX
	#select SND_SOC_SAMSUNG_DISPLAYPORT
	help
		Say Y if you want to add support for audio on the Exynos9610.

config SND_SOC_SAMSUNG_EXYNOS9610_RT5665_ALC5665
        tristate "Audio support for RT5665(ALC5665) on Exynos9610"
        select SND_SOC_RT5665
        select MFD_CS35L41_SPI
        select SND_SOC_CS35L41

config SND_SOC_SAMSUNG_VOGUE_RT5665
        tristate "Audio support for RT5665 on VOGUE"
        select SND_SOC_RT5665

config SND_SOC_SAMSUNG_VOGUE_CS47L15
        tristate "Audio support for CS47L15 on VOGUE"
        select MFD_MADERA
        select MFD_MADERA_SPI
        select MFD_CS47L15
        select MADERA_IRQ
        select MADERA_IRQ_CS47L15
        select REGULATOR_ARIZONA_LDO1
        select REGULATOR_ARIZONA_MICSUPP
        select EXTCON_MADERA
        select EXTCON_MADERA_INPUT_EVENT
        select SND_SOC_CS47L15
        select SND_SOC_MADERA
        select SND_SOC_WM_ADSP
        select GPIO_MADERA

config SND_SOC_ARNDALE_RT5631_ALC5631
        tristate "Audio support for RT5631(ALC5631) on Arndale Board"
        depends on I2C
        select SND_SAMSUNG_I2S
        select SND_SOC_RT5631

config SND_SOC_SAMSUNG_TM2_WM5110
	tristate "SoC I2S Audio support for WM5110 on TM2 board"
	depends on SND_SOC_SAMSUNG && MFD_ARIZONA && I2C && SPI_MASTER
	depends on GPIOLIB || COMPILE_TEST
	select SND_SOC_MAX98504
	select SND_SOC_WM5110
	select SND_SAMSUNG_I2S
	help
	  Say Y if you want to add support for SoC audio on the TM2 board.

config SND_SOC_SAMSUNG_AUDIO
	tristate "Audio support for Samsung Projects"
	help
	  Say Y here to enable audio support for the Samsung Audio.

source "sound/soc/samsung/abox/Kconfig"
source "sound/soc/samsung/vts/Kconfig"

endif #SND_SOC_SAMSUNG
