drm/qxl: add delayed fb operations
[firefly-linux-kernel-4.4.55.git] / Documentation / hwmon / ds1621
index 1ebaa2485770adb43f4cdb9adee80f7d4e1ef734..896cdc972ca8edcd9e7ae31081aeb39cc4d91eb3 100644 (file)
@@ -4,24 +4,27 @@ Kernel driver ds1621
 Supported chips:
   * Dallas Semiconductor / Maxim Integrated DS1621
     Prefix: 'ds1621'
-    Addresses scanned: I2C 0x48 - 0x4f
+    Addresses scanned: none
     Datasheet: Publicly available from www.maximintegrated.com
 
   * Dallas Semiconductor DS1625
-    Prefix:
-     'ds1621' - if binding via _detect function
-     'ds1625' - explicit instantiation
-    Addresses scanned: I2C 0x48 - 0x4f
+    Prefix: 'ds1625'
+    Addresses scanned: none
     Datasheet: Publicly available from www.datasheetarchive.com
 
   * Maxim Integrated DS1631
     Prefix: 'ds1631'
-    Addresses scanned: I2C 0x48 - 0x4f
+    Addresses scanned: none
     Datasheet: Publicly available from www.maximintegrated.com
 
   * Maxim Integrated DS1721
     Prefix: 'ds1721'
-    Addresses scanned: I2C 0x48 - 0x4f
+    Addresses scanned: none
+    Datasheet: Publicly available from www.maximintegrated.com
+
+  * Maxim Integrated DS1731
+    Prefix: 'ds1731'
+    Addresses scanned: none
     Datasheet: Publicly available from www.maximintegrated.com
 
 Authors:
@@ -70,50 +73,71 @@ any of the limits have ever been met or exceeded since last power-up or
 reset. Be aware: When testing, it showed that the status of Tout can change
 with neither of the alarms set.
 
-Temperature conversion of the DS1621 takes up to 1000ms; internal access to
-non-volatile registers may last for 10ms or below.
+Since there is no version or vendor identification register, there is
+no unique identification for these devices. Therefore, explicit device
+instantiation is required for correct device identification and functionality
+(one device per address in this address range: 0x48..0x4f).
 
 The DS1625 is pin compatible and functionally equivalent with the DS1621,
-but the DS1621 is meant to replace it. The DS1631 and DS1721 are also
-pin compatible with the DS1621, but provide multi-resolution support.
-
-Since there is no version register, there is no unique identification
-for these devices. In addition, the DS1631 and DS1721 will emulate a
-DS1621 device, if not explicitly instantiated (why? because the detect
-function compares the temperature register values bits and checks for a
-9-bit resolution). Therefore, for correct device identification and
-functionality, explicit device instantiation is required.
-
-The DS1721 is pin compatible with the DS1621, has an accuracy of +/- 1.0
-degree Celsius over a -10 to +85 degree range, a minimum/maximum alarm
-default setting of 75 and 80 degrees respectively, and a maximum conversion
-time of 750ms.
-
-In addition, the DS1721 supports four resolution settings from 9 to 12 bits
-(defined in degrees C per LSB: 0.5, 0.25, 0.125, and 0.0625, respectifully),
-that are set at device power on to the highest resolution: 12-bits.
-
-One additional note about the ds1721 is that although the data sheet says
-the temperature flags (THF and TLF) are used internally, these flags do
-get set and cleared as the actual temperature crosses the min or max settings.
-
-The DS1631 is also pin compatible with the DS1621 and feature compatible with
-the DS1721, however the DS1631 accuracy is +/- 0.5 degree Celsius over the
-same range.
-
-Changing the DS1631/1721 resolution mode affects the conversion time and can be
-done from userspace, via the device 'update_interval' sysfs attribute. This
-attribute will normalize range of input values to the device maximum resolution
-values defined in the datasheet as such:
+but the DS1621 is meant to replace it. The DS1631, DS1721, and DS1731 are
+also pin compatible with the DS1621 and provide multi-resolution support.
+
+Additionally, the DS1721 data sheet says the temperature flags (THF and TLF)
+are used internally, however, these flags do get set and cleared as the actual
+temperature crosses the min or max settings (which by default are set to 75
+and 80 degrees respectively).
+
+Temperature Conversion:
+-----------------------
+DS1621 - 750ms (older devices may take up to 1000ms)
+DS1625 - 500ms
+DS1631 - 93ms..750ms for 9..12 bits resolution, respectively.
+DS1721 - 93ms..750ms for 9..12 bits resolution, respectively.
+DS1731 - 93ms..750ms for 9..12 bits resolution, respectively.
+
+Note:
+On the DS1621, internal access to non-volatile registers may last for 10ms
+or less (unverified on the other devices).
+
+Temperature Accuracy:
+---------------------
+DS1621: +/- 0.5 degree Celsius (from 0 to +70 degrees)
+DS1625: +/- 0.5 degree Celsius (from 0 to +70 degrees)
+DS1631: +/- 0.5 degree Celsius (from 0 to +70 degrees)
+DS1721: +/- 1.0 degree Celsius (from -10 to +85 degrees)
+DS1731: +/- 1.0 degree Celsius (from -10 to +85 degrees)
+
+Note:
+Please refer to the device datasheets for accuracy at other temperatures.
+
+Temperature Resolution:
+-----------------------
+As mentioned above, the DS1631, DS1721, and DS1731 provide multi-resolution
+support, which is achieved via the R0 and R1 config register bits, where:
+
+R0..R1
+------
+ 0  0 => 9 bits, 0.5 degrees Celcius
+ 1  0 => 10 bits, 0.25 degrees Celcius
+ 0  1 => 11 bits, 0.125 degrees Celcius
+ 1  1 => 12 bits, 0.0625 degrees Celcius
+
+Note:
+At initial device power-on, the default resolution is set to 12-bits.
+
+The resolution mode for the DS1631, DS1721, or DS1731 can be changed from
+userspace, via the device 'update_interval' sysfs attribute. This attribute
+will normalize the range of input values to the device maximum resolution
+values defined in the datasheet as follows:
 
 Resolution    Conversion Time    Input Range
  (C/LSB)       (msec)             (msec)
---------------------------------------------
+------------------------------------------------
 0.5             93.75              0....94
 0.25            187.5              95...187
 0.125           375                188..375
 0.0625          750                376..infinity
---------------------------------------
+------------------------------------------------
 
 The following examples show how the 'update_interval' attribute can be
 used to change the conversion time: