# Kconfig - 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

config TMP007_NAME
	string "Driver name"
	default "TMP007"
	help
	  Device name with which the TMP007 sensor is identified.

config TMP007_I2C_ADDR
	hex "I2C address for TMP006 Sensor"
	default "0x40"
	help
	  I2C address of the TMP007 sensor.

	  0x40: A0 connected GND and A1 connected to GND.
	  0x41: A0 connected VDD and A1 connected to GND.
	  0x42: A0 connected SDA and A1 connected to GND.
	  0x43: A0 connected SCL and A1 connected to GND.
	  0x44: A0 connected GND and A1 connected to VDD.
	  0x45: A0 connected VDD and A1 connected to VDD.
	  0x46: A0 connected SDA and A1 connected to VDD.
	  0x47: A0 connected SCL and A1 connected to VDD.

config TMP007_I2C_MASTER_DEV_NAME
	string "I2C master where TMP007 is connected"
	default "I2C_0"
	help
	  Specify the device name of the I2C master device to which the
	  TMP007 chip is connected.

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_GPIO_DEV_NAME
	string "GPIO device"
	default "GPIO_0"
	depends on TMP007_TRIGGER
	help
	  The device name of the GPIO device to which the TMP007 interrupt
	  (alert) pin is connected.

config TMP007_GPIO_PIN_NUM
	int "Interrupt GPIO pin number"
	default 0
	depends on TMP007_TRIGGER
	help
	  The number of the GPIO pin on which the interrupt signal from the
	  TMP007 chip will be received.

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
