# Copyright (c) 2023 SILA  Embedded Solutions GmbH
#
# SPDX-License-Identifier: Apache-2.0

menuconfig ADC_ADS114S0X
	bool "Texas instruments ADS114S0x"
	default y
	depends on DT_HAS_TI_ADS114S08_ENABLED
	select SPI
	select ADC_CONFIGURABLE_INPUTS
	select ADC_CONFIGURABLE_EXCITATION_CURRENT_SOURCE_PIN
	select ADC_CONFIGURABLE_VBIAS_PIN
	help
	  Enable the driver implementation for the ADS114S0X family

config ADC_ADS114S0X_ASYNC_THREAD_INIT_PRIO
	int "ADC ADS114S0x async thread priority"
	default 0
	depends on ADC_ADS114S0X

config ADC_ADS114S0X_ACQUISITION_THREAD_STACK_SIZE
	int "Stack size for the ADC data acquisition thread"
	default 400
	depends on ADC_ADS114S0X
	help
	  Size of the stack used for the internal data acquisition
	  thread.

config ADC_ADS114S0X_GPIO
	bool "GPIO support"
	default n
	depends on GPIO && ADC_ADS114S0X
	help
	  Enable GPIO child device support in the ADS114S0x ADC driver.

	  The GPIO functionality is handled by the ADS114S0x GPIO
	  driver.

config ADC_ADS114S0X_WAIT_FOR_COMPLETION_TIMEOUT_MS
	int "Timeout for wait for completion of a read in ms"
	default 1000
	depends on ADC_ADS114S0X
	help
	  This is the wait time in ms until a read is completed.
