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
	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_ADAV80X
	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
	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.
