# SPDX-License-Identifier: (GPL-2.0-only OR BSD-3-Clause)
# This file is provided under a dual BSD/GPLv2 license. When using or
# redistributing this file, you may do so under either license.
#
# Copyright(c) 2021 Advanced Micro Devices, Inc. All rights reserved.
#

config SND_SOC_AMD_ACP_COMMON
	tristate "AMD Audio ACP Common support"
	select SND_AMD_ACP_CONFIG
	depends on X86 && PCI
	help
	  This option enables common modules for Audio-Coprocessor i.e. ACP
	  IP block on AMD platforms.

if SND_SOC_AMD_ACP_COMMON

config SND_SOC_AMD_ACP_PDM
	tristate

config SND_SOC_AMD_ACP_I2S
	tristate

config SND_SOC_AMD_ACP_PCM
	tristate
	select SND_SOC_ACPI if ACPI

config SND_SOC_AMD_ACP_PCI
	tristate "AMD ACP PCI Driver Support"
	depends on X86 && PCI
	help
	  This options enables generic PCI driver for ACP device.

config SND_AMD_ASOC_RENOIR
	tristate "AMD ACP ASOC Renoir Support"
	select SND_SOC_AMD_ACP_PCM
	select SND_SOC_AMD_ACP_I2S
	select SND_SOC_AMD_ACP_PDM
	depends on X86 && PCI
	help
	  This option enables Renoir I2S support on AMD platform.

config SND_SOC_AMD_MACH_COMMON
	tristate
	depends on X86 && PCI && I2C
	select CLK_FIXED_FCH
	select SND_SOC_RT5682_I2C
	select SND_SOC_DMIC
	select SND_SOC_RT1019
	select SND_SOC_MAX98357A
	select SND_SOC_RT5682S
	select SND_SOC_NAU8825
	help
	  This option enables common Machine driver module for ACP.

config SND_SOC_AMD_LEGACY_MACH
	tristate "AMD Legacy Machine Driver Support"
	depends on X86 && PCI && I2C
	select SND_SOC_AMD_MACH_COMMON
	help
	  This option enables legacy sound card support for ACP audio.

config SND_SOC_AMD_SOF_MACH
	tristate "AMD SOF Machine Driver Support"
	depends on X86 && PCI && I2C
	select SND_SOC_AMD_MACH_COMMON
	help
	  This option enables SOF sound card support for ACP audio.

endif # SND_SOC_AMD_ACP_COMMON
