# 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_BUILD
	bool "Build topology core"
	select SND_SOC_TOPOLOGY
	depends on KUNIT
	help
	  This option exists to facilitate running the KUnit tests for
	  the topology core, KUnit is frequently tested in virtual
	  environments with minimal drivers enabled but the topology
	  core is usually selected by drivers.  There is little reason
	  to enable it if not doing a KUnit build.

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_CARD_KUNIT_TEST
	tristate "KUnit tests for SoC card"
	depends on KUNIT
	default KUNIT_ALL_TESTS
	help
	  If you want to perform tests on ALSA SoC card functions say Y here.
	  If unsure, say N.

config SND_SOC_UTILS_KUNIT_TEST
	tristate "KUnit tests for SoC utils"
	depends on KUNIT
	default KUNIT_ALL_TESTS
	help
	  If you want to perform tests on ALSA SoC utils library say Y here.

config SND_SOC_OPS_KUNIT_TEST
	tristate "KUnit tests for SoC ops"
	depends on KUNIT
	default KUNIT_ALL_TESTS
	help
	  If you want to perform tests on ALSA SoC ops library say Y here.

config SND_SOC_ACPI
	tristate

config SND_SOC_USB
	tristate "SoC based USB audio offloading"
	depends on SND_USB_AUDIO
	help
	  Enable this option if an ASoC platform card has support to handle
	  USB audio offloading.  This enables the SoC USB layer, which will
	  notify the ASoC USB DPCM backend DAI link about available USB audio
	  devices.  Based on the notifications, sequences to enable the audio
	  stream can be taken based on the design.

# All the supported SoCs
source "sound/soc/adi/Kconfig"
source "sound/soc/amd/Kconfig"
source "sound/soc/apple/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/google/Kconfig"
source "sound/soc/hisilicon/Kconfig"
source "sound/soc/jz4740/Kconfig"
source "sound/soc/kirkwood/Kconfig"
source "sound/soc/loongson/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/renesas/Kconfig"
source "sound/soc/rockchip/Kconfig"
source "sound/soc/samsung/Kconfig"
source "sound/soc/sdca/Kconfig"
source "sound/soc/spacemit/Kconfig"
source "sound/soc/spear/Kconfig"
source "sound/soc/sprd/Kconfig"
source "sound/soc/starfive/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"

# SOF
source "sound/soc/sof/Kconfig"

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

source "sound/soc/sdw_utils/Kconfig"

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

endif	# SND_SOC

