config SND_AMBARELLA_SOC
	tristate "SoC Audio for the Ambarella chips"
	depends on PLAT_AMBARELLA && SND_SOC
	help
	  Say Y or M if you want to add support for codecs attached to
	  the AMBARELLA I2S interface. You will also need
	  to select the audio interfaces to support below.

config SND_AMBARELLA_SOC_I2S
	tristate

config SND_AMDROID_JACK
	tristate
	tristate "Jack Detection in Amdroid style"
	depends on PLAT_AMBARELLA && SND_SOC
	help
	  Say Y or M if you want to add support for headset/headphone
	  jack detection in Amdroid style.

menuconfig SND_AMBARELLA_BOARD
	tristate "Ambarella Board Type"
	depends on SND_AMBARELLA_SOC
	help
	  Say Y or M to select specific ambarella board.

if SND_AMBARELLA_BOARD

config IPCAM_BOARD
	tristate "IPCAM Board [With Internel Codec]"
	depends on SND_AMBARELLA_SOC && PLAT_AMBARELLA_A2
	select SND_AMBARELLA_SOC_I2S
	select SND_SOC_AMBARELLA_A2AUC
	help
	  Say Y if you want to add internal audio codec support for
	  SoC audio on Ambarella IPCAM Board.

config DROPCAM_AK4642_BOARD
	tristate "Dropcam Board [With AK4642 Codec]"
	depends on SND_AMBARELLA_SOC
	select SND_AMBARELLA_SOC_I2S
	select SND_SOC_AK4642_AMB
	help
	  Say Y if you want to add ak4642 audio codec support for
	  SoC audio on Dropcam Board.

config DROPCAM_WM8974_BOARD
	tristate "Dropcam Board [With WM8974 Codec]"
	depends on SND_AMBARELLA_SOC
	select SND_AMBARELLA_SOC_I2S
	select SND_SOC_WM8974_AMB
	help
	  Say Y if you want to add wm8974 audio codec support for
	  SoC audio on Ambarella Dropcam Board.

config A5S_PA2_BOARD
	tristate "A5s PA2 board [with WM8737 Codec]"
	depends on SND_AMBARELLA_SOC && (MACH_COCONUT)
	select SND_AMBARELLA_SOC_I2S
	select SND_SOC_WM8737
	help
	  Say Y if you want to add WM8737 codec for A5s PA2 board.

config I1EVK_BOARD
	tristate "I1EVK Board [With WM8994 Codec]"
	depends on SND_AMBARELLA_SOC && MACH_ELEPHANT && MFD_WM8994
	select SND_AMBARELLA_SOC_I2S
	select SND_SOC_WM8994
	select SND_SOC_AMBARELLA_DUMMY
	help
	  Say Y if you want to add wm8994 audio codec support for
	  SoC audio on Ambarella I1EVK Board.

config MD800_BOARD
	tristate "MD800 Board [With ES8328 Codec]"
	depends on SND_AMBARELLA_SOC && MACH_ELEPHANT
	select SND_AMBARELLA_SOC_I2S
	select SND_SOC_ES8328
	help
	  Say Y if you want to add es8328 audio codec support for
	  SoC audio on Ambarella MD800 Board.

config PPGA3_BOARD
	tristate "PPGA3 Board [With TLV320AIC326x Codec]"
	depends on SND_AMBARELLA_SOC && MACH_ELEPHANT
	select SND_AMBARELLA_SOC_I2S
	select SND_SOC_TLV320AIC326x
	help
	  Say Y if you want to add TLV320AIC326x audio codec support for
	  SoC audio on Ambarella PPGA3 Board.

config AMBARELLA_DUMMY_BOARD
	tristate "Ambarella Dummy Board [With Dummy Codec]"
	select SND_AMBARELLA_SOC_I2S
	select SND_SOC_AMBARELLA_DUMMY
	help
	  Say Y if you want to add dummy audio codec support for
	  SoC audio on Ambarella Board. Generally, it's for HDMI.

config PJ203_BOARD
	tristate "Ambarella PJ203 Board [With Tlv320DAC3100 Codec]"
	select SND_AMBARELLA_SOC_I2S
	select SND_SOC_TLV320DAC31
	help
	  Say Y if you want to add TLV320DAC3100 audio codec support for
	  Soc audio on PJ203 board.

config A5S_A5SEVK_BOARD
	tristate "A5SEVK Board [With WM8974 Codec]"
	depends on SND_AMBARELLA_SOC && (MACH_COCONUT)
	select SND_AMBARELLA_SOC_I2S
	select SND_SOC_WM8974_AMB
	help
	  Say Y if you want to add wm8974 audio codec support for
	  SoC audio on Ambarella A5sevk Board.

endif

