522 lines
12 KiB
Plaintext
522 lines
12 KiB
Plaintext
#
|
|
# For a description of the syntax of this configuration file,
|
|
# see the file kconfig-language.txt in the NuttX tools repository.
|
|
#
|
|
|
|
menuconfig DRIVERS_AUDIO
|
|
bool "Audio Device Support"
|
|
default n
|
|
---help---
|
|
Enable support for audio device drivers. This includes drivers for
|
|
MP3, WMA and Ogg Vorbis encoding, decoding, as well as drivers for
|
|
interfacing with external DSP chips to perform custom audio functions.
|
|
|
|
NOTE: All of these drivers depend on support from the audio subsystem
|
|
enabled with the AUDIO selection.
|
|
|
|
if DRIVERS_AUDIO
|
|
|
|
config AUDIO_TONE
|
|
bool "Audio Tone Generator using PWM"
|
|
default n
|
|
depends on PWM && DRIVERS_AUDIO
|
|
---help---
|
|
This driver enables the Audio Tone Generator for NuttX.
|
|
|
|
if AUDIO_TONE
|
|
|
|
endif # AUDIO_TONE
|
|
|
|
config AUDIO_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 AUDIO_VS1053
|
|
|
|
config VS1053_DEVICE_COUNT
|
|
int "Number of VS1053 devices attached"
|
|
default 1
|
|
---help---
|
|
Sets the number of VS1053 type devices available 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 # AUDIO_VS1053
|
|
|
|
config AUDIO_CS43L22
|
|
bool "CS43L22 audio chip"
|
|
default n
|
|
depends on AUDIO
|
|
---help---
|
|
Select to enable support for the CS43L22 Audio codec by Cirrus Logic.
|
|
This chip is a lower level audio chip.. basically
|
|
an exotic D-to-A. It includes no built-in support for audio CODECS
|
|
The CS43L22 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_CS43L22
|
|
|
|
config CS43L22_INITVOLUME
|
|
int "CS43L22 initial volume setting"
|
|
default 250
|
|
|
|
config CS43L22_INFLIGHT
|
|
int "CS43L22 maximum in-flight audio buffers"
|
|
default 2
|
|
|
|
config CS43L22_MSG_PRIO
|
|
int "CS43L22 message priority"
|
|
default 1
|
|
|
|
config CS43L22_BUFFER_SIZE
|
|
int "CS43L22 preferred buffer size"
|
|
default 8192
|
|
|
|
config CS43L22_NUM_BUFFERS
|
|
int "CS43L22 preferred number of buffers"
|
|
default 4
|
|
|
|
config CS43L22_WORKER_STACKSIZE
|
|
int "CS43L22 worker thread stack size"
|
|
default 768
|
|
|
|
config CS43L22_REGDUMP
|
|
bool "CS43L22 register dump"
|
|
default n
|
|
---help---
|
|
Enable logic to dump the contents of all CS43L22 registers.
|
|
|
|
config CS43L22_CLKDEBUG
|
|
bool "CS43L22 clock analysis"
|
|
default n
|
|
---help---
|
|
Enable logic to analyze CS43L22 clock configuration.
|
|
|
|
endif # AUDIO_CS43L22
|
|
|
|
config AUDIO_CS4344
|
|
bool "CS4344 audio chip"
|
|
default n
|
|
depends on AUDIO
|
|
---help---
|
|
Select to enable support for the CS4344 Audio codec by Cirrus Logic.
|
|
This chip is a lower level audio chip.. basically
|
|
an exotic D-to-A. It includes no built-in support for audio CODECS.
|
|
|
|
if AUDIO_CS4344
|
|
|
|
config CS4344_INFLIGHT
|
|
int "CS4344 maximum in-flight audio buffers"
|
|
default 2
|
|
|
|
config CS4344_MSG_PRIO
|
|
int "CS4344 message priority"
|
|
default 1
|
|
|
|
config CS4344_BUFFER_SIZE
|
|
int "CS4344 preferred buffer size"
|
|
default 8192
|
|
|
|
config CS4344_NUM_BUFFERS
|
|
int "CS4344 preferred number of buffers"
|
|
default 4
|
|
|
|
config CS4344_WORKER_STACKSIZE
|
|
int "CS4344 worker thread stack size"
|
|
default 768
|
|
|
|
endif # AUDIO_CS4344
|
|
|
|
config AUDIO_ES8311
|
|
bool "ES8311 codec chip"
|
|
default n
|
|
depends on AUDIO
|
|
---help---
|
|
Select to enable support for the ES8311 Audio codec by Everest
|
|
Semiconductor.
|
|
|
|
NOTE: This driver also depends on both I2C and I2S support although
|
|
that dependency is not explicit here.
|
|
|
|
if AUDIO_ES8311
|
|
|
|
config ES8311_INPUT_INITVOLUME
|
|
int "ES8311 initial input volume setting"
|
|
default 1000
|
|
|
|
config ES8311_OUTPUT_INITVOLUME
|
|
int "ES8311 initial output volume setting"
|
|
default 400
|
|
|
|
choice
|
|
prompt "MCLK source"
|
|
default ES8311_SRC_MCLK
|
|
---help---
|
|
Select the source of the MCLK signal.
|
|
|
|
config ES8311_SRC_MCLK
|
|
bool "From MCLK Pin"
|
|
|
|
config ES8311_SRC_BCLK
|
|
bool "From BCLK Pin"
|
|
|
|
endchoice
|
|
|
|
config ES8311_INFLIGHT
|
|
int "ES8311 maximum in-flight audio buffers"
|
|
default 2
|
|
|
|
config ES8311_MSG_PRIO
|
|
int "ES8311 message priority"
|
|
default 1
|
|
|
|
config ES8311_BUFFER_SIZE
|
|
int "ES8311 preferred buffer size"
|
|
default 8192
|
|
|
|
config ES8311_NUM_BUFFERS
|
|
int "ES8311 preferred number of buffers"
|
|
default 4
|
|
|
|
config ES8311_WORKER_STACKSIZE
|
|
int "ES8311 worker thread stack size"
|
|
default 2048
|
|
|
|
endif # AUDIO_ES8388
|
|
|
|
config AUDIO_ES8388
|
|
bool "ES8388 codec chip"
|
|
default n
|
|
depends on AUDIO
|
|
select AUDIO_DRIVER_SPECIFIC_BUFFERS
|
|
---help---
|
|
Select to enable support for the ES8388 Audio codec by Everest
|
|
Semiconductor.
|
|
|
|
NOTE: This driver also depends on both I2C and I2S support although
|
|
that dependency is not explicit here.
|
|
|
|
if AUDIO_ES8388
|
|
|
|
config ES8388_INPUT_INITVOLUME
|
|
int "ES8388 initial input volume setting"
|
|
default 1000
|
|
|
|
config ES8388_OUTPUT_CHANNEL
|
|
int
|
|
default 0 if ES8388_OUTPUT_CHANNEL_LINE1
|
|
default 1 if ES8388_OUTPUT_CHANNEL_LINE2
|
|
default 2 if ES8388_OUTPUT_CHANNEL_ALL
|
|
|
|
choice
|
|
prompt "ES8388 output channel"
|
|
default ES8388_OUTPUT_CHANNEL_ALL
|
|
---help---
|
|
Select the codec channel that will output audio.
|
|
The actual device that will reproduce the audio signal depends
|
|
on the board implementation.
|
|
|
|
config ES8388_OUTPUT_CHANNEL_LINE1
|
|
bool "Line 1"
|
|
|
|
config ES8388_OUTPUT_CHANNEL_LINE2
|
|
bool "Line 2"
|
|
|
|
config ES8388_OUTPUT_CHANNEL_ALL
|
|
bool "Both"
|
|
|
|
endchoice
|
|
|
|
config ES8388_OUTPUT_INITVOLUME
|
|
int "ES8388 initial output volume setting"
|
|
default 400
|
|
|
|
config ES8388_INPUT_CHANNEL
|
|
int
|
|
default 0 if ES8388_INPUT_CHANNEL_LINE1
|
|
default 1 if ES8388_INPUT_CHANNEL_LINE2
|
|
default 3 if ES8388_INPUT_CHANNEL_DIFFERENTIAL
|
|
|
|
choice
|
|
prompt "ES8388 input channel"
|
|
default ES8388_INPUT_CHANNEL_LINE1
|
|
---help---
|
|
Select the codec channel that will input audio.
|
|
The actual device that will reproduce the audio signal depends
|
|
on the board implementation.
|
|
The "Differential" option will take the difference between the Line 1
|
|
left and right channels.
|
|
|
|
config ES8388_INPUT_CHANNEL_LINE1
|
|
bool "Line 1"
|
|
|
|
config ES8388_INPUT_CHANNEL_LINE2
|
|
bool "Line 2"
|
|
|
|
config ES8388_INPUT_CHANNEL_DIFFERENTIAL
|
|
bool "Differential"
|
|
|
|
endchoice
|
|
|
|
config ES8388_INFLIGHT
|
|
int "ES8388 maximum in-flight audio buffers"
|
|
default 2
|
|
|
|
config ES8388_MSG_PRIO
|
|
int "ES8388 message priority"
|
|
default 1
|
|
|
|
config ES8388_BUFFER_SIZE
|
|
int "ES8388 preferred buffer size"
|
|
default 8192
|
|
|
|
config ES8388_NUM_BUFFERS
|
|
int "ES8388 preferred number of buffers"
|
|
default 4
|
|
|
|
config ES8388_WORKER_STACKSIZE
|
|
int "ES8388 worker thread stack size"
|
|
default 2048
|
|
|
|
config ES8388_REGDUMP
|
|
bool "ES8388 register dump"
|
|
default n
|
|
depends on DEBUG_FEATURES
|
|
---help---
|
|
Enable logic to dump the contents of all ES8388 registers.
|
|
|
|
endif # AUDIO_ES8388
|
|
|
|
config AUDIO_WM8776
|
|
bool "WM8776 audio chip"
|
|
default n
|
|
depends on AUDIO
|
|
---help---
|
|
Select to enable support for the WM8776 Audio codec by Wolfson
|
|
Microelectonics.
|
|
|
|
if AUDIO_WM8776
|
|
|
|
config WM8776_INFLIGHT
|
|
int "WM8776 maximum in-flight audio buffers"
|
|
default 2
|
|
|
|
config WM8776_MSG_PRIO
|
|
int "WM8776 message priority"
|
|
default 1
|
|
|
|
config WM8776_WORKER_STACKSIZE
|
|
int "WM8776 worker thread stack size"
|
|
default 768
|
|
|
|
config WM8776_SWAP_HPOUT
|
|
bool "Swap WM8776 HP out signals"
|
|
default n
|
|
|
|
endif # AUDIO_WM8776
|
|
|
|
config AUDIO_WM8994
|
|
bool "WM8994 audio chip"
|
|
default n
|
|
depends on AUDIO
|
|
---help---
|
|
Select to enable support for the WM8994 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 WM8994 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_WM8994
|
|
|
|
config WM8994_INITVOLUME
|
|
int "WM8994 initial volume setting"
|
|
default 250
|
|
|
|
config WM8994_INFLIGHT
|
|
int "WM8994 maximum in-flight audio buffers"
|
|
default 2
|
|
|
|
config WM8994_MSG_PRIO
|
|
int "WM8994 message priority"
|
|
default 1
|
|
|
|
config WM8994_BUFFER_SIZE
|
|
int "WM8994 preferred buffer size"
|
|
default 8192
|
|
|
|
config WM8994_NUM_BUFFERS
|
|
int "WM8994 preferred number of buffers"
|
|
default 4
|
|
|
|
config WM8994_WORKER_STACKSIZE
|
|
int "WM8994 worker thread stack size"
|
|
default 768
|
|
|
|
config WM8994_REGDUMP
|
|
bool "WM8994 register dump"
|
|
default n
|
|
---help---
|
|
Enable logic to dump the contents of all WM8994 registers.
|
|
|
|
config WM8994_CLKDEBUG
|
|
bool "WM8994 clock analysis"
|
|
default n
|
|
---help---
|
|
Enable logic to analyze WM8994 clock configuration.
|
|
|
|
endif # AUDIO_WM8994
|
|
|
|
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 configuration.
|
|
|
|
endif # AUDIO_WM8904
|
|
|
|
config AUDIO_NULL
|
|
bool "NULL audio device"
|
|
default n
|
|
depends on AUDIO
|
|
---help---
|
|
A do-nothing 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
|
|
|
|
config AUDIO_I2S
|
|
bool "Audio I2S"
|
|
depends on AUDIO
|
|
depends on I2S
|
|
|
|
config AUDIO_DMA
|
|
bool "Audio DMA"
|
|
select AUDIO_DRIVER_SPECIFIC_BUFFERS
|
|
depends on AUDIO
|
|
depends on DMA
|
|
|
|
endif # DRIVERS_AUDIO
|