# SPDX-License-Identifier: GPL-2.0-only
menu "Atmel"
	depends on HAS_IOMEM

config SND_ATMEL_SOC_PDC
	bool

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 && I2C
	select SND_ATMEL_SOC_SSC_PDC
	select SND_SOC_WM8731_I2C
	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
	  - sama7g5

	  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.
	  Starting with sama7g5, I2S and Left-Justified multi-channel is
	  supported by using multiple data pins, output and input, without TDM.

config SND_MCHP_SOC_SPDIFTX
	tristate "Microchip ASoC driver for boards using S/PDIF TX"
	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 Microchip S/PDIF TX ASoc
	  driver on the following Microchip platforms:
	  - sama7g5

	  This S/PDIF TX driver is compliant with IEC-60958 standard and
	  includes programmable User Data and Channel Status fields.

config SND_MCHP_SOC_SPDIFRX
	tristate "Microchip ASoC driver for boards using S/PDIF RX"
	depends on OF && (ARCH_AT91 || COMPILE_TEST)
	depends on COMMON_CLK
	select SND_SOC_GENERIC_DMAENGINE_PCM
	select REGMAP_MMIO
	help
	  Say Y or M if you want to add support for Microchip S/PDIF RX ASoc
	  driver on the following Microchip platforms:
	  - sama7g5

	  This S/PDIF RX driver is compliant with IEC-60958 standard and
	  includes programmable User Data and Channel Status fields.

config SND_MCHP_SOC_PDMC
	tristate "Microchip ASoC driver for boards using PDMC"
	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 Microchip ASoC PDMC driver on the
	  following Microchip platforms:
	  - sama7g5

	  The Pulse Density Microphone Controller (PDMC) interfaces up to 4 digital
	  microphones PDM outputs. It generates a single clock line and samples 1 or
	  2 data lines. The signal path includes an audio grade programmable
	  decimation filter and outputs 24-bit audio words.

endmenu
