config SND_DAVINCI_SOC
	tristate "SoC Audio for the TI DAVINCI chip"
	depends on ARCH_DAVINCI
	help
	  Say Y or M if you want to add support for codecs attached to
	  the DAVINCI AC97 or I2S interface. You will also need
	  to select the audio interfaces to support below.

config SND_TI81XX_SOC
	tristate "SoC Audio for the TI81XX chip"
	depends on ARCH_TI81XX
	help
	  Say Y or M if you want to add support for codecs attached to
	  the TI81XX I2S interface. You will also need
	  to select the audio interfaces to support below.

config SND_DAVINCI_SOC_I2S
	tristate

config SND_DAVINCI_SOC_MCASP
	tristate

config SND_DAVINCI_SOC_VCIF
	tristate

config SND_DAVINCI_SOC_EVM
	tristate "SoC Audio support for DaVinci DM6446, DM355 or DM365 EVM"
	depends on SND_DAVINCI_SOC
	depends on MACH_DAVINCI_EVM || MACH_DAVINCI_DM355_EVM || MACH_DAVINCI_DM365_EVM
	select SND_DAVINCI_SOC_I2S
	select SND_SOC_TLV320AIC3X
	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
	default SND_DM365_EXTERNAL_CODEC

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

config SND_DM365_VOICE_CODEC
	bool "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_DAVINCI_SOC && MACH_DAVINCI_DM6467_EVM
	select SND_DAVINCI_SOC_MCASP
	select SND_SOC_TLV320AIC3X
	select SND_SOC_SPDIF

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

config SND_DAVINCI_SOC_SFFSDR
	tristate "SoC Audio support for SFFSDR"
	depends on SND_DAVINCI_SOC && MACH_SFFSDR
	select SND_DAVINCI_SOC_I2S
	select SND_SOC_PCM3008
	select SFFSDR_FPGA
	help
	  Say Y if you want to add support for SoC audio on
	  Lyrtech SFFSDR board.

config  SND_DA830_SOC_EVM
	tristate "SoC Audio support for DA830/OMAP-L137 EVM"
	depends on SND_DAVINCI_SOC && MACH_DAVINCI_DA830_EVM
	select SND_DAVINCI_SOC_MCASP
	select SND_SOC_TLV320AIC3X

	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_DAVINCI_SOC && MACH_DAVINCI_DA850_EVM
	select SND_DAVINCI_SOC_MCASP
	select SND_SOC_TLV320AIC3X
	help
	  Say Y if you want to add support for SoC audio on TI
	  DA850/OMAP-L138 EVM

config  SND_TI81XX_SOC_EVM
	tristate "SoC Audio support for TI81XX EVM"
	depends on SND_TI81XX_SOC
	select SND_DAVINCI_SOC_MCASP
	select SND_SOC_TLV320AIC3X
	help
	  Say Y if you want to add support for SoC audio on TI
	  81XX EVM

