#
# For a description of the syntax of this configuration file,
# see the file kconfig-language.txt in the NuttX tools repository.
#

config AUDIO_I2SCHAR
	bool "I2S character driver (for testing only)"
	default n
	depends on I2S && AUDIO
	---help---
		This selection enables a simple character driver that supports I2S
		transfers via a read() and write().  The intent of this driver is to
		support I2S testing.  It is not an audio driver but does conform to
		some of the buffer management heuristics of an audio driver.  It is
		not suitable for use in any real driver application in its current
		form.

if AUDIO_I2SCHAR

config AUDIO_I2SCHAR_RXTIMEOUT
	int "RX timeout"
	default 0
	---help---
		This is a fixed timeout value that will be used for all receiver
		transfers.  This is in units of system clock ticks (configurable).
		The special value of zero disables RX timeouts.  Default: 0

config AUDIO_I2SCHAR_TXTIMEOUT
	int "TX timeout"
	default 0
	---help---
		This is a fixed timeout value that will be used for all transmitter
		transfers.  This is in units of system clock ticks (configurable).
		The special value of zero disables RX timeouts.  Default: 0

endif #AUDIO_I2SCHAR

config VS1053
	bool "VS1053 codec chip"
	default n
	depends on AUDIO
	---help---
		Select to enable support for the VS1053 Audio codec by VLSI Solutions.
		This chip provides encoding and decoding of MP3, WMA, AAC and Ogg
		Vorbis format audio.  It also has a general DSP which is user
		programmable to perform special audio (or any DSP) functions.

if VS1053

config VS1053_DEVICE_COUNT
	int "Number of VS1053 devices attached"
	default 1
	---help---
		Sets the number of VS1053 type devices availalbe to the system.
		This is required to reserve global, static lower-half driver
		context pointers for the DREQ ISR to use for lookup when it needs
		to signal that additional data is being requested.

config VS1053_WORKER_STACKSIZE
	int "VS1053 worker thread stack size"
	default 768
	---help---
		Stack size to use with the VS1053 worker thread.

if AUDIO_DRIVER_SPECIFIC_BUFFERS

config VS1053_NUM_BUFFERS
	int "Number of Audio Pipeline Buffers to use"
	default 2
	---help---
		Sets the number of the Audio Pipeline Buffers used to deliver audio
		data to the VS1053 driver.  The minimum you should set this is
		2 buffers, which should be adequate for most media types.

config VS1053_BUFFER_SIZE
	int "Size of Audio Pipeline Buffers to use"
	default 8192
	---help---
		Sets the size of the Audio Pipeline Buffers used to deliver audio
		data to the VS1053 driver.  The minimum you should set this is
		2048 bytes.  The larger the buffer, the better CPU performance.

endif # AUDIO_DRIVER_SPECIFIC_BUFFERS

endif # VS1053

config AUDIO_WM8904
	bool "WM8904 audio chip"
	default n
	depends on AUDIO
	---help---
		Select to enable support for the WM8904 Audio codec by Wolfson
		Microelectonics.  This chip is a lower level audio chip.. basically
		an exotic D-to-A.  It includes no built-in support for audio CODECS
		The WM8904 provides:

			- Low power consumption
			- High SNR
			- Stereo digital microphone input
			- Digital Dynamic Range Controller (compressor / limiter)
			- Digital sidetone mixing
			- Ground-referenced headphone driver
			- Ground-referenced line outputs

		NOTE: This driver also depends on both I2C and I2S support although
		that dependency is not explicit here.

if AUDIO_WM8904

config WM8904_INITVOLUME
	int "WM8904 initial volume setting"
	default 250

config WM8904_INFLIGHT
	int "WM8904 maximum in-flight audio buffers"
	default 2

config WM8904_MSG_PRIO
	int "WM8904 message priority"
	default 1

config WM8904_BUFFER_SIZE
	int "WM8904 preferred buffer size"
	default 8192

config WM8904_NUM_BUFFERS
	int "WM8904 preferred number of buffers"
	default 4

config WM8904_WORKER_STACKSIZE
	int "WM8904 worker thread stack size"
	default 768

config WM8904_REGDUMP
	bool "WM8904 register dump"
	default n
	---help---
		Enable logic to dump the contents of all WM8904 registers.

config WM8904_CLKDEBUG
	bool "WM8904 clock analysis"
	default n
	---help---
		Enable logic to analyze WM8904 clock configuation.

endif # AUDIO_WM8904

config AUDIO_NULL
	bool "NULL audio device"
	default n
	depends on AUDIO
	---help---
		A do-nothinig audio device driver to simplify testing of audio
		decoders.

if AUDIO_NULL

config AUDIO_NULL_MSG_PRIO
	int "Null audio device message priority"
	default 1

config AUDIO_NULL_BUFFER_SIZE
	int "Null audio device preferred buffer size"
	default 8192

config AUDIO_NULL_NUM_BUFFERS
	int "Null audio device preferred number of buffers"
	default 4

config AUDIO_NULL_WORKER_STACKSIZE
	int "Null audio device worker thread stack size"
	default 768

endif # AUDIO_NULL
