# SPDX-License-Identifier: GPL-2.0-only
#
# SoC audio configuration
#

menuconfig SND_SOC
	tristate "ALSA for SoC audio support"
	select SND_PCM
	select AC97_BUS if SND_SOC_AC97_BUS
	select SND_JACK
	select REGMAP_I2C if I2C
	select REGMAP_SPI if SPI_MASTER
	help

	  If you want ASoC support, you should say Y here and also to the
	  specific driver for your SoC platform below.
	  
	  ASoC provides power efficient ALSA support for embedded battery powered
	  SoC based systems like PDA's, Phones and Personal Media Players.

	  This ASoC audio support can also be built as a module.  If so, the module
	  will be called snd-soc-core.

if SND_SOC

config SND_SOC_AC97_BUS
	bool

config SND_SOC_GENERIC_DMAENGINE_PCM
	bool
	select SND_DMAENGINE_PCM

config SND_SOC_COMPRESS
	bool
	select SND_COMPRESS_OFFLOAD

config SND_SOC_TOPOLOGY
	bool
	select SND_DYNAMIC_MINORS

config SND_SOC_TOPOLOGY_KUNIT_TEST
	tristate "KUnit tests for SoC topology"
	depends on KUNIT
	depends on SND_SOC_TOPOLOGY
	default KUNIT_ALL_TESTS
	help
	  If you want to perform tests on ALSA SoC topology support say Y here.

	  This builds a module which can be later manually loaded to run KUNIT
	  test cases against soc-topology.c API. This should be primarily used
	  by developers to test their changes to ASoC.

	  Do note that it creates fake playback devices which do not interact
	  well with userspace. When running tests one may want to disable
	  userspace applications such as pulseaudio, to prevent unnecessary
	  problems.

config SND_SOC_ACPI
	tristate

# All the supported SoCs
source "sound/soc/adi/Kconfig"
source "sound/soc/amd/Kconfig"
source "sound/soc/atmel/Kconfig"
source "sound/soc/au1x/Kconfig"
source "sound/soc/bcm/Kconfig"
source "sound/soc/cirrus/Kconfig"
source "sound/soc/dwc/Kconfig"
source "sound/soc/fsl/Kconfig"
source "sound/soc/hisilicon/Kconfig"
source "sound/soc/jz4740/Kconfig"
source "sound/soc/kirkwood/Kconfig"
source "sound/soc/img/Kconfig"
source "sound/soc/intel/Kconfig"
source "sound/soc/mediatek/Kconfig"
source "sound/soc/meson/Kconfig"
source "sound/soc/mxs/Kconfig"
source "sound/soc/pxa/Kconfig"
source "sound/soc/qcom/Kconfig"
source "sound/soc/rockchip/Kconfig"
source "sound/soc/samsung/Kconfig"
source "sound/soc/sh/Kconfig"
source "sound/soc/sof/Kconfig"
source "sound/soc/spear/Kconfig"
source "sound/soc/sprd/Kconfig"
source "sound/soc/sti/Kconfig"
source "sound/soc/stm/Kconfig"
source "sound/soc/sunxi/Kconfig"
source "sound/soc/tegra/Kconfig"
source "sound/soc/ti/Kconfig"
source "sound/soc/uniphier/Kconfig"
source "sound/soc/ux500/Kconfig"
source "sound/soc/xilinx/Kconfig"
source "sound/soc/xtensa/Kconfig"

# Supported codecs
source "sound/soc/codecs/Kconfig"

# generic frame-work
source "sound/soc/generic/Kconfig"

endif	# SND_SOC

