# 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"

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
