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