mirror of
https://github.com/torvalds/linux.git
synced 2024-11-24 21:21:41 +00:00
9d613d9b8a
The temperature/humidity sensors of the STS3x/SHT3x family are calibrated and factory-programmed with a unique serial number. For some sensors, this serial number can be used to obtain a calibration certificate via an API provided by the manufacturer (Sensirion). Expose the serial number via debugfs. Tested with: 2x STS31, 1x STS32, 1x SHT31 Signed-off-by: Stefan Gloor <code@stefan-gloor.ch> Link: https://lore.kernel.org/r/20240131111512.25321-2-code@stefan-gloor.ch Signed-off-by: Guenter Roeck <linux@roeck-us.net>
113 lines
4.4 KiB
ReStructuredText
113 lines
4.4 KiB
ReStructuredText
Kernel driver sht3x
|
|
===================
|
|
|
|
Supported chips:
|
|
|
|
* Sensirion SHT3x-DIS
|
|
|
|
Prefix: 'sht3x'
|
|
|
|
Addresses scanned: none
|
|
|
|
Datasheets:
|
|
- https://sensirion.com/media/documents/213E6A3B/63A5A569/Datasheet_SHT3x_DIS.pdf
|
|
- https://sensirion.com/media/documents/051DF50B/639C8101/Sensirion_Humidity_and_Temperature_Sensors_Datasheet_SHT33.pdf
|
|
|
|
* Sensirion STS3x-DIS
|
|
|
|
Prefix: 'sts3x'
|
|
|
|
Addresses scanned: none
|
|
|
|
Datasheets:
|
|
- https://sensirion.com/media/documents/1DA31AFD/61641F76/Sensirion_Temperature_Sensors_STS3x_Datasheet.pdf
|
|
- https://sensirion.com/media/documents/292A335C/65537BAF/Sensirion_Datasheet_STS32_STS33.pdf
|
|
|
|
Author:
|
|
|
|
- David Frey <david.frey@sensirion.com>
|
|
- Pascal Sachs <pascal.sachs@sensirion.com>
|
|
|
|
Description
|
|
-----------
|
|
|
|
This driver implements support for the Sensirion SHT3x-DIS and STS3x-DIS
|
|
series of humidity and temperature sensors. Temperature is measured in degrees
|
|
celsius, relative humidity is expressed as a percentage. In the sysfs interface,
|
|
all values are scaled by 1000, i.e. the value for 31.5 degrees celsius is 31500.
|
|
|
|
The device communicates with the I2C protocol. Sensors can have the I2C
|
|
addresses 0x44 or 0x45 (0x4a or 0x4b for sts3x), depending on the wiring. See
|
|
Documentation/i2c/instantiating-devices.rst for methods to instantiate the
|
|
device.
|
|
|
|
Even if sht3x sensor supports clock-stretch (blocking mode) and non-stretch
|
|
(non-blocking mode) in single-shot mode, this driver only supports the latter.
|
|
|
|
The sht3x sensor supports a single shot mode as well as 5 periodic measure
|
|
modes, which can be controlled with the update_interval sysfs interface.
|
|
The allowed update_interval in milliseconds are as follows:
|
|
|
|
===== ======= ====================
|
|
0 single shot mode
|
|
2000 0.5 Hz periodic measurement
|
|
1000 1 Hz periodic measurement
|
|
500 2 Hz periodic measurement
|
|
250 4 Hz periodic measurement
|
|
100 10 Hz periodic measurement
|
|
===== ======= ====================
|
|
|
|
In the periodic measure mode, the sensor automatically triggers a measurement
|
|
with the configured update interval on the chip. When a temperature or humidity
|
|
reading exceeds the configured limits, the alert attribute is set to 1 and
|
|
the alert pin on the sensor is set to high.
|
|
When the temperature and humidity readings move back between the hysteresis
|
|
values, the alert bit is set to 0 and the alert pin on the sensor is set to
|
|
low.
|
|
|
|
The serial number exposed to debugfs allows for unique identification of the
|
|
sensors. For sts32, sts33 and sht33, the manufacturer provides calibration
|
|
certificates through an API.
|
|
|
|
sysfs-Interface
|
|
---------------
|
|
|
|
=================== ============================================================
|
|
temp1_input: temperature input
|
|
humidity1_input: humidity input
|
|
temp1_max: temperature max value
|
|
temp1_max_hyst: temperature hysteresis value for max limit
|
|
humidity1_max: humidity max value
|
|
humidity1_max_hyst: humidity hysteresis value for max limit
|
|
temp1_min: temperature min value
|
|
temp1_min_hyst: temperature hysteresis value for min limit
|
|
humidity1_min: humidity min value
|
|
humidity1_min_hyst: humidity hysteresis value for min limit
|
|
temp1_alarm: alarm flag is set to 1 if the temperature is outside the
|
|
configured limits. Alarm only works in periodic measure mode
|
|
humidity1_alarm: alarm flag is set to 1 if the humidity is outside the
|
|
configured limits. Alarm only works in periodic measure mode
|
|
heater_enable: heater enable, heating element removes excess humidity from
|
|
sensor:
|
|
|
|
- 0: turned off
|
|
- 1: turned on
|
|
update_interval: update interval, 0 for single shot, interval in msec
|
|
for periodic measurement. If the interval is not supported
|
|
by the sensor, the next faster interval is chosen
|
|
repeatability: write or read repeatability, higher repeatability means
|
|
longer measurement duration, lower noise level and
|
|
larger energy consumption:
|
|
|
|
- 0: low repeatability
|
|
- 1: medium repeatability
|
|
- 2: high repeatability
|
|
=================== ============================================================
|
|
|
|
debugfs-Interface
|
|
-----------------
|
|
|
|
=================== ============================================================
|
|
serial_number: unique serial number of the sensor in decimal
|
|
=================== ============================================================
|