# ADC configuration options

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

#
# ADC options
#
menuconfig ADC
	bool "ADC drivers"
	# All platforms that implement the ADC driver are now required to
	# provide relevant DTS entries.
	help
	  Enable ADC (Analog to Digital Converter) driver configuration.

if ADC

config ADC_SHELL
	bool "Enable ADC Shell"
	default y
	depends on SHELL
	help
	  Enable ADC Shell for testing.

# By selecting or not this option particular ADC drivers indicate if it is
# required to explicitly specify analog inputs when configuring channels or
# just the channel identifier is sufficient.
config ADC_CONFIGURABLE_INPUTS
	bool

config ADC_ASYNC
	bool "Enable asynchronous call support"
	select POLL
	help
	  This option enables the asynchronous API calls.

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

source "drivers/adc/Kconfig.it8xxx2"

source "drivers/adc/Kconfig.mcux"

source "drivers/adc/Kconfig.nrfx"

source "drivers/adc/Kconfig.sam_afec"

source "drivers/adc/Kconfig.sam0"

source "drivers/adc/Kconfig.stm32"

source "drivers/adc/Kconfig.xec"

source "drivers/adc/Kconfig.lmp90xxx"

source "drivers/adc/Kconfig.mcp320x"

source "drivers/adc/Kconfig.npcx"

source "drivers/adc/Kconfig.cc32xx"

source "drivers/adc/Kconfig.adc_emul"

endif # ADC
