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

endif # ADC
