# Kconfig - TMP007 infrared thermopile sensor configuration options

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

menuconfig TMP007
	bool
	prompt "TMP007 Infrared Thermopile Sensor"
	depends on SENSOR && I2C
	default n
	help
	  Enable driver for TMP007 infrared thermopile sensors.

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

config TMP007_I2C_ADDR
	hex
	prompt "I2C address for TMP006 Sensor"
	depends on TMP007
	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
	prompt "I2C master where TMP007 is connected"
	depends on TMP007
	default "I2C_0"
	help
	  Specify the device name of the I2C master device to which the
	  TMP007 chip is connected.

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

config TMP007_TRIGGER_NONE
	bool
	prompt "No trigger"

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

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

endchoice

config TMP007_TRIGGER
	bool
	depends on TMP007

config TMP007_GPIO_DEV_NAME
	string
	prompt "GPIO device"
	default "GPIO_0"
	depends on TMP007 && 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
	prompt "Interrupt GPIO pin number"
	default 0
	depends on TMP007 && 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
	prompt "Thread priority"
	depends on TMP007 && TMP007_TRIGGER_OWN_THREAD
	default 10
	help
	  Priority of thread used by the driver to handle interrupts.

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