menuconfig SND_IMX_SOC
	tristate "SoC Audio for Freescale i.MX CPUs"
	depends on ARCH_MXC
	select SND_PCM
	select FIQ
	select SND_SOC_AC97_BUS
	help
	  Say Y or M if you want to add support for codecs attached to
	  the i.MX SSI interface.


if SND_IMX_SOC

config SND_MXC_SOC_FIQ
	tristate

config SND_MXC_SOC_MX2
	tristate

config SND_MXC_SOC_WM1133_EV1
	tristate "Audio on the the i.MX31ADS with WM1133-EV1 fitted"
	depends on MACH_MX31ADS_WM1133_EV1 && EXPERIMENTAL
	select SND_SOC_WM8350
	select SND_MXC_SOC_FIQ
	help
	  Enable support for audio on the i.MX31ADS with the WM1133-EV1
	  PMIC board with WM8835x fitted.

config SND_SOC_MX27VIS_AIC32X4
	tristate "SoC audio support for Visstrim M10 boards"
	depends on MACH_IMX27_VISSTRIM_M10
	select SND_SOC_TVL320AIC32X4
	select SND_MXC_SOC_MX2
	help
	  Say Y if you want to add support for SoC audio on Visstrim SM10
	  board with TLV320AIC32X4 codec.

config SND_SOC_PHYCORE_AC97
	tristate "SoC Audio support for Phytec phyCORE (and phyCARD) boards"
	depends on MACH_PCM043 || MACH_PCA100
	select SND_SOC_WM9712
	select SND_MXC_SOC_FIQ
	help
	  Say Y if you want to add support for SoC audio on Phytec phyCORE
	  and phyCARD boards in AC97 mode

config SND_SOC_EUKREA_TLV320
	tristate "Eukrea TLV320"
	depends on MACH_EUKREA_MBIMX27_BASEBOARD \
		|| MACH_EUKREA_MBIMXSD25_BASEBOARD \
		|| MACH_EUKREA_MBIMXSD35_BASEBOARD \
		|| MACH_EUKREA_MBIMXSD51_BASEBOARD
	select SND_SOC_TLV320AIC23
	select SND_MXC_SOC_FIQ
	help
	  Enable I2S based access to the TLV320AIC23B codec attached
	  to the SSI interface

endif	# SND_IMX_SOC
