DOKK / manpages / debian 12 / freebsd-manpages / gpioths.4freebsd.en
GPIOTHS(4) Device Drivers Manual GPIOTHS(4)

gpiothsdriver for DHTxx and AM320x temperature and humidity sensors

To compile this driver into the kernel, place the following line in your kernel configuration file:

device gpioths

Alternatively, to load the driver as a module at boot time, place the following line in loader.conf(5):

gpioths_load="YES"

The gpioths driver supports the DHTxx and AM320x family of temperature and humidity sensors. The driver automatically reads the values from the sensor once every 5 seconds, and makes the results available via sysctl(8) variables.

The gpioths driver provides support for the following devices:

DHT11 DHT12
DHT21 DHT22
AM3201 AM3202

The supported devices are all similar to each other, varying primarily in accuracy and resolution. The devices require a single wire for data communications, using a custom protocol which is not compatible with Maxim's 1-wire(tm). The AM320x devices also support connection to an i2c bus, but this driver supports only the single-wire connection option.

Sysctl variables are used to access the most recent temperature and humidity measurements.

dev.gpioths.<unit>.temp
The current temperature in integer deciKelvins. Note that sysctl(8) will convert those units to display in decimal degrees Celcius.
dev.gpioths.<unit>.hum
The current relative humidity, as an integer percentage.
dev.gpioths.<unit>.fails
The number of failed attempts to communicate with the sensor since the last good access. Cleared whenever a set of measurements is successfully retrieved.

On an fdt(4) based system, a gpioths device node is typically defined directly under the root node, or under a simplebus node that represents a collection of devices on a board.

The following properties are required in the gpioths device subnode:

compatible
Must be "dht11".
gpios
A reference to the gpio device and pin for data communications.

/dts-v1/;
/plugin/;
#include <dt-bindings/gpio/gpio.h>

/ {
    compatible = "wand,imx6q-wandboard";
};

&{/} {
    dht0 {
        compatible = "dht11";
        gpios = <&gpio5 15 GPIO_ACTIVE_HIGH>;
    };
};

On a device.hints(5) based system, such as MIPS, these values are configurable for gpioths:

hint.gpioths.<unit>.at
The gpiobus(4) instance the gpioths instance is attached to.
hint.gpioths.pins
A bitmask with a single bit set to indicate which gpio pin on the gpiobus(4) to use for data communications.

fdt(4), gpiobus(4), sysctl(8)

The gpioths driver first appeared in FreeBSD 11.1.

December 8, 2019 Debian