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

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_TLA2021
