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 37Parasite powered devices are limited to one slave performing a 38temperature conversion at a time. If none of the devices are parasite 39powered it would be possible to convert all the devices at the same 40time and then go back to read individual sensors. That isn't 41currently supported. The driver also doesn't support reduced 42precision (which would also reduce the conversion time) when reading values. 43 44Writing a value between 9 and 12 to the sysfs w1_slave file will change the 45precision of the sensor for the next readings. This value is in (volatile) 46SRAM, so it is reset when the sensor gets power-cycled. 47 48To store the current precision configuration into EEPROM, the value 0 49has to be written to the sysfs w1_slave file. Since the EEPROM has a limited 50amount of writes (>50k), this command should be used wisely. 51 52The module parameter strong_pullup can be set to 0 to disable the 53strong pullup, 1 to enable autodetection or 2 to force strong pullup. 54In case of autodetection, the driver will use the "READ POWER SUPPLY" 55command to check if there are pariste powered devices on the bus. 56If so, it will activate the master's strong pullup. 57In case the detection of parasite devices using this command fails 58(seems to be the case with some DS18S20) the strong pullup can 59be force-enabled. 60 61If the strong pullup is enabled, the master's strong pullup will be 62driven when the conversion is taking place, provided the master driver 63does support the strong pullup (or it falls back to a pullup 64resistor). The DS18b20 temperature sensor specification lists a 65maximum current draw of 1.5mA and that a 5k pullup resistor is not 66sufficient. The strong pullup is designed to provide the additional 67current required. 68 69The DS28EA00 provides an additional two pins for implementing a sequence 70detection algorithm. This feature allows you to determine the physical 71location of the chip in the 1-wire bus without needing pre-existing 72knowledge of the bus ordering. Support is provided through the sysfs 73w1_seq file. The file will contain a single line with an integer value 74representing the device index in the bus starting at 0. 75