# FDC2X1X Capacitance-to-Digital Converter configuration options

# Copyright (c) 2020 arithmetics.io
# SPDX-License-Identifier: Apache-2.0

menuconfig FDC2X1X
	bool "FDC2X1X Capacitance-to-Digital Converter"
	depends on I2C && NEWLIB_LIBC
	help
	  Enable driver for FDC2X1X Capacitance-to-Digital Converter.

if FDC2X1X

choice
	prompt "Trigger mode"
	default FDC2X1X_TRIGGER_NONE
	help
	  Specify the type of triggering used by the driver.

config FDC2X1X_TRIGGER_NONE
	bool "No trigger"

config FDC2X1X_TRIGGER_GLOBAL_THREAD
	bool "Use global thread"
	depends on GPIO
	select FDC2X1X_TRIGGER

config FDC2X1X_TRIGGER_OWN_THREAD
	bool "Use own thread"
	depends on GPIO
	select FDC2X1X_TRIGGER

endchoice

config FDC2X1X_TRIGGER
	bool

config FDC2X1X_THREAD_PRIORITY
	int "Thread priority"
	depends on FDC2X1X_TRIGGER_OWN_THREAD && FDC2X1X_TRIGGER
	default 10
	help
	  Priority of thread used by the driver to handle interrupts.

config FDC2X1X_THREAD_STACK_SIZE
	int "Thread stack size"
	depends on FDC2X1X_TRIGGER_OWN_THREAD && FDC2X1X_TRIGGER
	default 1024
	help
	  Stack size of thread used by the driver to handle interrupts.

endif # FDC2X1X
