Commit | Line | Data |
---|---|---|
d664a480 DW |
1 | Kernel driver adt7470 |
2 | ===================== | |
3 | ||
4 | Supported chips: | |
5 | * Analog Devices ADT7470 | |
6 | Prefix: 'adt7470' | |
7 | Addresses scanned: I2C 0x2C, 0x2E, 0x2F | |
8 | Datasheet: Publicly available at the Analog Devices website | |
9 | ||
10 | Author: Darrick J. Wong | |
11 | ||
12 | Description | |
13 | ----------- | |
14 | ||
15 | This driver implements support for the Analog Devices ADT7470 chip. There may | |
16 | be other chips that implement this interface. | |
17 | ||
18 | The ADT7470 uses the 2-wire interface compatible with the SMBus 2.0 | |
19 | specification. Using an analog to digital converter it measures up to ten (10) | |
20 | external temperatures. It has four (4) 16-bit counters for measuring fan speed. | |
21 | There are four (4) PWM outputs that can be used to control fan speed. | |
22 | ||
23 | A sophisticated control system for the PWM outputs is designed into the ADT7470 | |
24 | that allows fan speed to be adjusted automatically based on any of the ten | |
25 | temperature sensors. Each PWM output is individually adjustable and | |
26 | programmable. Once configured, the ADT7470 will adjust the PWM outputs in | |
27 | response to the measured temperatures with further host intervention. This | |
28 | feature can also be disabled for manual control of the PWM's. | |
29 | ||
30 | Each of the measured inputs (temperature, fan speed) has corresponding high/low | |
31 | limit values. The ADT7470 will signal an ALARM if any measured value exceeds | |
32 | either limit. | |
33 | ||
34 | The ADT7470 DOES NOT sample all inputs continuously. A single pin on the | |
35 | ADT7470 is connected to a multitude of thermal diodes, but the chip must be | |
36 | instructed explicitly to read the multitude of diodes. If you want to use | |
37 | automatic fan control mode, you must manually read any of the temperature | |
38 | sensors or the fan control algorithm will not run. The chip WILL NOT DO THIS | |
39 | AUTOMATICALLY; this must be done from userspace. This may be a bug in the chip | |
40 | design, given that many other AD chips take care of this. The driver will not | |
41 | read the registers more often than once every 5 seconds. Further, | |
42 | configuration data is only read once per minute. | |
43 | ||
44 | Special Features | |
45 | ---------------- | |
46 | ||
47 | The ADT7470 has a 8-bit ADC and is capable of measuring temperatures with 1 | |
48 | degC resolution. | |
49 | ||
50 | The Analog Devices datasheet is very detailed and describes a procedure for | |
51 | determining an optimal configuration for the automatic PWM control. | |
52 | ||
53 | Configuration Notes | |
54 | ------------------- | |
55 | ||
56 | Besides standard interfaces driver adds the following: | |
57 | ||
58 | * PWM Control | |
59 | ||
60 | * pwm#_auto_point1_pwm and pwm#_auto_point1_temp and | |
61 | * pwm#_auto_point2_pwm and pwm#_auto_point2_temp - | |
62 | ||
63 | point1: Set the pwm speed at a lower temperature bound. | |
64 | point2: Set the pwm speed at a higher temperature bound. | |
65 | ||
66 | The ADT7470 will scale the pwm between the lower and higher pwm speed when | |
67 | the temperature is between the two temperature boundaries. PWM values range | |
68 | from 0 (off) to 255 (full speed). Fan speed will be set to maximum when the | |
69 | temperature sensor associated with the PWM control exceeds | |
70 | pwm#_auto_point2_temp. | |
71 | ||
72 | Notes | |
73 | ----- | |
74 | ||
75 | As stated above, the temperature inputs must be read periodically from | |
76 | userspace in order for the automatic pwm algorithm to run. |