| 1 | Kernel driver `lm80.o' |
|---|
| 2 | ====================== |
|---|
| 3 | |
|---|
| 4 | Status: Complete and tested |
|---|
| 5 | |
|---|
| 6 | Supported chips: |
|---|
| 7 | * National Semiconductor LM80 |
|---|
| 8 | Prefix: 'lm80' |
|---|
| 9 | Addresses scanned: I2C 0x20 - 0x2f |
|---|
| 10 | |
|---|
| 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 Semiconductor 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 Celsius. 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 Hysteresis. 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. Not all RPM values can accurately be |
|---|
| 56 | represented, so some rounding is done. With a divider of 2, the lowest |
|---|
| 57 | representable value is around 2600 RPM. |
|---|
| 58 | |
|---|
| 59 | Voltage ensors (also known as IN sensors) report their values in volts. |
|---|
| 60 | An alarm is triggered if the voltage has crossed a programmable minimum |
|---|
| 61 | or maximum limit. Note that minimum in this case always means 'closest to |
|---|
| 62 | zero'; this is important for negative voltage measurements. All voltage |
|---|
| 63 | inputs can measure voltages between 0 and 2.55 volts, with a resolution |
|---|
| 64 | of 0.01 volt. |
|---|
| 65 | |
|---|
| 66 | If an alarm triggers, it will remain triggered until the hardware register |
|---|
| 67 | is read at least once. This means that the cause for the alarm may |
|---|
| 68 | already have disappeared! Note that in the current implementation, all |
|---|
| 69 | hardware registers are read whenever any data is read (unless it is less |
|---|
| 70 | than 2.0 seconds since the last update). This means that you can easily |
|---|
| 71 | miss once-only alarms. |
|---|
| 72 | |
|---|
| 73 | The LM80 only updates its values each 1.5 seconds; reading it more often |
|---|
| 74 | will do no harm, but will return 'old' values. |
|---|
| 75 | |
|---|
| 76 | |
|---|
| 77 | Chip Features |
|---|
| 78 | ------------- |
|---|
| 79 | |
|---|
| 80 | Chip `lm80' |
|---|
| 81 | LABEL LABEL CLASS COMPUTE CLASS ACCESS MAGNITUDE |
|---|
| 82 | in0 NONE NONE R 2 |
|---|
| 83 | in1 NONE NONE R 2 |
|---|
| 84 | in2 NONE NONE R 2 |
|---|
| 85 | in3 NONE NONE R 2 |
|---|
| 86 | in4 NONE NONE R 2 |
|---|
| 87 | in5 NONE NONE R 2 |
|---|
| 88 | in6 NONE NONE R 2 |
|---|
| 89 | in0_min in0 in0 RW 2 |
|---|
| 90 | in1_min in1 in1 RW 2 |
|---|
| 91 | in2_min in2 in2 RW 2 |
|---|
| 92 | in3_min in3 in3 RW 2 |
|---|
| 93 | in4_min in4 in4 RW 2 |
|---|
| 94 | in5_min in5 in5 RW 2 |
|---|
| 95 | in6_min in6 in6 RW 2 |
|---|
| 96 | in0_max in0 in0 RW 2 |
|---|
| 97 | in1_max in1 in1 RW 2 |
|---|
| 98 | in2_max in2 in2 RW 2 |
|---|
| 99 | in3_max in3 in3 RW 2 |
|---|
| 100 | in4_max in4 in4 RW 2 |
|---|
| 101 | in5_max in5 in5 RW 2 |
|---|
| 102 | in6_max in6 in6 RW 2 |
|---|
| 103 | fan1 NONE NONE R 0 |
|---|
| 104 | fan2 NONE NONE R 0 |
|---|
| 105 | fan1_min fan1 NONE RW 0 |
|---|
| 106 | fan2_min fan2 NONE RW 0 |
|---|
| 107 | temp NONE NONE R 2 |
|---|
| 108 | temp_hot_hyst temp temp RW 2 |
|---|
| 109 | temp_hot_max temp temp RW 2 |
|---|
| 110 | temp_os_hyst temp temp RW 2 |
|---|
| 111 | temp_os_max temp temp RW 2 |
|---|
| 112 | fan1_div fan1 NONE RW 0 |
|---|
| 113 | fan2_div fan2 NONE RW 0 |
|---|
| 114 | alarms NONE NONE R 0 |
|---|
| 115 | |
|---|
| 116 | LABEL FEATURE SYMBOL SYSCTL FILE:OFFSET |
|---|
| 117 | in0 SENSORS_LM80_IN0 in0:3 |
|---|
| 118 | in1 SENSORS_LM80_IN1 in1:3 |
|---|
| 119 | in2 SENSORS_LM80_IN2 in2:3 |
|---|
| 120 | in3 SENSORS_LM80_IN3 in3:3 |
|---|
| 121 | in4 SENSORS_LM80_IN4 in4:3 |
|---|
| 122 | in5 SENSORS_LM80_IN5 in5:3 |
|---|
| 123 | in6 SENSORS_LM80_IN6 in6:3 |
|---|
| 124 | in0_min SENSORS_LM80_IN0_MIN in0:1 |
|---|
| 125 | in1_min SENSORS_LM80_IN1_MIN in1:1 |
|---|
| 126 | in2_min SENSORS_LM80_IN2_MIN in2:1 |
|---|
| 127 | in3_min SENSORS_LM80_IN3_MIN in3:1 |
|---|
| 128 | in4_min SENSORS_LM80_IN4_MIN in4:1 |
|---|
| 129 | in5_min SENSORS_LM80_IN5_MIN in5:1 |
|---|
| 130 | in6_min SENSORS_LM80_IN6_MIN in6:1 |
|---|
| 131 | in0_max SENSORS_LM80_IN0_MAX in0:2 |
|---|
| 132 | in1_max SENSORS_LM80_IN1_MAX in1:2 |
|---|
| 133 | in2_max SENSORS_LM80_IN2_MAX in2:2 |
|---|
| 134 | in3_max SENSORS_LM80_IN3_MAX in3:2 |
|---|
| 135 | in4_max SENSORS_LM80_IN4_MAX in4:2 |
|---|
| 136 | in5_max SENSORS_LM80_IN5_MAX in5:2 |
|---|
| 137 | in6_max SENSORS_LM80_IN6_MAX in6:2 |
|---|
| 138 | fan1 SENSORS_LM80_FAN1 fan1:2 |
|---|
| 139 | fan2 SENSORS_LM80_FAN2 fan2:2 |
|---|
| 140 | fan1_min SENSORS_LM80_FAN1_MIN fan1:1 |
|---|
| 141 | fan2_min SENSORS_LM80_FAN2_MIN fan2:1 |
|---|
| 142 | temp SENSORS_LM80_TEMP temp:5 |
|---|
| 143 | temp_hot_hyst SENSORS_LM80_TEMP_HOT_HYST temp:2 |
|---|
| 144 | temp_hot_max SENSORS_LM80_TEMP_HOT_MAX temp:1 |
|---|
| 145 | temp_os_hyst SENSORS_LM80_TEMP_OS_HYST temp:4 |
|---|
| 146 | temp_os_max SENSORS_LM80_TEMP_OS_MAX temp:3 |
|---|
| 147 | fan1_div SENSORS_LM80_FAN1_DIV fan_div:1 |
|---|
| 148 | fan2_div SENSORS_LM80_FAN2_DIV fan_div:2 |
|---|
| 149 | alarms SENSORS_LM80_ALARMS alarms:1 |
|---|