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

menuconfig HTS221
	bool "HTS221 temperature and humidity sensor"
	depends on I2C && HAS_DTS_I2C
	help
	  Enable driver for HTS221 I2C-based temperature and humidity sensor.

if HTS221

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

config HTS221_TRIGGER_NONE
	bool "No trigger"

config HTS221_TRIGGER_GLOBAL_THREAD
	bool "Use global thread"
	depends on GPIO
	select HTS221_TRIGGER

config HTS221_TRIGGER_OWN_THREAD
	bool "Use own thread"
	depends on GPIO
	select HTS221_TRIGGER

endchoice # HTS221_TRIGGER_MODE

config HTS221_TRIGGER
	bool

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

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

config HTS221_ODR
	string "Output data rate"
	default "1"
	help
	  Sensor output data rate expressed in samples per second.
	  Data rates supported by the chip are 1, 7 and 12.5.

endif # HTS221
