# Copyright (c) 2022 Würth Elektronik eiSos GmbH & Co. KG
# SPDX-License-Identifier: Apache-2.0

menuconfig WSEN_TIDS
	bool "WSEN-TIDS temperature sensor"
	default y
	depends on DT_HAS_WE_WSEN_TIDS_ENABLED
	select I2C if $(dt_compat_on_bus,$(DT_COMPAT_WE_WSEN_TIDS),i2c)
	select HAS_WESENSORS
	help
	  Enable driver for the WSEN-TIDS I2C-based temperature sensor.

if WSEN_TIDS

choice WSEN_TIDS_TRIGGER_MODE
	prompt "Trigger mode"
	default WSEN_TIDS_TRIGGER_NONE
	help
	  Specify the type of triggering to be used by the driver.

config WSEN_TIDS_TRIGGER_NONE
	bool "No trigger"

config WSEN_TIDS_TRIGGER_GLOBAL_THREAD
	bool "Use global thread"
	depends on GPIO
	select WSEN_TIDS_TRIGGER

config WSEN_TIDS_TRIGGER_OWN_THREAD
	bool "Use own thread"
	depends on GPIO
	select WSEN_TIDS_TRIGGER

endchoice # WSEN_TIDS_TRIGGER_MODE

config WSEN_TIDS_TRIGGER
	bool

config WSEN_TIDS_THREAD_PRIORITY
	int "Thread priority"
	depends on WSEN_TIDS_TRIGGER_OWN_THREAD
	default 10
	help
	  Priority of thread used by the driver to handle interrupts.

config WSEN_TIDS_THREAD_STACK_SIZE
	int "Thread stack size"
	depends on WSEN_TIDS_TRIGGER_OWN_THREAD
	default 1024
	help
	  Stack size of thread used by the driver to handle interrupts.

endif # WSEN_TIDS
