| | 11 | Author: Frodo Looijaard <frodol@dds.nl> and Philip Edelbrock |
|---|
| | 12 | <phil@netroedge.com> |
|---|
| | 13 | |
|---|
| | 14 | |
|---|
| | 15 | Module Parameters |
|---|
| | 16 | ----------------- |
|---|
| | 17 | |
|---|
| | 18 | * force: short array (min = 1, max = 48) |
|---|
| | 19 | List of adapter,address pairs to boldly assume to be present |
|---|
| | 20 | * force_lm80: short array (min = 1, max = 48) |
|---|
| | 21 | List of adapter,address pairs which are unquestionably assumed to contain |
|---|
| | 22 | a `lm80' chip |
|---|
| | 23 | * ignore: short array (min = 1, max = 48) |
|---|
| | 24 | List of adapter,address pairs not to scan |
|---|
| | 25 | * ignore_range: short array (min = 1, max = 48) |
|---|
| | 26 | List of adapter,start-addr,end-addr triples not to scan |
|---|
| | 27 | * probe: short array (min = 1, max = 48) |
|---|
| | 28 | List of adapter,address pairs to scan additionally |
|---|
| | 29 | * probe_range: short array (min = 1, max = 48) |
|---|
| | 30 | List of adapter,start-addr,end-addr triples to scan additionally |
|---|
| | 31 | |
|---|
| | 32 | |
|---|
| | 33 | Description |
|---|
| | 34 | ----------- |
|---|
| | 35 | |
|---|
| | 36 | This driver implements support for the National Semiconductors LM80. |
|---|
| | 37 | It is descibed as a `Serial Interface ACPI-Compatible Microprocessor |
|---|
| | 38 | System Hardware Monitor'. |
|---|
| | 39 | |
|---|
| | 40 | The LM80 implements one temperature sensor, two FAN rotation speed sensors, |
|---|
| | 41 | seven voltage sensors, alarms, and some miscellaneous stuff. |
|---|
| | 42 | |
|---|
| | 43 | Temperatures are measured in degrees Celcius. There are two sets of limits |
|---|
| | 44 | which operate independently. When the HOT Temperature Limit is crossed, |
|---|
| | 45 | this will cause an alarm that will be reasserted until the temperature |
|---|
| | 46 | drops below the HOT Hysteris. The Overtemperature Shotdown (OS) limits |
|---|
| | 47 | should work in the same way (but this must be checked; the datasheet |
|---|
| | 48 | is unclear about this). Measurements are guaranteed between -55 and |
|---|
| | 49 | +125 degrees. The current temperature measurement has a resolution of |
|---|
| | 50 | 0.0625 degrees; the limits have a resolution of 1 degree. |
|---|
| | 51 | |
|---|
| | 52 | FAN rotation speeds are reported in RPM (rotations per minute). An alarm is |
|---|
| | 53 | triggered if the rotation speed has dropped below a programmable limit. FAN |
|---|
| | 54 | readings can be divided by a programmable divider (1, 2, 4 or 8) to give |
|---|
| | 55 | the readings more range or accuracy. This is important because some FANs |
|---|
| | 56 | report only one 'tick' each rotation, while others report two - making |
|---|
| | 57 | all readings twice as high. Not all RPM values can accurately be represented, |
|---|
| | 58 | so some rounding is done. With a divider of 2, the lowest representable |
|---|
| | 59 | value is around 2600 RPM. |
|---|
| | 60 | |
|---|
| | 61 | Voltage ensors (also known as IN sensors) report their values in volts. |
|---|
| | 62 | An alarm is triggered if the voltage has crossed a programmable minimum |
|---|
| | 63 | or maximum limit. Note that minimum in this case always means 'closest to |
|---|
| | 64 | zero'; this is important for negative voltage measurements. All voltage |
|---|
| | 65 | inputs can measure voltages between 0 and 2.55 volts, with a resolution |
|---|
| | 66 | of 0.01 volt. |
|---|
| | 67 | |
|---|
| | 68 | If an alarm triggers, it will remain triggered until the hardware register |
|---|
| | 69 | is read at least once. This means that the cause for the alarm may |
|---|
| | 70 | already have disappeared! Note that in the current implementation, all |
|---|
| | 71 | hardware registers are read whenever any data is read (unless it is less |
|---|
| | 72 | than 2.0 seconds since the last update). This means that you can easily |
|---|
| | 73 | miss once-only alarms. |
|---|
| | 74 | |
|---|
| | 75 | The LM80 only updates its values each 1.5 seconds; reading it more often |
|---|
| | 76 | will do no harm, but will return 'old' values. |
|---|
| | 77 | |
|---|
| | 78 | |
|---|
| | 79 | Chip Features |
|---|
| | 80 | ------------- |
|---|
| | 81 | |
|---|
| | 82 | Chip `lm80' |
|---|
| | 83 | LABEL LABEL CLASS COMPUTE CLASS ACCESS MAGNITUDE |
|---|
| | 84 | in0 NONE NONE R 2 |
|---|
| | 85 | in1 NONE NONE R 2 |
|---|
| | 86 | in2 NONE NONE R 2 |
|---|
| | 87 | in3 NONE NONE R 2 |
|---|
| | 88 | in4 NONE NONE R 2 |
|---|
| | 89 | in5 NONE NONE R 2 |
|---|
| | 90 | in6 NONE NONE R 2 |
|---|
| | 91 | in0_min in0 in0 RW 2 |
|---|
| | 92 | in1_min in1 in1 RW 2 |
|---|
| | 93 | in2_min in2 in2 RW 2 |
|---|
| | 94 | in3_min in3 in3 RW 2 |
|---|
| | 95 | in4_min in4 in4 RW 2 |
|---|
| | 96 | in5_min in5 in5 RW 2 |
|---|
| | 97 | in6_min in6 in6 RW 2 |
|---|
| | 98 | in0_max in0 in0 RW 2 |
|---|
| | 99 | in1_max in1 in1 RW 2 |
|---|
| | 100 | in2_max in2 in2 RW 2 |
|---|
| | 101 | in3_max in3 in3 RW 2 |
|---|
| | 102 | in4_max in4 in4 RW 2 |
|---|
| | 103 | in5_max in5 in5 RW 2 |
|---|
| | 104 | in6_max in6 in6 RW 2 |
|---|
| | 105 | fan1 NONE NONE R 0 |
|---|
| | 106 | fan2 NONE NONE R 0 |
|---|
| | 107 | fan1_min fan1 NONE RW 0 |
|---|
| | 108 | fan2_min fan2 NONE RW 0 |
|---|
| | 109 | temp NONE NONE R 2 |
|---|
| | 110 | temp_hot_hyst temp temp RW 2 |
|---|
| | 111 | temp_hot_max temp temp RW 2 |
|---|
| | 112 | temp_os_hyst temp temp RW 2 |
|---|
| | 113 | temp_os_max temp temp RW 2 |
|---|
| | 114 | fan1_div fan1 NONE RW 0 |
|---|
| | 115 | fan2_div fan2 NONE RW 0 |
|---|
| | 116 | alarms NONE NONE R 0 |
|---|
| | 117 | |
|---|
| | 118 | LABEL FEATURE SYMBOL SYSCTL FILE:OFFSET |
|---|
| | 119 | in0 SENSORS_LM80_IN0 in0:3 |
|---|
| | 120 | in1 SENSORS_LM80_IN1 in1:3 |
|---|
| | 121 | in2 SENSORS_LM80_IN2 in2:3 |
|---|
| | 122 | in3 SENSORS_LM80_IN3 in3:3 |
|---|
| | 123 | in4 SENSORS_LM80_IN4 in4:3 |
|---|
| | 124 | in5 SENSORS_LM80_IN5 in5:3 |
|---|
| | 125 | in6 SENSORS_LM80_IN6 in6:3 |
|---|
| | 126 | in0_min SENSORS_LM80_IN0_MIN in0:1 |
|---|
| | 127 | in1_min SENSORS_LM80_IN1_MIN in1:1 |
|---|
| | 128 | in2_min SENSORS_LM80_IN2_MIN in2:1 |
|---|
| | 129 | in3_min SENSORS_LM80_IN3_MIN in3:1 |
|---|
| | 130 | in4_min SENSORS_LM80_IN4_MIN in4:1 |
|---|
| | 131 | in5_min SENSORS_LM80_IN5_MIN in5:1 |
|---|
| | 132 | in6_min SENSORS_LM80_IN6_MIN in6:1 |
|---|
| | 133 | in0_max SENSORS_LM80_IN0_MAX in0:2 |
|---|
| | 134 | in1_max SENSORS_LM80_IN1_MAX in1:2 |
|---|
| | 135 | in2_max SENSORS_LM80_IN2_MAX in2:2 |
|---|
| | 136 | in3_max SENSORS_LM80_IN3_MAX in3:2 |
|---|
| | 137 | in4_max SENSORS_LM80_IN4_MAX in4:2 |
|---|
| | 138 | in5_max SENSORS_LM80_IN5_MAX in5:2 |
|---|
| | 139 | in6_max SENSORS_LM80_IN6_MAX in6:2 |
|---|
| | 140 | fan1 SENSORS_LM80_FAN1 fan1:2 |
|---|
| | 141 | fan2 SENSORS_LM80_FAN2 fan2:2 |
|---|
| | 142 | fan1_min SENSORS_LM80_FAN1_MIN fan1:1 |
|---|
| | 143 | fan2_min SENSORS_LM80_FAN2_MIN fan2:1 |
|---|
| | 144 | temp SENSORS_LM80_TEMP temp:5 |
|---|
| | 145 | temp_hot_hyst SENSORS_LM80_TEMP_HOT_HYST temp:2 |
|---|
| | 146 | temp_hot_max SENSORS_LM80_TEMP_HOT_MAX temp:1 |
|---|
| | 147 | temp_os_hyst SENSORS_LM80_TEMP_OS_HYST temp:4 |
|---|
| | 148 | temp_os_max SENSORS_LM80_TEMP_OS_MAX temp:3 |
|---|
| | 149 | fan1_div SENSORS_LM80_FAN1_DIV fan_div:1 |
|---|
| | 150 | fan2_div SENSORS_LM80_FAN2_DIV fan_div:2 |
|---|
| | 151 | alarms SENSORS_LM80_ALARMS alarms:1 |
|---|