# SPDX-License-Identifier: GPL-2.0-only
config SND_EP93XX_SOC
	tristate "SoC Audio support for the Cirrus Logic EP93xx series"
	depends on ARCH_EP93XX || COMPILE_TEST
	select SND_SOC_GENERIC_DMAENGINE_PCM
	help
	  Say Y or M if you want to add support for codecs attached to
	  the EP93xx I2S or AC97 interfaces.

config SND_EP93XX_SOC_I2S
	tristate "I2S controller support for the Cirrus Logic EP93xx series"
	depends on SND_EP93XX_SOC
	help
	  Say Y or M if you want to add support for codecs attached to
	  the EP93xx I2S interface.

if SND_EP93XX_SOC_I2S

config SND_EP93XX_SOC_I2S_WATCHDOG
	bool "IRQ based underflow watchdog workaround"
	default y
	help
	  I2S controller on EP93xx seems to have undocumented HW issue.
	  Underflow of internal I2S controller FIFO could confuse the
	  state machine and the whole stream can be shifted by one byte
	  until I2S is disabled. This option enables IRQ based watchdog
	  which disables and re-enables I2S in case of underflow and
	  fills FIFO with zeroes.

	  If you are unsure how to answer this question, answer Y.

endif # if SND_EP93XX_SOC_I2S

config SND_EP93XX_SOC_EDB93XX
	tristate "SoC Audio support for Cirrus Logic EDB93xx boards"
	depends on SND_EP93XX_SOC && (MACH_EDB9301 || MACH_EDB9302 || MACH_EDB9302A || MACH_EDB9307A || MACH_EDB9315A)
	select SND_EP93XX_SOC_I2S
	select SND_SOC_CS4271_I2C if I2C
	select SND_SOC_CS4271_SPI if SPI_MASTER
	help
	  Say Y or M here if you want to add support for I2S audio on the
	  Cirrus Logic EDB93xx boards.
