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