# Copyright (c) 2023 Grinn
# SPDX -License-Identifier: Apache-2.0

config ADC_AD559X
	bool "AD559x ADC driver"
	default y
	depends on DT_HAS_ADI_AD559X_ADC_ENABLED
	select MFD
	help
	  Enable the AD559x ADC driver.

config ADC_AD559X_ACQUISITION_THREAD_STACK_SIZE
	int "Stack size for the ADC data acquisition thread"
	depends on ADC_AD559X
	default 384
	help
	  Size of the stack used for the internal data acquisition
	  thread.

config ADC_AD559X_ACQUISITION_THREAD_PRIO
	int "Priority for the ADC data acquisition thread"
	depends on ADC_AD559X
	default 0
	help
	  Priority level for the internal ADC data acquisition thread.
