config SND_BF5XX_I2S
	tristate "SoC I2S Audio for the ADI Blackfin chip"
	depends on BLACKFIN
	select SND_BF5XX_SOC_SPORT if !BF60x
	select SND_BF6XX_SOC_SPORT if BF60x
	help
	  Say Y or M if you want to add support for codecs attached to
	  the Blackfin SPORT (synchronous serial ports) interface in I2S
	  mode (supports single stereo In/Out).
	  You will also need to select the audio interfaces to support below.

config SND_BF5XX_SOC_SSM2602
	tristate "SoC SSM2602 Audio Codec Add-On Card support"
	depends on SND_BF5XX_I2S && SND_SOC_I2C_AND_SPI
	select SND_BF5XX_SOC_I2S if !BF60x
	select SND_BF6XX_SOC_I2S if BF60x
	select SND_SOC_SSM2602_SPI if SPI_MASTER
	select SND_SOC_SSM2602_I2C if I2C
	help
	  Say Y if you want to add support for the Analog Devices
	  SSM2602 Audio Codec Add-On Card.

config SND_SOC_BFIN_EVAL_ADAU1701
	tristate "Support for the EVAL-ADAU1701MINIZ board on Blackfin eval boards"
	depends on SND_BF5XX_I2S && I2C
	select SND_BF5XX_SOC_I2S
	select SND_SOC_ADAU1701
	help
	  Say Y if you want to add support for the Analog Devices EVAL-ADAU1701MINIZ
	  board connected to one of the Blackfin evaluation boards like the
	  BF5XX-STAMP or BF5XX-EZKIT.

config SND_SOC_BFIN_EVAL_ADAU1373
	tristate "Support for the EVAL-ADAU1373 board on Blackfin eval boards"
	depends on SND_BF5XX_I2S && I2C
	select SND_BF5XX_SOC_I2S
	select SND_SOC_ADAU1373
	help
	  Say Y if you want to add support for the Analog Devices EVAL-ADAU1373
	  board connected to one of the Blackfin evaluation boards like the
	  BF5XX-STAMP or BF5XX-EZKIT.

	  Note: This driver assumes that first ADAU1373 DAI is connected to the
	  first SPORT port on the BF5XX board.

config SND_SOC_BFIN_EVAL_ADAV80X
	tristate "Support for the EVAL-ADAV80X boards on Blackfin eval boards"
	depends on SND_BF5XX_I2S && SND_SOC_I2C_AND_SPI
	select SND_BF5XX_SOC_I2S
	select SND_SOC_ADAV801 if SPI_MASTER
	select SND_SOC_ADAV803 if I2C
	help
	  Say Y if you want to add support for the Analog Devices EVAL-ADAV801 or
	  EVAL-ADAV803 board connected to one of the Blackfin evaluation boards
	  like the BF5XX-STAMP or BF5XX-EZKIT.

	  Note: This driver assumes that the ADAV80X digital record and playback
	  interfaces are connected to the first SPORT port on the BF5XX board.

config SND_BF5XX_SOC_AD1836
	tristate "SoC AD1836 Audio support for BF5xx"
	depends on SND_BF5XX_I2S && SPI_MASTER
	select SND_BF5XX_SOC_I2S
	select SND_SOC_AD1836
	help
	  Say Y if you want to add support for SoC audio on BF5xx STAMP/EZKIT.

config SND_BF5XX_SOC_AD193X
	tristate "SoC AD193X Audio support for Blackfin"
	depends on SND_BF5XX_I2S && SND_SOC_I2C_AND_SPI
	select SND_BF5XX_SOC_I2S
	select SND_SOC_AD193X_I2C if I2C
	select SND_SOC_AD193X_SPI if SPI_MASTER
	help
	  Say Y if you want to add support for AD193X codec on Blackfin.
	  This driver supports AD1936, AD1937, AD1938 and AD1939.

config SND_BF5XX_SOC_AD73311
	tristate "SoC AD73311 Audio support for Blackfin"
	depends on SND_BF5XX_I2S
	select SND_BF5XX_SOC_I2S
	select SND_SOC_AD73311
	help
	  Say Y if you want to add support for AD73311 codec on Blackfin.

config SND_BFIN_AD73311_SE
	int "PF pin for AD73311L Chip Select"
	depends on SND_BF5XX_SOC_AD73311
	default 4
	help
	  Enter the GPIO used to control AD73311's SE pin. Acceptable
	  values are 0 to 7

config SND_BF5XX_AC97
	tristate "SoC AC97 Audio for the ADI BF5xx chip"
	depends on BLACKFIN
	select AC97_BUS
	select SND_SOC_AC97_BUS
	select SND_BF5XX_SOC_SPORT
	select SND_BF5XX_SOC_AC97
	help
	  Say Y or M if you want to add support for codecs attached to
	  the Blackfin SPORT (synchronous serial ports) interface in slot 16
	  mode (pseudo AC97 interface).
	  You will also need to select the audio interfaces to support below.

	  Note:
	  AC97 codecs which do not implement the slot-16 mode will not function
	  properly with this driver. This driver is known to work with the
	  Analog Devices line of AC97 codecs.

config SND_BF5XX_MMAP_SUPPORT
	bool "Enable MMAP Support"
	depends on SND_BF5XX_AC97
	default y
	help
	  Say y if you want AC97 driver to support mmap mode.
	  We introduce an intermediate buffer to simulate mmap.

config SND_BF5XX_MULTICHAN_SUPPORT
	bool "Enable Multichannel Support"
	depends on SND_BF5XX_AC97
	default n
	help
	  Say y if you want AC97 driver to support up to 5.1 channel audio.
	  this mode will consume much more memory for DMA.

config SND_BF5XX_HAVE_COLD_RESET
	bool "BOARD has COLD Reset GPIO"
	depends on SND_BF5XX_AC97
	default y if BFIN548_EZKIT
	default n if !BFIN548_EZKIT

config SND_BF5XX_RESET_GPIO_NUM
	int "Set a GPIO for cold reset"
	depends on SND_BF5XX_HAVE_COLD_RESET
	range 0 159
	default 19 if BFIN548_EZKIT
	default 5 if BFIN537_STAMP
	default 0
	help
	  Set the correct GPIO for RESET the sound chip.

config SND_BF5XX_SOC_AD1980
	tristate "SoC AD1980/1 Audio support for BF5xx (Obsolete)"
	depends on SND_BF5XX_AC97
	select SND_BF5XX_SOC_AC97
	select SND_SOC_AD1980
	help
	  Say Y if you want to add support for SoC audio on BF5xx STAMP/EZKIT.

	  Warning:
	  Because Analog Devices Inc. discontinued the ad1980 sound chip since
	  Sep. 2009, this ad1980 driver is not maintained, tested and supported
	  by ADI now.

config SND_BF5XX_SOC_SPORT
	tristate

config SND_BF6XX_SOC_SPORT
	tristate

config SND_BF5XX_SOC_I2S
	tristate

config SND_BF6XX_SOC_I2S
	tristate

config SND_BF5XX_SOC_AC97
	tristate

config SND_BF5XX_SPORT_NUM
	int "Set a SPORT for Sound chip"
	depends on (SND_BF5XX_SOC_SPORT || SND_BF6XX_SOC_SPORT)
	range 0 3 if BF54x
	range 0 1 if !BF54x
	default 0
	help
	  Set the correct SPORT for sound chip.
