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)
	select BITREVERSE
	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_MICFIL
	tristate "Pulse Density Modulation Microphone Interface (MICFIL) 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 Pulse Density Modulation microphone
	  interface (MICFIL) support for NXP.

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_DSP
	tristate "dsp module support"
	select SND_SOC_COMPRESS
	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_MICFIL
	tristate "SoC Audio support for i.MX boards with micfil"
	depends on OF && I2C
	select SND_SOC_IMX_PCM_DMA
	select SND_SOC_FSL_MICFIL
	help
	  Soc Audio support for i.MX boards with micfil
	  Say Y if you want to add support for SoC audio on
	  an i.MX board with micfil.

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
	select SND_SOC_RPMSG_WM8960
	select SND_SOC_RPMSG_CS42XX8
	select SND_SOC_RPMSG_AK4497
	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 DRM_IMX_HDP
	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_DSP
	tristate "SoC Audio support for i.MX boards with DSP port"
	select SND_SOC_FSL_DSP
	select SND_SOC_COMPRESS
	help
	  SoC Audio support for i.MX boards with DSP audio
	  Say Y if you want to add support for SoC audio on an i.MX board with
	  IMX DSP.

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
