# Kconfig - 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.
	select HAS_DTS_ADC
	help
	  Enable ADC (Analog to Digital Converter) driver configuration.

if ADC

# 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_INIT_PRIORITY
	int "Init priority"
	default 80
	help
	  ADC Device driver initialization priority.

config ADC_0
	bool "Enable ADC 0"

config ADC_1
	bool "Enable ADC 1"

source "drivers/adc/Kconfig.mcux"

source "drivers/adc/Kconfig.nrfx"

source "drivers/adc/Kconfig.sam_afec"

source "drivers/adc/Kconfig.intel_quark"

endif # ADC
