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