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

menuconfig HTS221
	bool
	prompt "HTS221 temperature and humidity sensor"
	depends on SENSOR && I2C
	default n
	help
	  Enable driver for HTS221 I2C-based temperature and humidity sensor.

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

config HTS221_I2C_MASTER_DEV_NAME
	string
	prompt "I2C master where HTS221 is connected"
	depends on HTS221
	default "I2C_0"
	help
	  Specify the device name of the I2C master device to which HTS221 is
	  connected.

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

config HTS221_TRIGGER_NONE
	bool
	prompt "No trigger"

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

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

endchoice

config HTS221_TRIGGER
	bool
	depends on HTS221

config HTS221_GPIO_DEV_NAME
	string
	prompt "GPIO device"
	default "GPIO_0"
	depends on HTS221 && HTS221_TRIGGER
	help
	  The device name of the GPIO device to which the HTS221 interrupt pin
	  is connected.

config HTS221_GPIO_PIN_NUM
	int
	prompt "Interrupt GPIO pin number"
	default 0
	depends on HTS221 && HTS221_TRIGGER
	help
	  The number of the GPIO on which the interrupt signal from the HTS221
	  chip will be received.

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

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

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