1======================
2Kernel driver w1_therm
3======================
4
5Supported chips:
6
7  * Maxim ds18*20 based temperature sensors.
8  * Maxim ds1825 based temperature sensors.
9
10Author: Evgeniy Polyakov <johnpol@2ka.mipt.ru>
11
12
13Description
14-----------
15
16w1_therm provides basic temperature conversion for ds18*20 devices, and the
17ds28ea00 device.
18
19Supported family codes:
20
21====================	====
22W1_THERM_DS18S20	0x10
23W1_THERM_DS1822		0x22
24W1_THERM_DS18B20	0x28
25W1_THERM_DS1825		0x3B
26W1_THERM_DS28EA00	0x42
27====================	====
28
29Support is provided through the sysfs w1_slave file. Each open and
30read sequence will initiate a temperature conversion then provide two
31lines of ASCII output. The first line contains the nine hex bytes
32read along with a calculated crc value and YES or NO if it matched.
33If the crc matched the returned values are retained. The second line
34displays the retained values along with a temperature in millidegrees
35Centigrade after t=.
36
37Alternatively, temperature can be read using temperature sysfs, it
38return only temperature in millidegrees Centigrade.
39
40A bulk read of all devices on the bus could be done writing 'trigger'
41in the therm_bulk_read sysfs entry at w1_bus_master level. This will
42sent the convert command on all devices on the bus, and if parasite
43powered devices are detected on the bus (and strong pullup is enable
44in the module), it will drive the line high during the longer conversion
45time required by parasited powered device on the line. Reading
46therm_bulk_read will return 0 if no bulk conversion pending,
47-1 if at least one sensor still in conversion, 1 if conversion is complete
48but at least one sensor value has not been read yet. Result temperature is
49then accessed by reading the temperature sysfs entry of each device, which
50may return empty if conversion is still in progress. Note that if a bulk
51read is sent but one sensor is not read immediately, the next access to
52temperature on this device will return the temperature measured at the
53time of issue of the bulk read command (not the current temperature).
54
55Writing a value between 9 and 12 to the sysfs w1_slave file will change the
56precision of the sensor for the next readings. This value is in (volatile)
57SRAM, so it is reset when the sensor gets power-cycled.
58
59To store the current precision configuration into EEPROM, the value 0
60has to be written to the sysfs w1_slave file. Since the EEPROM has a limited
61amount of writes (>50k), this command should be used wisely.
62
63Alternatively, resolution can be set or read (value from 9 to 12) using the
64dedicated resolution sysfs entry on each device. This sysfs entry is not
65present for devices not supporting this feature. Driver will adjust the
66correct conversion time for each device regarding to its resolution setting.
67In particular, strong pullup will be applied if required during the conversion
68duration.
69
70The write-only sysfs entry eeprom is an alternative for EEPROM operations:
71  * 'save': will save device RAM to EEPROM
72  * 'restore': will restore EEPROM data in device RAM.
73
74ext_power syfs entry allow tho check the power status of each device.
75  * '0': device parasite powered
76  * '1': device externally powered
77
78sysfs alarms allow read or write TH and TL (Temperature High an Low) alarms.
79Values shall be space separated and in the device range (typical -55 degC
80to 125 degC). Values are integer as they are store in a 8bit register in
81the device. Lowest value is automatically put to TL.Once set, alarms could
82be search at master level.
83
84The module parameter strong_pullup can be set to 0 to disable the
85strong pullup, 1 to enable autodetection or 2 to force strong pullup.
86In case of autodetection, the driver will use the "READ POWER SUPPLY"
87command to check if there are pariste powered devices on the bus.
88If so, it will activate the master's strong pullup.
89In case the detection of parasite devices using this command fails
90(seems to be the case with some DS18S20) the strong pullup can
91be force-enabled.
92
93If the strong pullup is enabled, the master's strong pullup will be
94driven when the conversion is taking place, provided the master driver
95does support the strong pullup (or it falls back to a pullup
96resistor).  The DS18b20 temperature sensor specification lists a
97maximum current draw of 1.5mA and that a 5k pullup resistor is not
98sufficient.  The strong pullup is designed to provide the additional
99current required.
100
101The DS28EA00 provides an additional two pins for implementing a sequence
102detection algorithm.  This feature allows you to determine the physical
103location of the chip in the 1-wire bus without needing pre-existing
104knowledge of the bus ordering.  Support is provided through the sysfs
105w1_seq file.  The file will contain a single line with an integer value
106representing the device index in the bus starting at 0.
107