# DHT Temperature and Himidity Sensor configuration options

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

menuconfig DHT
	bool "DHT Temperature and Humidity Sensor"
	depends on GPIO
	help
	  Enable driver for the DHT temperature and humidity sensor family.

if DHT

choice
	prompt "Chip type"
	default DHT_CHIP_DHT11
	help
	  Choose desired chip type from the DHT family.

config DHT_CHIP_DHT11
	bool "DHT11"
	help
	  Choose this option to enable the DHT11 chip.

config DHT_CHIP_DHT22
	bool "DHT22"
	help
	  Choose this option to enable the DHT22 chip.

endchoice

config DHT_NAME
	string "Driver name"
	default "DHT11" if DHT_CHIP_DHT11
	default "DHT22" if DHT_CHIP_DHT22
	help
	  Device name with which the sensor is identified.

config DHT_GPIO_DEV_NAME
	string "GPIO device"
	default "GPIO_0"
	help
	  The device name of the GPIO device to which the chip's data pin
	  is connected.

config DHT_GPIO_PIN_NUM
	int "Interrupt GPIO pin number"
	default 0
	help
	  The number of the GPIO on which the chip's data pin is connected.

endif # DHT
