Kernel driver sis5595
=====================

Supported chips:
  * Silicon Integrated Systems Corp. SiS5595 Southbridge Hardware Monitor
    Prefix: 'sis5595'
    Addresses scanned: ISA in PCI-space encoded address
    Datasheet: Publicly available at the Silicon Integrated Systems Corp. site.

Authors:
        Kyösti Mälkki <kmalkki@cc.hut.fi>,
        Mark D. Studebaker <mdsxyz123@yahoo.com>,
        Aurelien Jarno <aurelien@aurel32.net> 2.6 port

   SiS southbridge has a LM78-like chip integrated on the same IC.
   This driver is a customized copy of lm78.c

   Supports following revisions:
       Version         PCI ID          PCI Revision
       1               1039/0008       AF or less
       2               1039/0008       B0 or greater

   Note: these chips contain a 0008 device which is incompatible with the
        5595. We recognize these by the presence of the listed
        "blacklist" PCI ID and refuse to load.

   NOT SUPPORTED       PCI ID          BLACKLIST PCI ID
        540            0008            0540
        550            0008            0550
       5513            0008            5511
       5581            0008            5597
       5582            0008            5597
       5597            0008            5597
        630            0008            0630
        645            0008            0645
        730            0008            0730
        735            0008            0735


Module Parameters
-----------------
force_addr=0xaddr	Set the I/O base address. Useful for boards
			that don't set the address in the BIOS. Does not do a
			PCI force; the device must still be present in lspci.
			Don't use this unless the driver complains that the
			base address is not set.
			Example: 'modprobe sis5595 force_addr=0x290'


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

The SiS5595 southbridge has integrated hardware monitor functions. It also
has an I2C bus, but this driver only supports the hardware monitor. For the
I2C bus driver see i2c-sis5595.

The SiS5595 implements zero or one temperature sensor, two fan speed
sensors, four or five voltage sensors, and alarms.

On the first version of the chip, there are four voltage sensors and one
temperature sensor.

On the second version of the chip, the temperature sensor (temp) and the
fifth voltage sensor (in4) share a pin which is configurable, but not
through the driver. Sorry. The driver senses the configuration of the pin,
which was hopefully set by the BIOS.

Temperatures are measured in degrees Celsius. An alarm is triggered once
when the max is crossed; it is also triggered when it drops below the min
value. Measurements are guaranteed between -55 and +125 degrees, with 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. 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 sensors (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 4.08 volts, with a resolution of
0.016 volt.

In addition to the alarms described above, there is a BTI alarm, which gets
triggered when an external chip has crossed its limits. Usually, this is
connected to some LM75-like chip; if at least one crosses its limits, this
bit gets set.

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 SiS5595 only updates its values each 1.5 seconds; reading it more often
will do no harm, but will return 'old' values.

Problems
--------
Some chips refuse to be enabled. We don't know why.
The driver will recognize this and print a message in dmesg.