# 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
	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
