# SPDX-License-Identifier: GPL-2.0-only
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_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 && MFD_WM5102 && MFD_WM5110 && 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_ARNDALE
	tristate "Audio support for Arndale Board"
	depends on I2C
	select SND_SAMSUNG_I2S
	select SND_SOC_RT5631
	select MFD_WM8994
	select SND_SOC_WM8994

config SND_SOC_SAMSUNG_TM2_WM5110
	tristate "SoC I2S Audio support for WM5110 on TM2 board"
	depends on SND_SOC_SAMSUNG && MFD_ARIZONA && MFD_WM5110 && 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.

endif #SND_SOC_SAMSUNG
