# MCP320x ADC configuration options

# Copyright (c) 2020 Vestas Wind Systems A/S
# SPDX-License-Identifier: Apache-2.0

config ADC_MCP320X
	bool "MCP3204/MCP3208 driver"
	default y
	depends on DT_HAS_MICROCHIP_MCP3204_ENABLED || DT_HAS_MICROCHIP_MCP3208_ENABLED
	depends on SPI
	help
	  Enable MCP3204/MCP3208 ADC driver.

	  The MCP3204/MCP3208 are 4/8 channel 12-bit A/D converters
	  with SPI interface.

if ADC_MCP320X

config ADC_MCP320X_ACQUISITION_THREAD_STACK_SIZE
	int "Stack size for the ADC data acquisition thread"
	default 512
	help
	  Size of the stack used for the internal data acquisition
	  thread.

config ADC_MCP320X_ACQUISITION_THREAD_PRIO
	int "Priority for the ADC data acquisition thread"
	default 0
	help
	  Priority level for the internal ADC data acquisition thread.

endif # ADC_MCP320X
