# SPDX-License-Identifier: GPL-2.0-only
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
	bool
	depends on HAS_DMA

config SND_ATMEL_SOC_DMA
	bool
	select SND_SOC_GENERIC_DMAENGINE_PCM

config SND_ATMEL_SOC_SSC
	tristate
	select SND_ATMEL_SOC_DMA
	select SND_ATMEL_SOC_PDC

config SND_ATMEL_SOC_SSC_PDC
	tristate "SoC PCM DAI support for AT91 SSC controller using PDC"
	depends on ATMEL_SSC
	select SND_ATMEL_SOC_PDC
	select SND_ATMEL_SOC_SSC
	help
	  Say Y or M if you want to add support for Atmel SSC interface
	  in PDC mode configured using audio-graph-card in device-tree.

config SND_ATMEL_SOC_SSC_DMA
	tristate "SoC PCM DAI support for AT91 SSC controller using DMA"
	depends on ATMEL_SSC
	select SND_ATMEL_SOC_DMA
	select SND_ATMEL_SOC_SSC
	help
	  Say Y or M if you want to add support for Atmel SSC interface
	  in DMA mode configured using audio-graph-card in device-tree.

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

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

config SND_SOC_MIKROE_PROTO
	tristate "Support for Mikroe-PROTO board"
	depends on OF
	depends on SND_SOC_I2C_AND_SPI
	select SND_SOC_WM8731
	help
	  Say Y or M if you want to add support for MikroElektronika PROTO Audio
	  Board. This board contains the WM8731 codec, which can be configured
	  using I2C over SDA (MPU Data Input) and SCL (MPU Clock Input) pins.
	  Both playback and capture are supported.

config SND_MCHP_SOC_I2S_MCC
	tristate "Microchip ASoC driver for boards using I2S MCC"
	depends on OF && (ARCH_AT91 || COMPILE_TEST)
	select SND_SOC_GENERIC_DMAENGINE_PCM
	select REGMAP_MMIO
	help
	  Say Y or M if you want to add support for I2S Multi-Channel ASoC
	  driver on the following Microchip platforms:
	  - sam9x60

	  The I2SMCC complies with the Inter-IC Sound (I2S) bus specification
	  and supports a Time Division Multiplexed (TDM) interface with
	  external multi-channel audio codecs.

endif
