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

menuconfig HTS221
	bool
	prompt "HTS221 temperature and humidity sensor"
	depends on 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.
