# Copyright (c) 2023 Caspar Friedrich <c.s.w.friedrich@gmail.com>
# SPDX-License-Identifier: Apache-2.0

config ADC_TLA2021
	bool "Texas Instruments TLA2021 Low-Power ADC"
	default y
	depends on DT_HAS_TI_TLA2021_ENABLED
	select I2C
	help
	  TLA202x Cost-Optimized, Ultra-Small, 12-Bit, System-Monitoring ADCs

if ADC_TLA2021

config ADC_TLA2021_INIT_PRIORITY
	int "Priority for the driver initialization"
	default 80
	help
	  Fine tune the priority for the driver initialization. Make sure it's
	  higher (-> lower priority) than I2C_INIT_PRIORITY.

if ADC_ASYNC

config ADC_TLA2021_ACQUISITION_THREAD_PRIORITY
	int "Priority for the data acquisition thread"
	default 0
	help
	  Execution priority for the internal data acquisition thread.

config ADC_TLA2021_ACQUISITION_THREAD_STACK_SIZE
	int "Stack size for the data acquisition thread"
	default 512
	help
	  Stack size for the internal data acquisition thread. Requires room
	  for I2C operations.

endif # ADC_ASYNC

endif # ADC_TLA2021
