Kernel driver sht21
===================

Supported chips:
  * Sensirion SHT21
    Prefix: 'sht21'
    Addresses scanned: none
    Datasheet: Publicly available at the Sensirion website
    http://www.sensirion.com/file/datasheet_sht21

  * Sensirion SHT25
    Prefix: 'sht25'
    Addresses scanned: none
    Datasheet: Publicly available at the Sensirion website
    http://www.sensirion.com/file/datasheet_sht25

Author:
  Urs Fleisch <urs.fleisch@sensirion.com>

Description
-----------

The SHT21 and SHT25 are humidity and temperature sensors in a DFN package of
only 3 x 3 mm footprint and 1.1 mm height. The difference between the two
devices is the higher level of precision of the SHT25 (1.8% relative humidity,
0.2 degree Celsius) compared with the SHT21 (2.0% relative humidity,
0.3 degree Celsius).

The devices communicate with the I2C protocol. All sensors are set to the same
I2C address 0x40, so an entry with I2C_BOARD_INFO("sht21", 0x40) can be used
in the board setup code.

sysfs-Interface
---------------

temp1_input - temperature input
humidity1_input - humidity input
eic - Electronic Identification Code

Notes
-----

The driver uses the default resolution settings of 12 bit for humidity and 14
bit for temperature, which results in typical measurement times of 22 ms for
humidity and 66 ms for temperature. To keep self heating below 0.1 degree
Celsius, the device should not be active for more than 10% of the time,
e.g. maximum two measurements per second at the given resolution.

Different resolutions, the on-chip heater, and using the CRC checksum
are not supported yet.
