menu "SoC Audio for Freescale CPUs"

comment "Common SoC Audio options for Freescale CPUs:"

config SND_SOC_FSL_ASRC
	tristate "Asynchronous Sample Rate Converter (ASRC) module support"
	depends on HAS_DMA
	select REGMAP_MMIO
	select SND_SOC_GENERIC_DMAENGINE_PCM
	help
	  Say Y if you want to add Asynchronous Sample Rate Converter (ASRC)
	  support for the Freescale CPUs.
	  This option is only useful for out-of-tree drivers since
	  in-tree drivers select it automatically.

config SND_SOC_FSL_SAI
	tristate "Synchronous Audio Interface (SAI) module support"
	select REGMAP_MMIO
	select SND_SOC_IMX_PCM_DMA if SND_IMX_SOC != n
	select SND_SOC_GENERIC_DMAENGINE_PCM
	help
	  Say Y if you want to add Synchronous Audio Interface (SAI)
	  support for the Freescale CPUs.
	  This option is only useful for out-of-tree drivers since
	  in-tree drivers select it automatically.

config SND_SOC_FSL_ACM
	tristate "Audio Clock Multiplexer (ACM) module support"
	help
	  Say Y if you want to add Audio Clock Multiplexer (ACM)
	  support for the Freescale CPUs.
	  This option is only useful for out-of-tree drivers since
	  in-tree drivers select it automatically.

config SND_SOC_FSL_AMIX
	tristate "Audio Mixer (AMIX) module support"
	select REGMAP_MMIO
	help
	  Say Y if you want to add Audio Mixer (AMIX)
	  support for the Freescale CPUs.
	  This option is only useful for out-of-tree drivers since
	  in-tree drivers select it automatically.

config SND_SOC_FSL_SSI
	tristate "Synchronous Serial Interface module (SSI) support"
	select SND_SOC_IMX_PCM_DMA if SND_IMX_SOC != n
	select SND_SOC_IMX_PCM_FIQ if SND_IMX_SOC != n && (MXC_TZIC || MXC_AVIC)
	select REGMAP_MMIO
	help
	  Say Y if you want to add Synchronous Serial Interface (SSI)
	  support for the Freescale CPUs.
	  This option is only useful for out-of-tree drivers since
	  in-tree drivers select it automatically.

config SND_SOC_FSL_SPDIF
	tristate "Sony/Philips Digital Interface (S/PDIF) module support"
	select REGMAP_MMIO
	select SND_SOC_IMX_PCM_DMA if SND_IMX_SOC != n
	select SND_SOC_IMX_PCM_FIQ if SND_IMX_SOC != n && (MXC_TZIC || MXC_AVIC)
	help
	  Say Y if you want to add Sony/Philips Digital Interface (SPDIF)
	  support for the Freescale CPUs.
	  This option is only useful for out-of-tree drivers since
	  in-tree drivers select it automatically.

config SND_SOC_FSL_ESAI
	tristate "Enhanced Serial Audio Interface (ESAI) module support"
	select REGMAP_MMIO
	select SND_SOC_IMX_PCM_DMA if SND_IMX_SOC != n
	help
	  Say Y if you want to add Enhanced Synchronous Audio Interface
	  (ESAI) support for the Freescale CPUs.
	  This option is only useful for out-of-tree drivers since
	  in-tree drivers select it automatically.

config SND_SOC_FSL_RPMSG_I2S
	tristate "I2S base on the RPMSG support"
	depends on RPMSG
	help
	  Say Y if you want to add rpmsg i2s support for the Freescale CPUs.
	  which is depends on the rpmsg.
	  This option is only useful for out-of-tree drivers since
	  in-tree drivers select it automatically.

config SND_SOC_FSL_HIFI4
	tristate "hifi 4 module support"
	help
	  Say Y if you want to add hifi 4 support for the Freescale CPUs.
	  which is a DSP core for audio processing.
	  This option is only useful for out-of-tree drivers since
	  in-tree drivers select it automatically.

config SND_SOC_FSL_UTILS
	tristate

config SND_SOC_FSL_HDMI
	tristate

config SND_SOC_IMX_PCM_DMA
	tristate
	select SND_SOC_GENERIC_DMAENGINE_PCM

config SND_SOC_IMX_PCM_RPMSG
	tristate
	depends on RPMSG
	select SND_SOC_GENERIC_DMAENGINE_PCM

config SND_SOC_IMX_AUDMUX
	tristate "Digital Audio Mux module support"
	help
	  Say Y if you want to add Digital Audio Mux (AUDMUX) support
	  for the ARM i.MX CPUs.
	  This option is only useful for out-of-tree drivers since
	  in-tree drivers select it automatically.

config SND_POWERPC_SOC
	tristate "SoC Audio for Freescale PowerPC CPUs"
	depends on FSL_SOC || PPC_MPC52xx
	help
	  Say Y or M if you want to add support for codecs attached to
	  the PowerPC CPUs.

config SND_IMX_SOC
	tristate "SoC Audio for Freescale i.MX CPUs"
	depends on ARCH_MXC || ARCH_MXC_ARM64 || COMPILE_TEST
	help
	  Say Y or M if you want to add support for codecs attached to
	  the i.MX CPUs.

if SND_POWERPC_SOC

config SND_MPC52xx_DMA
	tristate

config SND_SOC_POWERPC_DMA
	tristate

comment "SoC Audio support for Freescale PPC boards:"

config SND_SOC_MPC8610_HPCD
	tristate "ALSA SoC support for the Freescale MPC8610 HPCD board"
	# I2C is necessary for the CS4270 driver
	depends on MPC8610_HPCD && I2C
	select SND_SOC_FSL_SSI
	select SND_SOC_FSL_UTILS
	select SND_SOC_POWERPC_DMA
	select SND_SOC_CS4270
	select SND_SOC_CS4270_VD33_ERRATA
	default y if MPC8610_HPCD
	help
	  Say Y if you want to enable audio on the Freescale MPC8610 HPCD.

config SND_SOC_P1022_DS
	tristate "ALSA SoC support for the Freescale P1022 DS board"
	# I2C is necessary for the WM8776 driver
	depends on P1022_DS && I2C
	select SND_SOC_FSL_SSI
	select SND_SOC_FSL_UTILS
	select SND_SOC_POWERPC_DMA
	select SND_SOC_WM8776
	default y if P1022_DS
	help
	  Say Y if you want to enable audio on the Freescale P1022 DS board.
	  This will also include the Wolfson Microelectronics WM8776 codec
	  driver.

config SND_SOC_P1022_RDK
	tristate "ALSA SoC support for the Freescale / iVeia P1022 RDK board"
	# I2C is necessary for the WM8960 driver
	depends on P1022_RDK && I2C
	select SND_SOC_FSL_SSI
	select SND_SOC_FSL_UTILS
	select SND_SOC_POWERPC_DMA
	select SND_SOC_WM8960
	default y if P1022_RDK
	help
	  Say Y if you want to enable audio on the Freescale / iVeia
	  P1022 RDK board.  This will also include the Wolfson
	  Microelectronics WM8960 codec driver.

config SND_SOC_MPC5200_I2S
	tristate "Freescale MPC5200 PSC in I2S mode driver"
	depends on PPC_MPC52xx && PPC_BESTCOMM
	select SND_MPC52xx_DMA
	select PPC_BESTCOMM_GEN_BD
	help
	  Say Y here to support the MPC5200 PSCs in I2S mode.

config SND_SOC_MPC5200_AC97
	tristate "Freescale MPC5200 PSC in AC97 mode driver"
	depends on PPC_MPC52xx && PPC_BESTCOMM
	select SND_SOC_AC97_BUS
	select SND_MPC52xx_DMA
	select PPC_BESTCOMM_GEN_BD
	help
	  Say Y here to support the MPC5200 PSCs in AC97 mode.

config SND_MPC52xx_SOC_PCM030
	tristate "SoC AC97 Audio support for Phytec pcm030 and WM9712"
	depends on PPC_MPC5200_SIMPLE
	select SND_SOC_MPC5200_AC97
	select SND_SOC_WM9712
	help
	  Say Y if you want to add support for sound on the Phytec pcm030
	  baseboard.

config SND_MPC52xx_SOC_EFIKA
	tristate "SoC AC97 Audio support for bbplan Efika and STAC9766"
	depends on PPC_EFIKA
	select SND_SOC_MPC5200_AC97
	select SND_SOC_STAC9766
	help
	  Say Y if you want to add support for sound on the Efika.

endif # SND_POWERPC_SOC

if SND_IMX_SOC

config SND_SOC_IMX_SSI
	tristate
	select SND_SOC_FSL_UTILS

config SND_SOC_IMX_PCM_FIQ
	tristate
	select FIQ

config SND_SOC_IMX_HDMI_DMA
	bool
	select SND_SOC_GENERIC_DMAENGINE_PCM
	select SND_SOC_IMX_PCM_DMA

comment "SoC Audio support for Freescale i.MX boards:"

config SND_MXC_SOC_WM1133_EV1
	tristate "Audio on the i.MX31ADS with WM1133-EV1 fitted"
	depends on MACH_MX31ADS_WM1133_EV1
	select SND_SOC_WM8350
	select SND_SOC_IMX_PCM_FIQ
	select SND_SOC_IMX_AUDMUX
	select SND_SOC_IMX_SSI
	help
	  Enable support for audio on the i.MX31ADS with the WM1133-EV1
	  PMIC board with WM8835x fitted.

config SND_SOC_MX27VIS_AIC32X4
	tristate "SoC audio support for Visstrim M10 boards"
	depends on MACH_IMX27_VISSTRIM_M10 && I2C
	select SND_SOC_TLV320AIC32X4
	select SND_SOC_IMX_PCM_DMA
	select SND_SOC_IMX_AUDMUX
	select SND_SOC_IMX_SSI
	help
	  Say Y if you want to add support for SoC audio on Visstrim SM10
	  board with TLV320AIC32X4 codec.

config SND_SOC_PHYCORE_AC97
	tristate "SoC Audio support for Phytec phyCORE (and phyCARD) boards"
	depends on MACH_PCM043 || MACH_PCA100
	select SND_SOC_AC97_BUS
	select SND_SOC_WM9712
	select SND_SOC_IMX_PCM_FIQ
	select SND_SOC_IMX_AUDMUX
	select SND_SOC_IMX_SSI
	help
	  Say Y if you want to add support for SoC audio on Phytec phyCORE
	  and phyCARD boards in AC97 mode

config SND_SOC_EUKREA_TLV320
	tristate "Eukrea TLV320"
	depends on ARCH_MXC && I2C
	select SND_SOC_TLV320AIC23_I2C
	select SND_SOC_IMX_AUDMUX
	select SND_SOC_IMX_SSI
	select SND_SOC_FSL_SSI
	select SND_SOC_IMX_PCM_DMA
	help
	  Enable I2S based access to the TLV320AIC23B codec attached
	  to the SSI interface

config SND_SOC_IMX_AK4458
	tristate "SoC Audio support for i.MX boards with AK4458"
	depends on OF && I2C
	select SND_SOC_AK4458_I2C
	select SND_SOC_IMX_PCM_DMA
	select SND_SOC_FSL_SAI
	select SND_SOC_FSL_UTILS
	help
	  SoC Audio support for i.MX boards with AK4458
	  Say Y if you want to add support for SoC audio on an i.MX board with
	  an AK4458 DAC.

config SND_SOC_IMX_AK5558
	tristate "SoC Audio support for i.MX boards with AK5558"
	depends on OF && I2C
	select SND_SOC_AK5558
	select SND_SOC_IMX_PCM_DMA
	select SND_SOC_FSL_SAI
	select SND_SOC_FSL_UTILS
	help
	  SoC Audio support for i.MX boards with AK5558
	  Say Y if you want to add support for SoC audio on an i.MX board with
	  an AK5558 ADC.

config SND_SOC_IMX_AK4497
	tristate "SoC Audio support for i.MX boards with AK4497"
	depends on OF && I2C
	select SND_SOC_AK4497
	select SND_SOC_IMX_PCM_DMA
	select SND_SOC_FSL_SAI
	select SND_SOC_FSL_UTILS
	help
	  SoC Audio support for i.MX boards with AK4497
	  Say Y if you want to add support for SoC audio on an i.MX board with
	  an AK4497 DAC.

config SND_SOC_IMX_WM8960
	tristate "SoC Audio support for i.MX boards with wm8960"
	depends on OF && I2C
	select SND_SOC_WM8960
	select SND_SOC_IMX_PCM_DMA
	select SND_SOC_FSL_SAI
	select SND_SOC_FSL_UTILS
	select SND_KCTL_JACK
	help
	  SoC Audio support for i.MX boards with WM8960
	  Say Y if you want to add support for SoC audio on an i.MX board with
	  a wm8960 codec.

config SND_SOC_IMX_WM8524
	tristate "SoC Audio support for i.MX boards with wm8524"
	depends on OF && I2C
	select SND_SOC_WM8524
	select SND_SOC_IMX_PCM_DMA
	select SND_SOC_FSL_SAI
	select SND_SOC_FSL_UTILS
	select SND_KCTL_JACK
	help
	  SoC Audio support for i.MX boards with WM8524
	  Say Y if you want to add support for SoC audio on an i.MX board with
	  a wm8524 codec.

config SND_SOC_IMX_SII902X
	tristate "SoC Audio support for i.MX boards with sii902x"
	depends on OF && I2C
	select SND_SOC_IMX_PCM_DMA
	select SND_SOC_FSL_SAI
	select SND_SOC_FSL_UTILS
	help
	 SoC Audio support for i.MX boards with SII902X
	 Say Y if you want to add support for SoC audio on an i.MX board with
	 a sii902x.

config SND_SOC_IMX_WM8958
	tristate "SoC Audio support for i.MX boards with wm8958"
	depends on OF && I2C
	select MFD_WM8994
	select SND_SOC_WM8994
	select SND_SOC_IMX_PCM_DMA
	select SND_SOC_FSL_SAI
	select SND_SOC_FSL_UTILS
	select SND_KCTL_JACK
	help
	 SoC Audio support for i.MX boards with WM8958
	 Say Y if you want to add support for SoC audio on an i.MX board with
	 a wm8958 codec.

config SND_SOC_IMX_CS42888
	tristate "SoC Audio support for i.MX boards with cs42888"
	depends on OF && I2C
	select SND_SOC_CS42XX8_I2C
	select SND_SOC_IMX_PCM_DMA
	select SND_SOC_FSL_ESAI
	select SND_SOC_FSL_ASRC
	select SND_SOC_FSL_UTILS
	help
	 SoC Audio support for i.MX boards with cs42888
	 Say Y if you want to add support for SoC audio on an i.MX board with
	 a cs42888 codec.

config SND_SOC_IMX_WM8962
	tristate "SoC Audio support for i.MX boards with wm8962"
	depends on OF && I2C && INPUT
	select SND_SOC_WM8962
	select SND_SOC_IMX_PCM_DMA
	select SND_SOC_IMX_AUDMUX
	select SND_SOC_FSL_SSI
	select SND_KCTL_JACK
	help
	  Say Y if you want to add support for SoC audio on an i.MX board with
	  a wm8962 codec.

config SND_SOC_IMX_WM8962_ANDROID
	tristate "SoC Audio support for i.MX boards with wm8962 in android"
	depends on SND_SOC_IMX_WM8962=y
	help
	  Say Y if you want to add support for SoC audio on an i.MX board with
	  a wm8962 codec in android.

config SND_SOC_IMX_RPMSG
	tristate "SoC Audio support for i.MX boards with rpmsg"
	depends on OF && I2C && INPUT
	select SND_SOC_IMX_PCM_RPMSG
	select SND_SOC_FSL_RPMSG_I2S
	help
	  SoC Audio support for i.MX boards with rpmsg.
	  There should be rpmsg devices defined in other core
	  Say Y if you want to add support for SoC audio on an i.MX board with
	  a rpmsg devices.

config SND_SOC_IMX_ES8328
	tristate "SoC Audio support for i.MX boards with the ES8328 codec"
	depends on OF && (I2C || SPI)
	select SND_SOC_ES8328_I2C if I2C
	select SND_SOC_ES8328_SPI if SPI_MASTER
	select SND_SOC_IMX_PCM_DMA
	select SND_SOC_IMX_AUDMUX
	select SND_SOC_FSL_SSI
	help
	  Say Y if you want to add support for the ES8328 audio codec connected
	  via SSI/I2S over either SPI or I2C.

config SND_SOC_IMX_XTOR
	tristate "SoC Audio support for i.MX boards with xtor codec"
	select SND_SOC_IMX_PCM_DMA
	select SND_SOC_FSL_ESAI
	select SND_SOC_FSL_SAI
	select SND_SOC_FSL_UTILS
	help
	  SoC Audio support for i.MX boards with xtor codec
	  Say Y if you want to add support for SoC audio on
	  an i.MX board with a xtor codec.

config SND_SOC_IMX_SGTL5000
	tristate "SoC Audio support for i.MX boards with sgtl5000"
	depends on OF && I2C
	select SND_SOC_SGTL5000
	select SND_SOC_IMX_PCM_DMA
	select SND_SOC_IMX_AUDMUX
	select SND_SOC_FSL_SSI
	help
	  Say Y if you want to add support for SoC audio on an i.MX board with
	  a sgtl5000 codec.

config SND_SOC_IMX_MQS
	tristate "SoC Audio support for i.MX boards with MQS"
	depends on OF
	select SND_SOC_IMX_PCM_DMA
	select SND_SOC_FSL_SAI
	select SND_SOC_FSL_MQS
	select SND_SOC_FSL_UTILS

config SND_SOC_IMX_SPDIF
	tristate "SoC Audio support for i.MX boards with S/PDIF"
	select SND_SOC_IMX_PCM_DMA
	select SND_SOC_FSL_SPDIF
	help
	  SoC Audio support for i.MX boards with S/PDIF
	  Say Y if you want to add support for SoC audio on an i.MX board with
	  a S/DPDIF.

config SND_SOC_IMX_MC13783
	tristate "SoC Audio support for I.MX boards with mc13783"
	depends on MFD_MC13XXX && ARM
	select SND_SOC_IMX_SSI
	select SND_SOC_IMX_AUDMUX
	select SND_SOC_MC13783
	select SND_SOC_IMX_PCM_DMA

config SND_SOC_FSL_ASOC_CARD
	tristate "Generic ASoC Sound Card with ASRC support"
	depends on OF && I2C
	# enforce SND_SOC_FSL_ASOC_CARD=m if SND_AC97_CODEC=m:
	depends on SND_AC97_CODEC || SND_AC97_CODEC=n
	select SND_SOC_IMX_AUDMUX
	select SND_SOC_IMX_PCM_DMA
	select SND_SOC_FSL_ESAI
	select SND_SOC_FSL_SAI
	select SND_SOC_FSL_SSI
	help
	 ALSA SoC Audio support with ASRC feature for Freescale SoCs that have
	 ESAI/SAI/SSI and connect with external CODECs such as WM8962, CS42888,
	 CS4271, CS4272, SGTL5000, and ALC5645.
	 Say Y if you want to add support for Freescale Generic ASoC Sound Card.

config SND_SOC_IMX_SI476X
	tristate "SoC Audio support for i.MX boards with si476x"
	select SND_SOC_IMX_PCM_DMA
	select SND_SOC_IMX_AUDMUX
	select SND_SOC_FSL_SSI
	select SND_SOC_FSL_UTILS
	select SND_SOC_SI476X
	help
	  SoC Audio support for i.MX boards with SI476x
	  Say Y if you want to add support for Soc audio for the AMFM Tuner chip
	  SI476x module.

config SND_SOC_IMX_HDMI
	tristate "SoC Audio support for i.MX boards with HDMI port"
	depends on MFD_MXC_HDMI
	select SND_SOC_IMX_HDMI_DMA
	select SND_SOC_FSL_HDMI
	select SND_SOC_HDMI_CODEC
	help
	  SoC Audio support for i.MX boards with HDMI audio
	  Say Y if you want to add support for SoC audio on an i.MX board with
	  IMX HDMI.

config SND_SOC_IMX_AMIX
	tristate "SoC Audio support for i.MX boards with AMIX"
	select SND_SOC_FSL_AMIX
	help
	  SoC Audio support for i.MX boards with AMIX
	  Say Y if you want to add support for SoC audio on an i.MX board with
	  an AMIX.

config SND_SOC_IMX_CDNHDMI
	tristate "SoC Audio support for i.MX boards with CDN HDMI port"
	depends on FB_MX8_HDMI
	select SND_SOC_IMX_PCM_DMA
	select SND_SOC_FSL_SAI
	select SND_SOC_HDMI_CODEC
	help
	  SoC Audio support for i.MX boards with CDN HDMI audio
	  Say Y if you want to add support for SoC audio on an i.MX board with
	  IMX CDN HDMI.

config SND_SOC_IMX_PDM_MIC
	tristate "SoC Audio support for i.MX boards with PDM mic on SAI"
	depends on OF
	select SND_SOC_IMX_PDM_DMA
	select SND_SOC_FSL_SAI
	help
	  SoC Audio support for i.MX boards with PDM microphones on SAI
	  Say Y if you want to add support for SoC Audio support for i.MX boards
	  with PDM microphones on SAI.

endif # SND_IMX_SOC

endmenu
