config SND_OMAP_SOC
	tristate "SoC Audio for the Texas Instruments OMAP chips"
	depends on ARCH_OMAP

config SND_OMAP_SOC_MCBSP
	tristate
	select OMAP_MCBSP

config SND_OMAP_SOC_MCPDM
	tristate

config SND_OMAP_SOC_N810
	tristate "SoC Audio support for Nokia N810"
	depends on SND_OMAP_SOC && MACH_NOKIA_N810 && I2C
	select SND_OMAP_SOC_MCBSP
	select OMAP_MUX
	select SND_SOC_TLV320AIC3X
	help
	  Say Y if you want to add support for SoC audio on Nokia N810.

config SND_OMAP_SOC_AMS_DELTA
	tristate "SoC Audio support for Amstrad E3 (Delta) videophone"
	depends on SND_OMAP_SOC && MACH_AMS_DELTA
	select SND_OMAP_SOC_MCBSP
	select SND_SOC_CX20442
	help
	  Say Y  if you want to add support  for SoC audio device  connected to
	  a handset and a speakerphone found on Amstrad E3 (Delta) videophone.

	  Note that in order to get those devices fully supported,  you have to
	  build  the kernel  with  standard  serial port  driver  included  and
	  configured for at least 4 ports.  Then, from userspace, you must load
	  a line discipline #19 on the modem (ttyS3) serial line.  The simplest
	  way to achieve this is to install util-linux-ng  and use the included
	  ldattach  utility.  This  can be  started  automatically  from  udev,
	  a simple rule like this one should do the trick (it does for me):
	  	ACTION=="add", KERNEL=="controlC0", \
				RUN+="/usr/sbin/ldattach 19 /dev/ttyS3"

config SND_OMAP_SOC_OSK5912
	tristate "SoC Audio support for omap osk5912"
	depends on SND_OMAP_SOC && MACH_OMAP_OSK && I2C
	select SND_OMAP_SOC_MCBSP
	select SND_SOC_TLV320AIC23
	help
	  Say Y if you want to add support for SoC audio on osk5912.

config SND_OMAP_SOC_OVERO
	tristate "SoC Audio support for Gumstix Overo and CompuLab CM-T35"
	depends on TWL4030_CORE && SND_OMAP_SOC && (MACH_OVERO || MACH_CM_T35)
	select SND_OMAP_SOC_MCBSP
	select SND_SOC_TWL4030
	help
	  Say Y if you want to add support for SoC audio on the
	  Gumstix Overo or CompuLab CM-T35

config SND_OMAP_SOC_OMAP2EVM
	tristate "SoC Audio support for OMAP2EVM board"
	depends on TWL4030_CORE && SND_OMAP_SOC && MACH_OMAP2EVM
	select SND_OMAP_SOC_MCBSP
	select SND_SOC_TWL4030
	help
	  Say Y if you want to add support for SoC audio on the omap2evm board.

config SND_OMAP_SOC_OMAP3EVM
	tristate "SoC Audio support for OMAP3EVM board"
	depends on TWL4030_CORE && SND_OMAP_SOC && MACH_OMAP3EVM
	select SND_OMAP_SOC_MCBSP
	select SND_SOC_TWL4030
	help
	  Say Y if you want to add support for SoC audio on the omap3evm board.

config SND_OMAP_SOC_AM3517EVM
	tristate "SoC Audio support for OMAP3517 / AM3517 EVM"
	depends on SND_OMAP_SOC && MACH_OMAP3517EVM && I2C
	select SND_OMAP_SOC_MCBSP
	select SND_SOC_TLV320AIC23
	help
	  Say Y if you want to add support for SoC audio on the OMAP3517 / AM3517
	  EVM.

config SND_OMAP_SOC_SDP3430
	tristate "SoC Audio support for Texas Instruments SDP3430"
	depends on TWL4030_CORE && SND_OMAP_SOC && MACH_OMAP_3430SDP
	select SND_OMAP_SOC_MCBSP
	select SND_SOC_TWL4030
	help
	  Say Y if you want to add support for SoC audio on Texas Instruments
	  SDP3430.

config SND_OMAP_SOC_OMAP3_PANDORA
	tristate "SoC Audio support for OMAP3 Pandora"
	depends on TWL4030_CORE && SND_OMAP_SOC && MACH_OMAP3_PANDORA
	select SND_OMAP_SOC_MCBSP
	select SND_SOC_TWL4030
	help
	  Say Y if you want to add support for SoC audio on the OMAP3 Pandora.

config SND_OMAP_SOC_OMAP3_BEAGLE
	tristate "SoC Audio support for OMAP3 Beagle and Devkit8000"
	depends on TWL4030_CORE && SND_OMAP_SOC
	depends on (MACH_OMAP3_BEAGLE || MACH_DEVKIT8000)
	select SND_OMAP_SOC_MCBSP
	select SND_SOC_TWL4030
	help
	  Say Y if you want to add support for SoC audio on the Beagleboard or
	  the clone Devkit8000.

config SND_OMAP_SOC_ZOOM2
	tristate "SoC Audio support for Zoom2"
	depends on TWL4030_CORE && SND_OMAP_SOC && MACH_OMAP_ZOOM2
	select SND_OMAP_SOC_MCBSP
	select SND_SOC_TWL4030
	help
	  Say Y if you want to add support for Soc audio on Zoom2 board.

config SND_OMAP_SOC_IGEP0020
	tristate "SoC Audio support for IGEP v2"
	depends on TWL4030_CORE && SND_OMAP_SOC && MACH_IGEP0020
	select SND_OMAP_SOC_MCBSP
	select SND_SOC_TWL4030
	help
	  Say Y if you want to add support for Soc audio on IGEP v2 board.
