config SND_ATMEL_SOC
	tristate "SoC Audio for the Atmel System-on-Chip"
	depends on HAS_IOMEM
	help
	  Say Y or M if you want to add support for codecs attached to
	  the ATMEL SSC interface. You will also need
	  to select the audio interfaces to support below.

if SND_ATMEL_SOC

config SND_ATMEL_SOC_PDC
	tristate
	depends on HAS_DMA
	default m if SND_ATMEL_SOC_SSC_PDC=m && SND_ATMEL_SOC_SSC=m
	default y if SND_ATMEL_SOC_SSC_PDC=y || (SND_ATMEL_SOC_SSC_PDC=m && SND_ATMEL_SOC_SSC=y)

config SND_ATMEL_SOC_SSC_PDC
	tristate

config SND_ATMEL_SOC_DMA
	tristate
	select SND_SOC_GENERIC_DMAENGINE_PCM
	default m if SND_ATMEL_SOC_SSC_DMA=m && SND_ATMEL_SOC_SSC=m
	default y if SND_ATMEL_SOC_SSC_DMA=y || (SND_ATMEL_SOC_SSC_DMA=m && SND_ATMEL_SOC_SSC=y)

config SND_ATMEL_SOC_SSC_DMA
	tristate

config SND_ATMEL_SOC_SSC
	tristate
	default y if SND_ATMEL_SOC_SSC_DMA=y || SND_ATMEL_SOC_SSC_PDC=y
	default m if SND_ATMEL_SOC_SSC_DMA=m || SND_ATMEL_SOC_SSC_PDC=m

config SND_AT91_SOC_SAM9G20_WM8731
	tristate "SoC Audio support for WM8731-based At91sam9g20 evaluation board"
	depends on ARCH_AT91 || COMPILE_TEST
	depends on ATMEL_SSC && SND_SOC_I2C_AND_SPI
	select SND_ATMEL_SOC_SSC_PDC
	select SND_SOC_WM8731
	help
	  Say Y if you want to add support for SoC audio on WM8731-based
	  AT91sam9g20 evaluation board.

config SND_ATMEL_SOC_WM8904
	tristate "Atmel ASoC driver for boards using WM8904 codec"
	depends on ARCH_AT91 || COMPILE_TEST
	depends on ATMEL_SSC && I2C
	select SND_ATMEL_SOC_SSC_DMA
	select SND_SOC_WM8904
	help
	  Say Y if you want to add support for Atmel ASoC driver for boards using
	  WM8904 codec.

config SND_AT91_SOC_SAM9X5_WM8731
	tristate "SoC Audio support for WM8731-based at91sam9x5 board"
	depends on ARCH_AT91 || COMPILE_TEST
	depends on ATMEL_SSC && SND_SOC_I2C_AND_SPI
	select SND_ATMEL_SOC_SSC_DMA
	select SND_SOC_WM8731
	help
	  Say Y if you want to add support for audio SoC on an
	  at91sam9x5 based board that is using WM8731 codec.

config SND_ATMEL_SOC_CLASSD
	tristate "Atmel ASoC driver for boards using CLASSD"
	depends on ARCH_AT91 || COMPILE_TEST
	select SND_ATMEL_SOC_DMA
	select REGMAP_MMIO
	help
	  Say Y if you want to add support for Atmel ASoC driver for boards using
	  CLASSD.

config SND_ATMEL_SOC_PDMIC
	tristate "Atmel ASoC driver for boards using PDMIC"
	depends on OF && (ARCH_AT91 || COMPILE_TEST)
	select SND_SOC_GENERIC_DMAENGINE_PCM
	select REGMAP_MMIO
	help
	  Say Y if you want to add support for Atmel ASoC driver for boards using
	  PDMIC.

config SND_ATMEL_SOC_TSE850_PCM5142
	tristate "ASoC driver for the Axentia TSE-850"
	depends on ARCH_AT91 && OF
	depends on ATMEL_SSC && I2C
	select SND_ATMEL_SOC_SSC_DMA
	select SND_SOC_PCM512x_I2C
	help
	  Say Y if you want to add support for the ASoC driver for the
	  Axentia TSE-850 with a PCM5142 codec.
endif
