Krzysztof Helt | add77c6 | 2007-07-08 22:43:00 +0200 | [diff] [blame] | 1 | Kernel driver thmc50 |
| 2 | ===================== |
| 3 | |
| 4 | Supported chips: |
Mauro Carvalho Chehab | b04f2f7 | 2019-04-17 06:46:28 -0300 | [diff] [blame] | 5 | |
Krzysztof Helt | add77c6 | 2007-07-08 22:43:00 +0200 | [diff] [blame] | 6 | * Analog Devices ADM1022 |
Mauro Carvalho Chehab | b04f2f7 | 2019-04-17 06:46:28 -0300 | [diff] [blame] | 7 | |
Krzysztof Helt | add77c6 | 2007-07-08 22:43:00 +0200 | [diff] [blame] | 8 | Prefix: 'adm1022' |
Mauro Carvalho Chehab | b04f2f7 | 2019-04-17 06:46:28 -0300 | [diff] [blame] | 9 | |
Krzysztof Helt | add77c6 | 2007-07-08 22:43:00 +0200 | [diff] [blame] | 10 | Addresses scanned: I2C 0x2c - 0x2e |
Mauro Carvalho Chehab | b04f2f7 | 2019-04-17 06:46:28 -0300 | [diff] [blame] | 11 | |
Krzysztof Helt | add77c6 | 2007-07-08 22:43:00 +0200 | [diff] [blame] | 12 | Datasheet: http://www.analog.com/en/prod/0,2877,ADM1022,00.html |
Mauro Carvalho Chehab | b04f2f7 | 2019-04-17 06:46:28 -0300 | [diff] [blame] | 13 | |
Krzysztof Helt | add77c6 | 2007-07-08 22:43:00 +0200 | [diff] [blame] | 14 | * Texas Instruments THMC50 |
Mauro Carvalho Chehab | b04f2f7 | 2019-04-17 06:46:28 -0300 | [diff] [blame] | 15 | |
Krzysztof Helt | add77c6 | 2007-07-08 22:43:00 +0200 | [diff] [blame] | 16 | Prefix: 'thmc50' |
Mauro Carvalho Chehab | b04f2f7 | 2019-04-17 06:46:28 -0300 | [diff] [blame] | 17 | |
Krzysztof Helt | add77c6 | 2007-07-08 22:43:00 +0200 | [diff] [blame] | 18 | Addresses scanned: I2C 0x2c - 0x2e |
Mauro Carvalho Chehab | b04f2f7 | 2019-04-17 06:46:28 -0300 | [diff] [blame] | 19 | |
| 20 | Datasheet: http://www.ti.com/ |
| 21 | |
Krzysztof Helt | add77c6 | 2007-07-08 22:43:00 +0200 | [diff] [blame] | 22 | |
| 23 | Author: Krzysztof Helt <krzysztof.h1@wp.pl> |
| 24 | |
| 25 | This driver was derived from the 2.4 kernel thmc50.c source file. |
| 26 | |
| 27 | Credits: |
Mauro Carvalho Chehab | b04f2f7 | 2019-04-17 06:46:28 -0300 | [diff] [blame] | 28 | |
Krzysztof Helt | add77c6 | 2007-07-08 22:43:00 +0200 | [diff] [blame] | 29 | thmc50.c (2.4 kernel): |
Mauro Carvalho Chehab | b04f2f7 | 2019-04-17 06:46:28 -0300 | [diff] [blame] | 30 | |
| 31 | - Frodo Looijaard <frodol@dds.nl> |
| 32 | - Philip Edelbrock <phil@netroedge.com> |
Krzysztof Helt | add77c6 | 2007-07-08 22:43:00 +0200 | [diff] [blame] | 33 | |
| 34 | Module Parameters |
| 35 | ----------------- |
| 36 | |
| 37 | * adm1022_temp3: short array |
Mauro Carvalho Chehab | b04f2f7 | 2019-04-17 06:46:28 -0300 | [diff] [blame] | 38 | List of adapter,address pairs to force chips into ADM1022 mode with |
| 39 | second remote temperature. This does not work for original THMC50 chips. |
Krzysztof Helt | add77c6 | 2007-07-08 22:43:00 +0200 | [diff] [blame] | 40 | |
| 41 | Description |
| 42 | ----------- |
| 43 | |
| 44 | The THMC50 implements: an internal temperature sensor, support for an |
| 45 | external diode-type temperature sensor (compatible w/ the diode sensor inside |
| 46 | many processors), and a controllable fan/analog_out DAC. For the temperature |
| 47 | sensors, limits can be set through the appropriate Overtemperature Shutdown |
| 48 | register and Hysteresis register. Each value can be set and read to half-degree |
| 49 | accuracy. An alarm is issued (usually to a connected LM78) when the |
| 50 | temperature gets higher then the Overtemperature Shutdown value; it stays on |
| 51 | until the temperature falls below the Hysteresis value. All temperatures are in |
| 52 | degrees Celsius, and are guaranteed within a range of -55 to +125 degrees. |
| 53 | |
| 54 | The THMC50 only updates its values each 1.5 seconds; reading it more often |
| 55 | will do no harm, but will return 'old' values. |
| 56 | |
| 57 | The THMC50 is usually used in combination with LM78-like chips, to measure |
| 58 | the temperature of the processor(s). |
| 59 | |
| 60 | The ADM1022 works the same as THMC50 but it is faster (5 Hz instead of |
| 61 | 1 Hz for THMC50). It can be also put in a new mode to handle additional |
| 62 | remote temperature sensor. The driver use the mode set by BIOS by default. |
| 63 | |
| 64 | In case the BIOS is broken and the mode is set incorrectly, you can force |
| 65 | the mode with additional remote temperature with adm1022_temp3 parameter. |
| 66 | A typical symptom of wrong setting is a fan forced to full speed. |
| 67 | |
| 68 | Driver Features |
| 69 | --------------- |
| 70 | |
| 71 | The driver provides up to three temperatures: |
| 72 | |
Mauro Carvalho Chehab | b04f2f7 | 2019-04-17 06:46:28 -0300 | [diff] [blame] | 73 | temp1 |
| 74 | - internal |
| 75 | temp2 |
| 76 | - remote |
| 77 | temp3 |
| 78 | - 2nd remote only for ADM1022 |
Krzysztof Helt | add77c6 | 2007-07-08 22:43:00 +0200 | [diff] [blame] | 79 | |
Mauro Carvalho Chehab | b04f2f7 | 2019-04-17 06:46:28 -0300 | [diff] [blame] | 80 | pwm1 |
| 81 | - fan speed (0 = stop, 255 = full) |
| 82 | pwm1_mode |
| 83 | - always 0 (DC mode) |
Krzysztof Helt | add77c6 | 2007-07-08 22:43:00 +0200 | [diff] [blame] | 84 | |
| 85 | The value of 0 for pwm1 also forces FAN_OFF signal from the chip, |
| 86 | so it stops fans even if the value 0 into the ANALOG_OUT register does not. |
| 87 | |
| 88 | The driver was tested on Compaq AP550 with two ADM1022 chips (one works |
| 89 | in the temp3 mode), five temperature readings and two fans. |