# AMG88XX infrared thermopile sensor configuration options

# Copyright (c) 2017 Phytec Messtechnik GmbH
# SPDX-License-Identifier: Apache-2.0

menuconfig AMG88XX
	bool "AMG88XX Infrared Thermopile Sensor"
	default y
	depends on DT_HAS_PANASONIC_AMG88XX_ENABLED
	depends on I2C
	help
	  Enable driver for AMG88XX infrared thermopile sensor.

if AMG88XX

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

config AMG88XX_TRIGGER_NONE
	bool "No trigger"

config AMG88XX_TRIGGER_GLOBAL_THREAD
	bool "Use global thread"
	depends on GPIO
	select AMG88XX_TRIGGER

config AMG88XX_TRIGGER_OWN_THREAD
	bool "Use own thread"
	depends on GPIO
	select AMG88XX_TRIGGER

endchoice

config AMG88XX_TRIGGER
	bool

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

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

endif # AMG88XX
