# TMP007 infrared thermopile sensor configuration options

# Copyright (c) 2016 Intel Corporation
# SPDX-License-Identifier: Apache-2.0

menuconfig TMP007
	bool "TMP007 Infrared Thermopile Sensor"
	depends on I2C
	help
	  Enable driver for TMP007 infrared thermopile sensors.

if TMP007

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

config TMP007_TRIGGER_NONE
	bool "No trigger"

config TMP007_TRIGGER_GLOBAL_THREAD
	bool "Use global thread"
	depends on GPIO
	select TMP007_TRIGGER

config TMP007_TRIGGER_OWN_THREAD
	bool "Use own thread"
	depends on GPIO
	select TMP007_TRIGGER

endchoice

config TMP007_TRIGGER
	bool

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

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

endif # TMP007
