blob: d1f93af36f385f8e308e6062362eb36ba97b6312 [file] [log] [blame]
David Fries6cd15972008-10-15 22:04:43 -07001Kernel driver w1_therm
2====================
3
4Supported chips:
5 * Maxim ds18*20 based temperature sensors.
Raphael Assenatf3261df2012-08-16 12:56:40 -04006 * Maxim ds1825 based temperature sensors.
David Fries6cd15972008-10-15 22:04:43 -07007
8Author: Evgeniy Polyakov <johnpol@2ka.mipt.ru>
9
10
11Description
12-----------
13
Matt Campbelld9411e52015-04-28 07:44:17 -040014w1_therm provides basic temperature conversion for ds18*20 devices, and the
15ds28ea00 device.
David Fries6cd15972008-10-15 22:04:43 -070016supported family codes:
17W1_THERM_DS18S20 0x10
18W1_THERM_DS1822 0x22
19W1_THERM_DS18B20 0x28
Raphael Assenatf3261df2012-08-16 12:56:40 -040020W1_THERM_DS1825 0x3B
Matt Campbelld9411e52015-04-28 07:44:17 -040021W1_THERM_DS28EA00 0x42
David Fries6cd15972008-10-15 22:04:43 -070022
23Support is provided through the sysfs w1_slave file. Each open and
24read sequence will initiate a temperature conversion then provide two
25lines of ASCII output. The first line contains the nine hex bytes
26read along with a calculated crc value and YES or NO if it matched.
27If the crc matched the returned values are retained. The second line
28displays the retained values along with a temperature in millidegrees
29Centigrade after t=.
30
31Parasite powered devices are limited to one slave performing a
32temperature conversion at a time. If none of the devices are parasite
33powered it would be possible to convert all the devices at the same
34time and then go back to read individual sensors. That isn't
35currently supported. The driver also doesn't support reduced
Ben Sen0a19f122016-05-01 23:23:33 +020036precision (which would also reduce the conversion time) when reading values.
37
38Writing a value between 9 and 12 to the sysfs w1_slave file will change the
39precision of the sensor for the next readings. This value is in (volatile)
40SRAM, so it is reset when the sensor gets power-cycled.
41
42To store the current precision configuration into EEPROM, the value 0
43has to be written to the sysfs w1_slave file. Since the EEPROM has a limited
44amount of writes (>50k), this command should be used wisely.
David Fries6cd15972008-10-15 22:04:43 -070045
46The module parameter strong_pullup can be set to 0 to disable the
Michael Arndt29e55072013-02-17 20:51:20 +010047strong pullup, 1 to enable autodetection or 2 to force strong pullup.
48In case of autodetection, the driver will use the "READ POWER SUPPLY"
49command to check if there are pariste powered devices on the bus.
50If so, it will activate the master's strong pullup.
51In case the detection of parasite devices using this command fails
52(seems to be the case with some DS18S20) the strong pullup can
53be force-enabled.
54If the strong pullup is enabled, the master's strong pullup will be
55driven when the conversion is taking place, provided the master driver
56does support the strong pullup (or it falls back to a pullup
David Fries6cd15972008-10-15 22:04:43 -070057resistor). The DS18b20 temperature sensor specification lists a
58maximum current draw of 1.5mA and that a 5k pullup resistor is not
59sufficient. The strong pullup is designed to provide the additional
60current required.
Matt Campbelld9411e52015-04-28 07:44:17 -040061
62The DS28EA00 provides an additional two pins for implementing a sequence
63detection algorithm. This feature allows you to determine the physical
64location of the chip in the 1-wire bus without needing pre-existing
65knowledge of the bus ordering. Support is provided through the sysfs
66w1_seq file. The file will contain a single line with an integer value
67representing the device index in the bus starting at 0.