blob: 0502f2b464e1c09ec15a2cb4b9c9b3587419bb76 [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
Jean Delvared8d2ee02009-12-09 20:36:08 +010013 * Analog Devices ADT7476
14 Prefix: 'adt7476'
15 Addresses scanned: I2C 0x2C, 0x2D, 0x2E
16 Datasheet: Publicly available at the On Semiconductors website
Jean Delvare3d849982009-12-09 20:36:05 +010017 * Analog Devices ADT7490
18 Prefix: 'adt7490'
19 Addresses scanned: I2C 0x2C, 0x2D, 0x2E
20 Datasheet: Publicly available at the On Semiconductors website
Jordan Crouse1c301fc2009-01-15 22:27:47 +010021
Jean Delvaref890c6a2009-12-09 20:36:02 +010022Authors:
23 Jordan Crouse
24 Hans de Goede
25 Darrick J. Wong (documentation)
Jean Delvare3d849982009-12-09 20:36:05 +010026 Jean Delvare
Jordan Crouse1c301fc2009-01-15 22:27:47 +010027
Jordan Crouse1c301fc2009-01-15 22:27:47 +010028
Jean Delvaref890c6a2009-12-09 20:36:02 +010029Description
30-----------
Jordan Crouse1c301fc2009-01-15 22:27:47 +010031
Jean Delvared8d2ee02009-12-09 20:36:08 +010032This driver implements support for the Analog Devices ADT7473, ADT7475,
33ADT7476 and ADT7490 chip family. The ADT7473 and ADT7475 differ only in
34minor details. The ADT7476 has additional features, including extra voltage
35measurement inputs and VID support. The ADT7490 also has additional
36features, including extra voltage measurement inputs and PECI support. All
37the supported chips will be collectively designed by the name "ADT747x" in
38the rest of this document.
Jordan Crouse1c301fc2009-01-15 22:27:47 +010039
Jean Delvaref890c6a2009-12-09 20:36:02 +010040The ADT747x uses the 2-wire interface compatible with the SMBus 2.0
41specification. Using an analog to digital converter it measures three (3)
Jean Delvare3d849982009-12-09 20:36:05 +010042temperatures and two (2) or more voltages. It has four (4) 16-bit counters
43for measuring fan speed. There are three (3) PWM outputs that can be used
Jean Delvaref890c6a2009-12-09 20:36:02 +010044to control fan speed.
Jordan Crouse1c301fc2009-01-15 22:27:47 +010045
Jean Delvaref890c6a2009-12-09 20:36:02 +010046A sophisticated control system for the PWM outputs is designed into the
47ADT747x that allows fan speed to be adjusted automatically based on any of the
48three temperature sensors. Each PWM output is individually adjustable and
49programmable. Once configured, the ADT747x will adjust the PWM outputs in
50response to the measured temperatures without further host intervention.
51This feature can also be disabled for manual control of the PWM's.
Jordan Crouse1c301fc2009-01-15 22:27:47 +010052
Jean Delvaref890c6a2009-12-09 20:36:02 +010053Each of the measured inputs (voltage, temperature, fan speed) has
54corresponding high/low limit values. The ADT747x will signal an ALARM if
55any measured value exceeds either limit.
Jordan Crouse1c301fc2009-01-15 22:27:47 +010056
Jean Delvaref890c6a2009-12-09 20:36:02 +010057The ADT747x samples all inputs continuously. The driver will not read
58the registers more often than once every other second. Further,
59configuration data is only read once per minute.
Jordan Crouse1c301fc2009-01-15 22:27:47 +010060
Jean Delvare3d849982009-12-09 20:36:05 +010061Chip Differences Summary
62------------------------
63
64ADT7473:
65 * 2 voltage inputs
66 * system acoustics optimizations (not implemented)
67
68ADT7475:
69 * 2 voltage inputs
70
Jean Delvared8d2ee02009-12-09 20:36:08 +010071ADT7476:
72 * 5 voltage inputs
Jean Delvare54fe4672009-12-09 20:36:08 +010073 * VID support
Jean Delvared8d2ee02009-12-09 20:36:08 +010074
Jean Delvare3d849982009-12-09 20:36:05 +010075ADT7490:
76 * 6 voltage inputs
77 * 1 Imon input (not implemented)
78 * PECI support (not implemented)
79 * 2 GPIO pins (not implemented)
80 * system acoustics optimizations (not implemented)
81
Jean Delvaref890c6a2009-12-09 20:36:02 +010082Special Features
83----------------
Jordan Crouse1c301fc2009-01-15 22:27:47 +010084
Jean Delvaref890c6a2009-12-09 20:36:02 +010085The ADT747x has a 10-bit ADC and can therefore measure temperatures
86with a resolution of 0.25 degree Celsius. Temperature readings can be
87configured either for two's complement format or "Offset 64" format,
88wherein 64 is subtracted from the raw value to get the temperature value.
Jordan Crouse1c301fc2009-01-15 22:27:47 +010089
Jean Delvaref890c6a2009-12-09 20:36:02 +010090The datasheet is very detailed and describes a procedure for determining
91an optimal configuration for the automatic PWM control.
Jordan Crouse1c301fc2009-01-15 22:27:47 +010092
Jean Delvaref890c6a2009-12-09 20:36:02 +010093Fan Speed Control
94-----------------
Jordan Crouse1c301fc2009-01-15 22:27:47 +010095
Jean Delvaref890c6a2009-12-09 20:36:02 +010096The driver exposes two trip points per PWM channel.
Jordan Crouse1c301fc2009-01-15 22:27:47 +010097
Jean Delvaref890c6a2009-12-09 20:36:02 +010098point1: Set the PWM speed at the lower temperature bound
99point2: Set the PWM speed at the higher temperature bound
Jordan Crouse1c301fc2009-01-15 22:27:47 +0100100
Jean Delvaref890c6a2009-12-09 20:36:02 +0100101The ADT747x will scale the PWM linearly between the lower and higher PWM
102speed when the temperature is between the two temperature boundaries.
103Temperature boundaries are associated to temperature channels rather than
104PWM outputs, and a given PWM output can be controlled by several temperature
105channels. As a result, the ADT747x may compute more than one PWM value
106for a channel at a given time, in which case the maximum value (fastest
107fan speed) is applied. PWM values range from 0 (off) to 255 (full speed).
Jordan Crouse1c301fc2009-01-15 22:27:47 +0100108
Jean Delvaref890c6a2009-12-09 20:36:02 +0100109Fan speed may be set to maximum when the temperature sensor associated with
110the PWM control exceeds temp#_max.
Jordan Crouse1c301fc2009-01-15 22:27:47 +0100111
Jean Delvaref890c6a2009-12-09 20:36:02 +0100112Notes
113-----
Jordan Crouse1c301fc2009-01-15 22:27:47 +0100114
Jean Delvaref890c6a2009-12-09 20:36:02 +0100115The nVidia binary driver presents an ADT7473 chip via an on-card i2c bus.
116Unfortunately, they fail to set the i2c adapter class, so this driver may
117fail to find the chip until the nvidia driver is patched.