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.

