blob: ebfee55240201dcb71b3db6d9172ce0735384ea6 [file] [log] [blame]
Jean Delvaref890c6a2009-12-09 20:36:02 +01001Kernel driver adt7475
2=====================
Jordan Crouse1c301fc2009-01-15 22:27:47 +01003
Jean Delvaref890c6a2009-12-09 20:36:02 +01004Supported 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
Jordan Crouse1c301fc2009-01-15 22:27:47 +010013
Jean Delvaref890c6a2009-12-09 20:36:02 +010014Authors:
15 Jordan Crouse
16 Hans de Goede
17 Darrick J. Wong (documentation)
Jordan Crouse1c301fc2009-01-15 22:27:47 +010018
Jordan Crouse1c301fc2009-01-15 22:27:47 +010019
Jean Delvaref890c6a2009-12-09 20:36:02 +010020Description
21-----------
Jordan Crouse1c301fc2009-01-15 22:27:47 +010022
Jean Delvaref890c6a2009-12-09 20:36:02 +010023This driver implements support for the Analog Devices ADT7473 and ADT7475
24chip family. Both chips differ only in minor details. They will be
25collectively designed by the name "ADT747x" in the rest of this document.
Jordan Crouse1c301fc2009-01-15 22:27:47 +010026
Jean Delvaref890c6a2009-12-09 20:36:02 +010027The ADT747x uses the 2-wire interface compatible with the SMBus 2.0
28specification. Using an analog to digital converter it measures three (3)
29temperatures and two (2) voltages. It has four (4) 16-bit counters for
30measuring fan speed. There are three (3) PWM outputs that can be used
31to control fan speed.
Jordan Crouse1c301fc2009-01-15 22:27:47 +010032
Jean Delvaref890c6a2009-12-09 20:36:02 +010033A sophisticated control system for the PWM outputs is designed into the
34ADT747x that allows fan speed to be adjusted automatically based on any of the
35three temperature sensors. Each PWM output is individually adjustable and
36programmable. Once configured, the ADT747x will adjust the PWM outputs in
37response to the measured temperatures without further host intervention.
38This feature can also be disabled for manual control of the PWM's.
Jordan Crouse1c301fc2009-01-15 22:27:47 +010039
Jean Delvaref890c6a2009-12-09 20:36:02 +010040Each of the measured inputs (voltage, temperature, fan speed) has
41corresponding high/low limit values. The ADT747x will signal an ALARM if
42any measured value exceeds either limit.
Jordan Crouse1c301fc2009-01-15 22:27:47 +010043
Jean Delvaref890c6a2009-12-09 20:36:02 +010044The ADT747x samples all inputs continuously. The driver will not read
45the registers more often than once every other second. Further,
46configuration data is only read once per minute.
Jordan Crouse1c301fc2009-01-15 22:27:47 +010047
Jean Delvaref890c6a2009-12-09 20:36:02 +010048Special Features
49----------------
Jordan Crouse1c301fc2009-01-15 22:27:47 +010050
Jean Delvaref890c6a2009-12-09 20:36:02 +010051The ADT747x has a 10-bit ADC and can therefore measure temperatures
52with a resolution of 0.25 degree Celsius. Temperature readings can be
53configured either for two's complement format or "Offset 64" format,
54wherein 64 is subtracted from the raw value to get the temperature value.
Jordan Crouse1c301fc2009-01-15 22:27:47 +010055
Jean Delvaref890c6a2009-12-09 20:36:02 +010056The datasheet is very detailed and describes a procedure for determining
57an optimal configuration for the automatic PWM control.
Jordan Crouse1c301fc2009-01-15 22:27:47 +010058
Jean Delvaref890c6a2009-12-09 20:36:02 +010059Fan Speed Control
60-----------------
Jordan Crouse1c301fc2009-01-15 22:27:47 +010061
Jean Delvaref890c6a2009-12-09 20:36:02 +010062The driver exposes two trip points per PWM channel.
Jordan Crouse1c301fc2009-01-15 22:27:47 +010063
Jean Delvaref890c6a2009-12-09 20:36:02 +010064point1: Set the PWM speed at the lower temperature bound
65point2: Set the PWM speed at the higher temperature bound
Jordan Crouse1c301fc2009-01-15 22:27:47 +010066
Jean Delvaref890c6a2009-12-09 20:36:02 +010067The ADT747x will scale the PWM linearly between the lower and higher PWM
68speed when the temperature is between the two temperature boundaries.
69Temperature boundaries are associated to temperature channels rather than
70PWM outputs, and a given PWM output can be controlled by several temperature
71channels. As a result, the ADT747x may compute more than one PWM value
72for a channel at a given time, in which case the maximum value (fastest
73fan speed) is applied. PWM values range from 0 (off) to 255 (full speed).
Jordan Crouse1c301fc2009-01-15 22:27:47 +010074
Jean Delvaref890c6a2009-12-09 20:36:02 +010075Fan speed may be set to maximum when the temperature sensor associated with
76the PWM control exceeds temp#_max.
Jordan Crouse1c301fc2009-01-15 22:27:47 +010077
Jean Delvaref890c6a2009-12-09 20:36:02 +010078Notes
79-----
Jordan Crouse1c301fc2009-01-15 22:27:47 +010080
Jean Delvaref890c6a2009-12-09 20:36:02 +010081The nVidia binary driver presents an ADT7473 chip via an on-card i2c bus.
82Unfortunately, they fail to set the i2c adapter class, so this driver may
83fail to find the chip until the nvidia driver is patched.