# SPDX-License-Identifier: GPL-2.0-only
config SND_PXA2XX_SOC
	tristate "SoC Audio for the Intel PXA2xx chip"
	depends on ARCH_PXA || COMPILE_TEST
	select SND_PXA2XX_LIB
	help
	  Say Y or M if you want to add support for codecs attached to
	  the PXA2xx AC97, I2S or SSP interface. You will also need
	  to select the audio interfaces to support below.

config SND_PXA2XX_SOC_AC97
	tristate "SoC AC97 support for PXA2xx"
	depends on SND_PXA2XX_SOC
	depends on AC97_BUS=n
	default y
	select AC97_BUS_NEW
	select SND_PXA2XX_LIB
	select SND_PXA2XX_LIB_AC97
	select SND_SOC_AC97_BUS_NEW

config SND_PXA2XX_SOC_I2S
	select SND_PXA2XX_LIB
	tristate

config SND_PXA_SOC_SSP
	tristate "Soc Audio via PXA2xx/PXA3xx SSP ports"
	depends on PLAT_PXA
	select PXA_SSP
	select SND_PXA2XX_LIB

config SND_MMP_SOC_SSPA
	tristate "SoC Audio via MMP SSPA ports"
	depends on ARCH_MMP
	select SND_SOC_GENERIC_DMAENGINE_PCM
	help
	  Say Y if you want to add support for codecs attached to
	  the MMP SSPA interface.

config SND_PXA2XX_SOC_SPITZ
	tristate "SoC Audio support for Sharp Zaurus SL-Cxx00"
	depends on SND_PXA2XX_SOC && PXA_SHARP_Cxx00 && I2C
	select SND_PXA2XX_SOC_I2S
	select SND_SOC_WM8750
	help
	  Say Y if you want to add support for SoC audio on Sharp
	  Zaurus SL-Cxx00 models (Spitz, Borzoi and Akita).

config SND_PXA910_SOC
	tristate "SoC Audio for Marvell PXA910 chip"
	depends on ARCH_MMP && SND
	select SND_PCM
	help
	  Say Y if you want to add support for SoC audio on the
	  Marvell PXA910 reference platform.
