config SND_SST_IPC
	tristate

config SND_SST_IPC_PCI
	tristate
	select SND_SST_IPC

config SND_SST_IPC_ACPI
	tristate
	select SND_SST_IPC
	select SND_SOC_INTEL_SST
	select IOSF_MBI

config SND_SOC_INTEL_COMMON
	tristate

config SND_SOC_INTEL_SST
	tristate
	select SND_SOC_INTEL_SST_ACPI if ACPI

config SND_SOC_INTEL_SST_FIRMWARE
	tristate
	select DW_DMAC_CORE

config SND_SOC_INTEL_SST_ACPI
	tristate

config SND_SOC_ACPI_INTEL_MATCH
	tristate
	select SND_SOC_ACPI if ACPI

config SND_SOC_INTEL_SST_TOPLEVEL
	tristate "Intel ASoC SST drivers"
	depends on X86 || COMPILE_TEST
	select SND_SOC_INTEL_MACH
	select SND_SOC_INTEL_COMMON
	help
          Intel ASoC Audio Drivers. If you have a Intel machine that
          has audio controller with a DSP and I2S or DMIC port, then
          enable this option by saying Y or M
          If unsure select "N".

config SND_SOC_INTEL_HASWELL
	tristate "Intel ASoC SST driver for Haswell/Broadwell"
	depends on SND_SOC_INTEL_SST_TOPLEVEL && SND_DMA_SGBUF
	depends on DMADEVICES
	select SND_SOC_INTEL_SST
	select SND_SOC_INTEL_SST_FIRMWARE

config SND_SOC_INTEL_BAYTRAIL
	tristate "Intel ASoC SST driver for Baytrail (legacy)"
	depends on SND_SOC_INTEL_SST_TOPLEVEL
	depends on DMADEVICES
	select SND_SOC_INTEL_SST
	select SND_SOC_INTEL_SST_FIRMWARE

config SND_SST_ATOM_HIFI2_PLATFORM
	tristate "Intel ASoC SST driver for HiFi2 platforms (*field, *trail)"
	depends on SND_SOC_INTEL_SST_TOPLEVEL && X86
	select SND_SOC_COMPRESS

config SND_SOC_INTEL_SKYLAKE
	tristate "Intel ASoC SST driver for SKL/BXT/KBL/GLK/CNL"
	depends on SND_SOC_INTEL_SST_TOPLEVEL && PCI && ACPI
	select SND_HDA_EXT_CORE
	select SND_HDA_DSP_LOADER
	select SND_SOC_TOPOLOGY
	select SND_SOC_INTEL_SST

# ASoC codec drivers
source "sound/soc/intel/boards/Kconfig"
