# Kconfig - SHT3xD temperature and humidity sensor configuration options

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

menuconfig SHT3XD
	bool
	prompt "SHT3xD Temperature and Humidity Sensor"
	depends on I2C
	default n
	help
	  Enable driver for SHT3xD temperature and humidity sensors.

config SHT3XD_NAME
	string
	prompt "Driver name"
	default "SHT3XD"
	depends on SHT3XD
	help
	  Device name with which the SHT3xD sensor is identified.

config SHT3XD_I2C_ADDR
	hex "SHT3XD I2C address"
	depends on SHT3XD
	default "0x44"
	help
	  I2C address of the SHT3xD sensor.

	  0x44: Choose this option if the ADDR pin is connected to VSS.
	  0x45: Choose this option if the ADDR pin is connected to VDD.

config SHT3XD_I2C_MASTER_DEV_NAME
	string
	prompt "I2C master where SHT3xD is connected"
	depends on SHT3XD
	default "I2C_0"
	help
	  Specify the device name of the I2C master device to which the
	  SHT3xD chip is connected.

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

config SHT3XD_TRIGGER_NONE
	bool
	prompt "No trigger"

config SHT3XD_TRIGGER_GLOBAL_THREAD
	bool
	prompt "Use global thread"
	depends on GPIO
	select SHT3XD_TRIGGER

config SHT3XD_TRIGGER_OWN_THREAD
	bool
	prompt "Use own thread"
	depends on GPIO
	select SHT3XD_TRIGGER

endchoice

config SHT3XD_TRIGGER
	bool
	depends on SHT3XD

config SHT3XD_GPIO_DEV_NAME
	string
	prompt "GPIO device"
	default "GPIO_0"
	depends on SHT3XD && SHT3XD_TRIGGER
	help
	  The device name of the GPIO device to which the SHT3xD interrupt
	  pins are connected.

config SHT3XD_GPIO_PIN_NUM
	int
	prompt "Interrupt GPIO pin number"
	default 0
	depends on SHT3XD && SHT3XD_TRIGGER
	help
	  The number of the GPIO on which the interrupt signal from the
	  SHT3xD chip will be received.

config SHT3XD_THREAD_PRIORITY
	int
	prompt "Thread priority"
	depends on SHT3XD && SHT3XD_TRIGGER_OWN_THREAD
	default 10
	help
	  Priority of thread used by the driver to handle interrupts.

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

choice
	prompt "Measurement repeatability"
	depends on SHT3XD
	default SHT3XD_REPEATABILITY_HIGH
	help
	  Repeatability modes differ with respect to measurement duration,
	  noise level and energy consumption.

config SHT3XD_REPEATABILITY_LOW
	bool
	prompt "low"

config SHT3XD_REPEATABILITY_MEDIUM
	bool
	prompt "medium"

config SHT3XD_REPEATABILITY_HIGH
	bool
	prompt "high"

endchoice

choice
	prompt "Measurements per second"
	depends on SHT3XD
	default SHT3XD_MPS_1
	help
	  Number of measurements per second.

config SHT3XD_MPS_05
	bool
	prompt "0.5"

config SHT3XD_MPS_1
	bool
	prompt "1"

config SHT3XD_MPS_2
	bool
	prompt "2"

config SHT3XD_MPS_4
	bool
	prompt "4"

config SHT3XD_MPS_10
	bool
	prompt "10"

endchoice
