# SPDX-License-Identifier: GPL-2.0-only
menu "Allwinner SoC Audio support"
	depends on ARCH_SUNXI || COMPILE_TEST

config SND_SUN4I_CODEC
	tristate "Allwinner A10 Codec Support"
	select SND_SOC_GENERIC_DMAENGINE_PCM
	select REGMAP_MMIO
	help
	  Select Y or M to add support for the Codec embedded in the Allwinner
	  A10 and affiliated SoCs.

config SND_SUN8I_CODEC
	tristate "Allwinner SUN8I audio codec"
	depends on OF
	depends on MACH_SUN8I || (ARM64 && ARCH_SUNXI) || COMPILE_TEST
	depends on COMMON_CLK
	select REGMAP_MMIO
	help
	  This option enables the digital part of the internal audio codec for
	  Allwinner sun8i SoC (and particularly A33).

	  Say Y or M if you want to add sun8i digital audio codec support.

config SND_SUN8I_CODEC_ANALOG
	tristate "Allwinner sun8i Codec Analog Controls Support"
	depends on MACH_SUN8I || (ARM64 && ARCH_SUNXI) || COMPILE_TEST
	select SND_SUN8I_ADDA_PR_REGMAP
	help
	  Say Y or M if you want to add support for the analog controls for
	  the codec embedded in newer Allwinner SoCs.

config SND_SUN50I_CODEC_ANALOG
	tristate "Allwinner sun50i Codec Analog Controls Support"
	depends on (ARM64 && ARCH_SUNXI) || COMPILE_TEST
	select SND_SUN8I_ADDA_PR_REGMAP
	help
	  Say Y or M if you want to add support for the analog controls for
	  the codec embedded in Allwinner A64 SoC.

config SND_SUN4I_I2S
	tristate "Allwinner A10 I2S Support"
	select SND_SOC_GENERIC_DMAENGINE_PCM
	select REGMAP_MMIO
	help
	  Say Y or M if you want to add support for codecs attached to
	  the Allwinner A10 I2S. You will also need to select the
	  individual machine drivers to support below.

config SND_SUN4I_SPDIF
	tristate "Allwinner A10 SPDIF Support"
	depends on OF
	select SND_SOC_GENERIC_DMAENGINE_PCM
	select REGMAP_MMIO
	help
	  Say Y or M to add support for the S/PDIF audio block in the Allwinner
	  A10 and affiliated SoCs.

config SND_SUN8I_ADDA_PR_REGMAP
	tristate
	select REGMAP

endmenu
