mirror of
https://github.com/lm-sensors/lm-sensors.git
synced 2026-11-12 16:50:15 +00:00
Documentation for the LM80 module
Also a very slight formatting improvement for the module parameters documentation script, and a typo from the LM78 documentation removed. git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@393 7894878c-1315-0410-8ee3-d5d059ff63e0
This commit is contained in:
1 parent
174f451f7a
commit
0b3a22ba4c
4 files changed
+177
-26
No files matched your search
@@ -8,6 +8,11 @@ KERNEL MODULES
|
||||
* maxilife.c: Round REG_TO_VID correctly
|
||||
* icspll.c: Rewrite. The current implementation simply can't work at all.
|
||||
It needs i2c-level access (too bad for SMBus-only adapters).
|
||||
* w83781d: Some features are still unsupported for the W8378[23]. For
|
||||
example, the new fan_divs (register 0x5d) and the extended beeps
|
||||
(bank 4 register 0x53). Also, alarms seem to give strange results
|
||||
sometimes, and there are some other minor problems, as indicated by
|
||||
Jonathan Bradshaw <jonathan@NrgUp.Com>
|
||||
* Create wait-queues for bus locking instead of pure semaphores in the i2c
|
||||
base modules, to make it more interactive (right now one process can
|
||||
monopolize the entire adapter)
|
||||
@@ -33,6 +38,8 @@ KERNEL MODULES
|
||||
* adm9240: check whether the current voltage computations are correct.
|
||||
Probably not, as they are different from the datasheet specifications.
|
||||
Also check for the supported dallas chip.
|
||||
* lm80: Check how OS alarms work. At page 17 of the sheet, it tells
|
||||
something completely different from the description at page 25.
|
||||
|
||||
LIBRARY
|
||||
=======
|
||||
|
||||
+2
-2
@@ -47,7 +47,7 @@ Module Parameters
|
||||
Description
|
||||
-----------
|
||||
|
||||
This driver implements support for the National Semiconductor LM78, LM78-J
|
||||
This driver implements support for the National Semiconductors LM78, LM78-J
|
||||
and LM79. They are described as `Microprocessor System Hardware Monitors'.
|
||||
|
||||
There is almost no difference between the three supported chips. Functionally,
|
||||
@@ -55,7 +55,7 @@ the LM78 and LM78-J are exactly identical. The LM79 has one more VID line,
|
||||
which is used to report the lower voltages newer Pentium processors use.
|
||||
From here on, LM7* means either of these three types.
|
||||
|
||||
The LM7* implements one temperatur sensor, three FAN rotation speed sensors,
|
||||
The LM7* implements one temperature sensor, three FAN rotation speed sensors,
|
||||
seven voltage sensors, VID lines, alarms, and some miscellaneous stuff.
|
||||
|
||||
Temperatures are measured in degrees Celcius. An alarm is triggered once
|
||||
|
||||
+148
-4
@@ -1,7 +1,151 @@
|
||||
This driver is for the LM80.
|
||||
Kernel driver `lm80.o'
|
||||
======================
|
||||
|
||||
It is quite similar to the LM78, except that it is I2C bus only
|
||||
and has two fan inputs instead of three.
|
||||
Status: Complete and tested
|
||||
|
||||
For further information, see document lm78.
|
||||
Supported chips:
|
||||
* National Semiconductors LM80
|
||||
Prefix `lm80'
|
||||
Addresses scanned: I2C 0x20 - 0x2f (inclusive)
|
||||
|
||||
Author: Frodo Looijaard <frodol@dds.nl> and Philip Edelbrock
|
||||
<phil@netroedge.com>
|
||||
|
||||
|
||||
Module Parameters
|
||||
-----------------
|
||||
|
||||
* force: short array (min = 1, max = 48)
|
||||
List of adapter,address pairs to boldly assume to be present
|
||||
* force_lm80: short array (min = 1, max = 48)
|
||||
List of adapter,address pairs which are unquestionably assumed to contain
|
||||
a `lm80' chip
|
||||
* ignore: short array (min = 1, max = 48)
|
||||
List of adapter,address pairs not to scan
|
||||
* ignore_range: short array (min = 1, max = 48)
|
||||
List of adapter,start-addr,end-addr triples not to scan
|
||||
* probe: short array (min = 1, max = 48)
|
||||
List of adapter,address pairs to scan additionally
|
||||
* probe_range: short array (min = 1, max = 48)
|
||||
List of adapter,start-addr,end-addr triples to scan additionally
|
||||
|
||||
|
||||
Description
|
||||
-----------
|
||||
|
||||
This driver implements support for the National Semiconductors LM80.
|
||||
It is descibed as a `Serial Interface ACPI-Compatible Microprocessor
|
||||
System Hardware Monitor'.
|
||||
|
||||
The LM80 implements one temperature sensor, two FAN rotation speed sensors,
|
||||
seven voltage sensors, alarms, and some miscellaneous stuff.
|
||||
|
||||
Temperatures are measured in degrees Celcius. There are two sets of limits
|
||||
which operate independently. When the HOT Temperature Limit is crossed,
|
||||
this will cause an alarm that will be reasserted until the temperature
|
||||
drops below the HOT Hysteris. The Overtemperature Shotdown (OS) limits
|
||||
should work in the same way (but this must be checked; the datasheet
|
||||
is unclear about this). Measurements are guaranteed between -55 and
|
||||
+125 degrees. The current temperature measurement has a resolution of
|
||||
0.0625 degrees; the limits have a resolution of 1 degree.
|
||||
|
||||
FAN rotation speeds are reported in RPM (rotations per minute). An alarm is
|
||||
triggered if the rotation speed has dropped below a programmable limit. FAN
|
||||
readings can be divided by a programmable divider (1, 2, 4 or 8) to give
|
||||
the readings more range or accuracy. This is important because some FANs
|
||||
report only one 'tick' each rotation, while others report two - making
|
||||
all readings twice as high. Not all RPM values can accurately be represented,
|
||||
so some rounding is done. With a divider of 2, the lowest representable
|
||||
value is around 2600 RPM.
|
||||
|
||||
Voltage ensors (also known as IN sensors) report their values in volts.
|
||||
An alarm is triggered if the voltage has crossed a programmable minimum
|
||||
or maximum limit. Note that minimum in this case always means 'closest to
|
||||
zero'; this is important for negative voltage measurements. All voltage
|
||||
inputs can measure voltages between 0 and 2.55 volts, with a resolution
|
||||
of 0.01 volt.
|
||||
|
||||
If an alarm triggers, it will remain triggered until the hardware register
|
||||
is read at least once. This means that the cause for the alarm may
|
||||
already have disappeared! Note that in the current implementation, all
|
||||
hardware registers are read whenever any data is read (unless it is less
|
||||
than 2.0 seconds since the last update). This means that you can easily
|
||||
miss once-only alarms.
|
||||
|
||||
The LM80 only updates its values each 1.5 seconds; reading it more often
|
||||
will do no harm, but will return 'old' values.
|
||||
|
||||
|
||||
Chip Features
|
||||
-------------
|
||||
|
||||
Chip `lm80'
|
||||
LABEL LABEL CLASS COMPUTE CLASS ACCESS MAGNITUDE
|
||||
in0 NONE NONE R 2
|
||||
in1 NONE NONE R 2
|
||||
in2 NONE NONE R 2
|
||||
in3 NONE NONE R 2
|
||||
in4 NONE NONE R 2
|
||||
in5 NONE NONE R 2
|
||||
in6 NONE NONE R 2
|
||||
in0_min in0 in0 RW 2
|
||||
in1_min in1 in1 RW 2
|
||||
in2_min in2 in2 RW 2
|
||||
in3_min in3 in3 RW 2
|
||||
in4_min in4 in4 RW 2
|
||||
in5_min in5 in5 RW 2
|
||||
in6_min in6 in6 RW 2
|
||||
in0_max in0 in0 RW 2
|
||||
in1_max in1 in1 RW 2
|
||||
in2_max in2 in2 RW 2
|
||||
in3_max in3 in3 RW 2
|
||||
in4_max in4 in4 RW 2
|
||||
in5_max in5 in5 RW 2
|
||||
in6_max in6 in6 RW 2
|
||||
fan1 NONE NONE R 0
|
||||
fan2 NONE NONE R 0
|
||||
fan1_min fan1 NONE RW 0
|
||||
fan2_min fan2 NONE RW 0
|
||||
temp NONE NONE R 2
|
||||
temp_hot_hyst temp temp RW 2
|
||||
temp_hot_max temp temp RW 2
|
||||
temp_os_hyst temp temp RW 2
|
||||
temp_os_max temp temp RW 2
|
||||
fan1_div fan1 NONE RW 0
|
||||
fan2_div fan2 NONE RW 0
|
||||
alarms NONE NONE R 0
|
||||
|
||||
LABEL FEATURE SYMBOL SYSCTL FILE:OFFSET
|
||||
in0 SENSORS_LM80_IN0 in0:3
|
||||
in1 SENSORS_LM80_IN1 in1:3
|
||||
in2 SENSORS_LM80_IN2 in2:3
|
||||
in3 SENSORS_LM80_IN3 in3:3
|
||||
in4 SENSORS_LM80_IN4 in4:3
|
||||
in5 SENSORS_LM80_IN5 in5:3
|
||||
in6 SENSORS_LM80_IN6 in6:3
|
||||
in0_min SENSORS_LM80_IN0_MIN in0:1
|
||||
in1_min SENSORS_LM80_IN1_MIN in1:1
|
||||
in2_min SENSORS_LM80_IN2_MIN in2:1
|
||||
in3_min SENSORS_LM80_IN3_MIN in3:1
|
||||
in4_min SENSORS_LM80_IN4_MIN in4:1
|
||||
in5_min SENSORS_LM80_IN5_MIN in5:1
|
||||
in6_min SENSORS_LM80_IN6_MIN in6:1
|
||||
in0_max SENSORS_LM80_IN0_MAX in0:2
|
||||
in1_max SENSORS_LM80_IN1_MAX in1:2
|
||||
in2_max SENSORS_LM80_IN2_MAX in2:2
|
||||
in3_max SENSORS_LM80_IN3_MAX in3:2
|
||||
in4_max SENSORS_LM80_IN4_MAX in4:2
|
||||
in5_max SENSORS_LM80_IN5_MAX in5:2
|
||||
in6_max SENSORS_LM80_IN6_MAX in6:2
|
||||
fan1 SENSORS_LM80_FAN1 fan1:2
|
||||
fan2 SENSORS_LM80_FAN2 fan2:2
|
||||
fan1_min SENSORS_LM80_FAN1_MIN fan1:1
|
||||
fan2_min SENSORS_LM80_FAN2_MIN fan2:1
|
||||
temp SENSORS_LM80_TEMP temp:5
|
||||
temp_hot_hyst SENSORS_LM80_TEMP_HOT_HYST temp:2
|
||||
temp_hot_max SENSORS_LM80_TEMP_HOT_MAX temp:1
|
||||
temp_os_hyst SENSORS_LM80_TEMP_OS_HYST temp:4
|
||||
temp_os_max SENSORS_LM80_TEMP_OS_MAX temp:3
|
||||
fan1_div SENSORS_LM80_FAN1_DIV fan_div:1
|
||||
fan2_div SENSORS_LM80_FAN2_DIV fan_div:2
|
||||
alarms SENSORS_LM80_ALARMS alarms:1
|
||||
+20
-20
@@ -21,25 +21,25 @@
|
||||
|
||||
# Use the following patch (apply by hand) if modinfo does not seem to terminate:
|
||||
#
|
||||
# *** /tmp/modutils-2.1.121/insmod/modinfo.c Mon Sep 14 20:55:28 1998
|
||||
# --- modutils-2.1.121/insmod/modinfo.c Wed Apr 14 20:54:38 1999
|
||||
# ***************
|
||||
# *** 457,462 ****
|
||||
# error_file = "modinfo";
|
||||
#
|
||||
#! while (optind < argc)
|
||||
# show_module_info(argv[optind], fmtstr, do_parameters);
|
||||
#
|
||||
# return 0;
|
||||
#--- 457,464 ----
|
||||
# error_file = "modinfo";
|
||||
#
|
||||
#! while (optind < argc) {
|
||||
# show_module_info(argv[optind], fmtstr, do_parameters);
|
||||
#+ optind ++;
|
||||
#+ }
|
||||
#
|
||||
# return 0;
|
||||
# *** /tmp/modutils-2.1.121/insmod/modinfo.c Mon Sep 14 20:55:28 1998
|
||||
# --- modutils-2.1.121/insmod/modinfo.c Wed Apr 14 20:54:38 1999
|
||||
# ***************
|
||||
# *** 457,462 ****
|
||||
# error_file = "modinfo";
|
||||
#
|
||||
# ! while (optind < argc)
|
||||
# show_module_info(argv[optind], fmtstr, do_parameters);
|
||||
#
|
||||
# return 0;
|
||||
# --- 457,464 ----
|
||||
# error_file = "modinfo";
|
||||
#
|
||||
# ! while (optind < argc) {
|
||||
# show_module_info(argv[optind], fmtstr, do_parameters);
|
||||
# + optind ++;
|
||||
# + }
|
||||
#
|
||||
# return 0;
|
||||
|
||||
|
||||
use strict;
|
||||
@@ -51,7 +51,7 @@ sub print_info
|
||||
{
|
||||
my ($modname) = @_;
|
||||
my (@lines,$line,$option,$type,$desc);
|
||||
print "Author: ", `modinfo -a $modname`, "\n\n";
|
||||
print "Author: ", wrap("Author: "," ",`modinfo -a $modname`), "\n\n";
|
||||
print "Module Parameters\n";
|
||||
print "-----------------\n";
|
||||
print "\n";
|
||||
|
||||
Reference in new issue
Block a user