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

config ADC_0
	bool "Enable ADC 0"

config ADC_1
	bool "Enable ADC 1"

config ADC_2
	bool "Enable ADC 2"

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"

endif # ADC
