Kernel driver `smsc47m1.o'
==========================

Status: Beta.

Supported chips:
  * SMSC LPC47B27x, LPC47M112, LPC47M10x, LPC47M13x, LPC47M14x,
    LPC47M15x and LPC47M192
    Prefix: 'smsc47m1'
    Addresses scanned: none, address read from Super I/O config space
    Datasheets:
	http://www.smsc.com/main/datasheets/47b27x.pdf
	http://www.smsc.com/main/datasheets/47m10x.pdf
	http://www.smsc.com/main/datasheets/47m112.pdf
	http://www.smsc.com/main/tools/discontinued/47m13x.pdf
	http://www.smsc.com/main/datasheets/47m14x.pdf
	http://www.smsc.com/main/tools/discontinued/47m15x.pdf
	http://www.smsc.com/main/datasheets/47m192.pdf
  * SMSC LPC47M292
    Prefix: 'smsc47m2'
    Addresses scanned: none, address read from Super I/O config space
    Datasheet: Not public
  * SMSC LPC47M997
    Addresses scanned: none, address read from Super I/O config space
    Prefix: 'smsc47m1'
    Datasheet: none

Authors: Mark D. Studebaker <mdsxyz123@yahoo.com>
	 With assistance from Bruce Allen <ballen@uwm.edu> and his
	 fan.c program: http://www.lsc-group.phys.uwm.edu/%7Eballen/driver/

Module Parameters
-----------------

force_addr=0xaddr	Set the I/O base address. Useful for boards
			that don't set the address in the BIOS.
			Don't use this unless the driver complains that the
			base address is not set.
			Example: 'modprobe smsc47m1 force_addr=0x680'


Description
-----------

The Standard Microsystems Corporation (SMSC) 47M1xx Super I/O chips
contain monitoring and PWM control circuitry for two fans.

The LPC47M15x, LPC47M192 and LPC47M292 chips contain a full 'hardware
monitoring block' in addition to the fan monitoring and control. The
hardware monitoring block is not supported by the driver.

No documentation is available for the 47M997, but it has the same device
ID as the 47M15x and 47M192 chips and seems to be compatible therewith.

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. 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.

PWM values are from 0 to 255. The first value in the /proc entry is
the pwm value; the second is the enable (0 or 1).

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 1.5 seconds since the last update). This means that you can easily
miss once-only alarms.


**********************
The lm_sensors project gratefully acknowledges the support of
Intel in the development of this driver.
