config SND_DAVINCI_SOC
	tristate
	depends on ARCH_DAVINCI
	select SND_EDMA_SOC

config SND_EDMA_SOC
	tristate "SoC Audio for Texas Instruments chips using eDMA"
	depends on TI_EDMA
	select SND_SOC_GENERIC_DMAENGINE_PCM
	help
	  Say Y or M here if you want audio support for TI SoC which uses eDMA.
	  The following line of SoCs are supported by this platform driver:
	  - daVinci devices
	  - AM335x
	  - AM437x/AM438x
	  - DRA7xx family

config SND_DAVINCI_SOC_I2S
	tristate "DaVinci Multichannel Buffered Serial Port (McBSP) support"
	depends on SND_EDMA_SOC
	help
	  Say Y or M here if you want to have support for McBSP IP found in
	  Texas Instruments DaVinci DA850 SoCs.

config SND_DAVINCI_SOC_MCASP
	tristate "Multichannel Audio Serial Port (McASP) support"
	depends on SND_SDMA_SOC || SND_EDMA_SOC
	help
	  Say Y or M here if you want to have support for McASP IP found in
	  various Texas Instruments SoCs like:
	  - daVinci devices
	  - Sitara line of SoCs (AM335x, AM438x, etc)
	  - DRA7x devices

config SND_DAVINCI_SOC_VCIF
	tristate

config SND_DAVINCI_SOC_GENERIC_EVM
	tristate
	select SND_SOC_TLV320AIC3X
	select SND_DAVINCI_SOC_MCASP

config SND_AM33XX_SOC_EVM
	tristate "SoC Audio for the AM33XX chip based boards"
	depends on SND_EDMA_SOC && SOC_AM33XX && I2C
	select SND_DAVINCI_SOC_GENERIC_EVM
	help
	  Say Y or M if you want to add support for SoC audio on AM33XX
	  boards using McASP and TLV320AIC3X codec. For example AM335X-EVM,
	  AM335X-EVMSK, and BeagelBone with AudioCape boards have this
	  setup.

config SND_DAVINCI_SOC_EVM
	tristate "SoC Audio support for DaVinci DM6446, DM355 or DM365 EVM"
	depends on SND_EDMA_SOC && I2C
	depends on MACH_DAVINCI_EVM || MACH_DAVINCI_DM355_EVM || MACH_DAVINCI_DM365_EVM
	select SND_DAVINCI_SOC_GENERIC_EVM
	help
	  Say Y if you want to add support for SoC audio on TI
	  DaVinci DM6446, DM355 or DM365 EVM platforms.

choice
	prompt "DM365 codec select"
	depends on SND_DAVINCI_SOC_EVM
	depends on MACH_DAVINCI_DM365_EVM

config SND_DM365_AIC3X_CODEC
	tristate "Audio Codec - AIC3101"
	help
	  Say Y if you want to add support for AIC3101 audio codec

config SND_DM365_VOICE_CODEC
	tristate "Voice Codec - CQ93VC"
	select MFD_DAVINCI_VOICECODEC
	select SND_DAVINCI_SOC_VCIF
	select SND_SOC_CQ0093VC
	help
	  Say Y if you want to add support for SoC On-chip voice codec
endchoice

config  SND_DM6467_SOC_EVM
	tristate "SoC Audio support for DaVinci DM6467 EVM"
	depends on SND_EDMA_SOC && MACH_DAVINCI_DM6467_EVM && I2C
	select SND_DAVINCI_SOC_GENERIC_EVM
	select SND_SOC_SPDIF

	help
	  Say Y if you want to add support for SoC audio on TI

config  SND_DA830_SOC_EVM
	tristate "SoC Audio support for DA830/OMAP-L137 EVM"
	depends on SND_EDMA_SOC && MACH_DAVINCI_DA830_EVM && I2C
	select SND_DAVINCI_SOC_GENERIC_EVM

	help
	  Say Y if you want to add support for SoC audio on TI
	  DA830/OMAP-L137 EVM

config  SND_DA850_SOC_EVM
	tristate "SoC Audio support for DA850/OMAP-L138 EVM"
	depends on SND_EDMA_SOC && MACH_DAVINCI_DA850_EVM && I2C
	select SND_DAVINCI_SOC_GENERIC_EVM
	help
	  Say Y if you want to add support for SoC audio on TI
	  DA850/OMAP-L138 EVM

