hwmon: (adt7475) New documentation
[safe/jmp/linux-2.6] / Documentation / hwmon / adt7475
1 Kernel driver adt7475
2 =====================
3
4 Supported chips:
5   * Analog Devices ADT7473
6     Prefix: 'adt7473'
7     Addresses scanned: I2C 0x2C, 0x2D, 0x2E
8     Datasheet: Publicly available at the On Semiconductors website
9   * Analog Devices ADT7475
10     Prefix: 'adt7475'
11     Addresses scanned: I2C 0x2E
12     Datasheet: Publicly available at the On Semiconductors website
13
14 Authors:
15         Jordan Crouse
16         Hans de Goede
17         Darrick J. Wong (documentation)
18
19
20 Description
21 -----------
22
23 This driver implements support for the Analog Devices ADT7473 and ADT7475
24 chip family. Both chips differ only in minor details. They will be
25 collectively designed by the name "ADT747x" in the rest of this document.
26
27 The ADT747x uses the 2-wire interface compatible with the SMBus 2.0
28 specification. Using an analog to digital converter it measures three (3)
29 temperatures and two (2) voltages. It has four (4) 16-bit counters for
30 measuring fan speed. There are three (3) PWM outputs that can be used
31 to control fan speed.
32
33 A sophisticated control system for the PWM outputs is designed into the
34 ADT747x that allows fan speed to be adjusted automatically based on any of the
35 three temperature sensors. Each PWM output is individually adjustable and
36 programmable. Once configured, the ADT747x will adjust the PWM outputs in
37 response to the measured temperatures without further host intervention.
38 This feature can also be disabled for manual control of the PWM's.
39
40 Each of the measured inputs (voltage, temperature, fan speed) has
41 corresponding high/low limit values. The ADT747x will signal an ALARM if
42 any measured value exceeds either limit.
43
44 The ADT747x samples all inputs continuously. The driver will not read
45 the registers more often than once every other second. Further,
46 configuration data is only read once per minute.
47
48 Special Features
49 ----------------
50
51 The ADT747x has a 10-bit ADC and can therefore measure temperatures
52 with a resolution of 0.25 degree Celsius. Temperature readings can be
53 configured either for two's complement format or "Offset 64" format,
54 wherein 64 is subtracted from the raw value to get the temperature value.
55
56 The datasheet is very detailed and describes a procedure for determining
57 an optimal configuration for the automatic PWM control.
58
59 Fan Speed Control
60 -----------------
61
62 The driver exposes two trip points per PWM channel.
63
64 point1: Set the PWM speed at the lower temperature bound
65 point2: Set the PWM speed at the higher temperature bound
66
67 The ADT747x will scale the PWM linearly between the lower and higher PWM
68 speed when the temperature is between the two temperature boundaries.
69 Temperature boundaries are associated to temperature channels rather than
70 PWM outputs, and a given PWM output can be controlled by several temperature
71 channels. As a result, the ADT747x may compute more than one PWM value
72 for a channel at a given time, in which case the maximum value (fastest
73 fan speed) is applied. PWM values range from 0 (off) to 255 (full speed).
74
75 Fan speed may be set to maximum when the temperature sensor associated with
76 the PWM control exceeds temp#_max.
77
78 Notes
79 -----
80
81 The nVidia binary driver presents an ADT7473 chip via an on-card i2c bus.
82 Unfortunately, they fail to set the i2c adapter class, so this driver may
83 fail to find the chip until the nvidia driver is patched.