# SPDX-License-Identifier: GPL-2.0-only
config SND_SOC_AMD_ACP
	tristate "AMD Audio Coprocessor support"
	help
	 This option enables ACP DMA support on AMD platform.

config SND_SOC_AMD_CZ_DA7219MX98357_MACH
	tristate "AMD CZ support for DA7219, RT5682 and MAX9835"
	select CLK_FIXED_FCH
	select SND_SOC_DA7219
	select SND_SOC_RT5682_I2C
	select SND_SOC_MAX98357A
	select SND_SOC_ADAU7002
	select REGULATOR
	depends on SND_SOC_AMD_ACP && I2C && GPIOLIB && ACPI
	help
	 This option enables machine driver for DA7219, RT5682 and MAX9835.

config SND_SOC_AMD_CZ_RT5645_MACH
	tristate "AMD CZ support for RT5645"
	select SND_SOC_RT5645
	depends on SND_SOC_AMD_ACP && I2C
	help
	 This option enables machine driver for rt5645.

config SND_SOC_AMD_ACP3x
	tristate "AMD Audio Coprocessor-v3.x support"
	depends on X86 && PCI
	help
	 This option enables ACP v3.x I2S support on AMD platform

config SND_SOC_AMD_RV_RT5682_MACH
	tristate "AMD RV support for RT5682"
	select CLK_FIXED_FCH
	select SND_SOC_RT5682_I2C
	select SND_SOC_MAX98357A
	select SND_SOC_CROS_EC_CODEC
	select I2C_CROS_EC_TUNNEL
	select SND_SOC_RT1015
	select SND_SOC_RT1015P
	depends on SND_SOC_AMD_ACP3x && I2C && CROS_EC && GPIOLIB
	help
	 This option enables machine driver for RT5682 and MAX9835.

config SND_SOC_AMD_RENOIR
	tristate "AMD Audio Coprocessor - Renoir support"
	select SND_AMD_ACP_CONFIG
	depends on X86 && PCI
	help
	 This option enables ACP support for Renoir platform

config SND_SOC_AMD_RENOIR_MACH
	tristate "AMD Renoir support for DMIC"
	select SND_SOC_DMIC
	depends on SND_SOC_AMD_RENOIR && GPIOLIB
	help
	 This option enables machine driver for DMIC

config SND_SOC_AMD_ACP5x
	tristate "AMD Audio Coprocessor-v5.x I2S support"
	depends on X86 && PCI
	help
	 This option enables ACP v5.x support on AMD platform

	 By enabling this flag build will trigger for ACP PCI driver,
	 ACP DMA driver, CPU DAI driver.

config SND_SOC_AMD_VANGOGH_MACH
	tristate "AMD Vangogh support for NAU8821 CS35L41"
	select SND_SOC_NAU8821
	select SND_SOC_CS35L41_SPI
	depends on SND_SOC_AMD_ACP5x && I2C && SPI_MASTER
	help
	  This option enables machine driver for Vangogh platform
	  using NAU8821 and CS35L41 codecs.
	  Say m if you have such a device.
	  If unsure select "N".

config SND_SOC_AMD_ACP6x
	tristate "AMD Audio Coprocessor-v6.x Yellow Carp support"
	depends on X86 && PCI
	help
	  This option enables Audio Coprocessor i.e ACP v6.x support on
	  AMD Yellow Carp platform. By enabling this flag build will be
	  triggered for ACP PCI driver, ACP PDM DMA driver.
	  Say m if you have such a device.
	  If unsure select "N".

config SND_SOC_AMD_YC_MACH
	tristate "AMD YC support for DMIC"
	select SND_SOC_DMIC
	depends on SND_SOC_AMD_ACP6x
	help
	  This option enables machine driver for Yellow Carp platform
	  using dmic. ACP IP has PDM Decoder block with DMA controller.
	  DMIC can be connected directly to ACP IP.
	  Say m if you have such a device.
	  If unsure select "N".

config SND_AMD_ACP_CONFIG
	tristate "AMD ACP configuration selection"
	select SND_SOC_ACPI if ACPI
	help
	 This option adds an auto detection to determine which ACP
	 driver modules to use

source "sound/soc/amd/acp/Kconfig"
