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
	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.
endif
