1 |
3 |
xianfeng |
Kernel driver smsc47m1
|
2 |
|
|
======================
|
3 |
|
|
|
4 |
|
|
Supported chips:
|
5 |
|
|
* SMSC LPC47B27x, LPC47M112, LPC47M10x, LPC47M13x, LPC47M14x,
|
6 |
|
|
LPC47M15x and LPC47M192
|
7 |
|
|
Addresses scanned: none, address read from Super I/O config space
|
8 |
|
|
Prefix: 'smsc47m1'
|
9 |
|
|
Datasheets:
|
10 |
|
|
http://www.smsc.com/main/datasheets/47b27x.pdf
|
11 |
|
|
http://www.smsc.com/main/datasheets/47m10x.pdf
|
12 |
|
|
http://www.smsc.com/main/datasheets/47m112.pdf
|
13 |
|
|
http://www.smsc.com/main/tools/discontinued/47m13x.pdf
|
14 |
|
|
http://www.smsc.com/main/datasheets/47m14x.pdf
|
15 |
|
|
http://www.smsc.com/main/tools/discontinued/47m15x.pdf
|
16 |
|
|
http://www.smsc.com/main/datasheets/47m192.pdf
|
17 |
|
|
* SMSC LPC47M292
|
18 |
|
|
Addresses scanned: none, address read from Super I/O config space
|
19 |
|
|
Prefix: 'smsc47m2'
|
20 |
|
|
Datasheet: Not public
|
21 |
|
|
* SMSC LPC47M997
|
22 |
|
|
Addresses scanned: none, address read from Super I/O config space
|
23 |
|
|
Prefix: 'smsc47m1'
|
24 |
|
|
Datasheet: none
|
25 |
|
|
|
26 |
|
|
Authors:
|
27 |
|
|
Mark D. Studebaker ,
|
28 |
|
|
With assistance from Bruce Allen , and his
|
29 |
|
|
fan.c program: http://www.lsc-group.phys.uwm.edu/%7Eballen/driver/
|
30 |
|
|
Gabriele Gorla ,
|
31 |
|
|
Jean Delvare
|
32 |
|
|
|
33 |
|
|
Description
|
34 |
|
|
-----------
|
35 |
|
|
|
36 |
|
|
The Standard Microsystems Corporation (SMSC) 47M1xx Super I/O chips
|
37 |
|
|
contain monitoring and PWM control circuitry for two fans.
|
38 |
|
|
|
39 |
|
|
The LPC47M15x, LPC47M192 and LPC47M292 chips contain a full 'hardware
|
40 |
|
|
monitoring block' in addition to the fan monitoring and control. The
|
41 |
|
|
hardware monitoring block is not supported by this driver, use the
|
42 |
|
|
smsc47m192 driver for that.
|
43 |
|
|
|
44 |
|
|
No documentation is available for the 47M997, but it has the same device
|
45 |
|
|
ID as the 47M15x and 47M192 chips and seems to be compatible.
|
46 |
|
|
|
47 |
|
|
Fan rotation speeds are reported in RPM (rotations per minute). An alarm is
|
48 |
|
|
triggered if the rotation speed has dropped below a programmable limit. Fan
|
49 |
|
|
readings can be divided by a programmable divider (1, 2, 4 or 8) to give
|
50 |
|
|
the readings more range or accuracy. Not all RPM values can accurately be
|
51 |
|
|
represented, so some rounding is done. With a divider of 2, the lowest
|
52 |
|
|
representable value is around 2600 RPM.
|
53 |
|
|
|
54 |
|
|
PWM values are from 0 to 255.
|
55 |
|
|
|
56 |
|
|
If an alarm triggers, it will remain triggered until the hardware register
|
57 |
|
|
is read at least once. This means that the cause for the alarm may
|
58 |
|
|
already have disappeared! Note that in the current implementation, all
|
59 |
|
|
hardware registers are read whenever any data is read (unless it is less
|
60 |
|
|
than 1.5 seconds since the last update). This means that you can easily
|
61 |
|
|
miss once-only alarms.
|
62 |
|
|
|
63 |
|
|
|
64 |
|
|
**********************
|
65 |
|
|
The lm_sensors project gratefully acknowledges the support of
|
66 |
|
|
Intel in the development of this driver.
|