# Audio Codec configuration options

# Copyright (c) 2018 Intel Corporation
# SPDX-License-Identifier: Apache-2.0

menuconfig AUDIO
	bool "Audio drivers"
	help
	  Enable support for Audio

if AUDIO
#
# Audio Codec options
#
menuconfig AUDIO_CODEC
	bool "Audio Codec Drivers"
	help
	  Enable Audio Codec Driver Configuration

if AUDIO_CODEC

config AUDIO_CODEC_INIT_PRIORITY
	int "Init priority"
	default 60
	help
	  Audio codec device driver initialization priority.

config AUDIO_CODEC_SHELL
	bool "Audio Codec shell"
	depends on SHELL
	help
	  Enable the Audio Codec shell with Audio Codec related commands.

module = AUDIO_CODEC
module-str = audio codec
source "subsys/logging/Kconfig.template.log_config"

source "drivers/audio/Kconfig.tas6422dac"
source "drivers/audio/Kconfig.tlv320dac"
source "drivers/audio/Kconfig.wm8904"

endif # AUDIO_CODEC

menuconfig AUDIO_DMIC
	bool "Digital Microphone (Audio) Drivers"
	help
	  Enable Digital Microphone Driver Configuration

if AUDIO_DMIC

config AUDIO_DMIC_INIT_PRIORITY
	int "Init priority"
	default 80
	help
	  Audio Digital Microphone device driver initialization priority.

module = AUDIO_DMIC
module-str = audio_dmic
source "subsys/logging/Kconfig.template.log_config"

source "drivers/audio/Kconfig.mpxxdtyy"
source "drivers/audio/Kconfig.dmic_pdm_nrfx"
source "drivers/audio/Kconfig.dmic_mcux"

endif # AUDIO_DMIC

endif # AUDIO
