提交 a6bffb69 编写于 作者: H Harald Geyer 提交者: Jonathan Cameron

iio: dht11: Improve detection of sensor type

The old code was based on a DHT11 datasheet which specifies a measurement
range of 20%-90% RH. Turns out the sensor actually reports values outside
this range, so we should support it as far as possible.
Reported-by: NEdward Attfield <edward@attfield.ca>
Signed-off-by: NHarald Geyer <harald@ccbib.org>
Signed-off-by: NJonathan Cameron <Jonathan.Cameron@huawei.com>
上级 7fe2241c
...@@ -159,7 +159,7 @@ static int dht11_decode(struct dht11 *dht11, int offset) ...@@ -159,7 +159,7 @@ static int dht11_decode(struct dht11 *dht11, int offset)
} }
dht11->timestamp = ktime_get_boot_ns(); dht11->timestamp = ktime_get_boot_ns();
if (hum_int < 20) { /* DHT22 */ if (hum_int < 4) { /* DHT22: 100000 = (3*256+232)*100 */
dht11->temperature = (((temp_int & 0x7f) << 8) + temp_dec) * dht11->temperature = (((temp_int & 0x7f) << 8) + temp_dec) *
((temp_int & 0x80) ? -100 : 100); ((temp_int & 0x80) ? -100 : 100);
dht11->humidity = ((hum_int << 8) + hum_dec) * 100; dht11->humidity = ((hum_int << 8) + hum_dec) * 100;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册