Kernel driver via686a
=====================

Supported chips:
  * Via VT82C686A, VT82C686B  Southbridge Integrated Hardware Monitor
    Prefix: 'via686a'
    Addresses scanned: ISA in PCI-space encoded address
    Datasheet: On request through web form (http://www.via.com.tw/en/support/datasheets/)

Authors:
        Kyösti Mälkki <kmalkki@cc.hut.fi>,
        Mark D. Studebaker <mdsxyz123@yahoo.com>
        Bob Dougherty <bobd@stanford.edu>
        (Some conversion-factor data were contributed by
        Jonathan Teh Soon Yew <j.teh@iname.com>
        and Alex van Kaam <darkside@chello.nl>.)

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

force_addr=0xaddr       Set the I/O base address. Useful for boards that
                        don't set the address in the BIOS. Look for a BIOS
                        upgrade before resorting to this. Does not do a
                        PCI force; the via686a must still be present in lspci.
                        Don't use this unless the driver complains that the
                        base address is not set.
                        Example: 'modprobe via686a force_addr=0x6000'

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

The driver does not distinguish between the chips and reports
all as a 686A.

The Via 686a southbridge has integrated hardware monitor functionality.
It also has an I2C bus, but this driver only supports the hardware monitor.
For the I2C bus driver, see <file:Documentation/i2c/busses/i2c-viapro>

The Via 686a implements three temperature sensors, two fan rotation speed
sensors, five voltage sensors and alarms.

Temperatures are measured in degrees Celsius. An alarm is triggered once
when the Overtemperature Shutdown limit is crossed; it is triggered again
as soon as it drops below the hysteresis value.

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. Voltages are internally scalled, so each voltage channel
has a different resolution and range.

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

Known Issues
------------

This driver handles sensors integrated in some VIA south bridges. It is
possible that a motherboard maker used a VT82C686A/B chip as part of a
product design but was not interested in its hardware monitoring features,
in which case the sensor inputs will not be wired. This is the case of
the Asus K7V, A7V and A7V133 motherboards, to name only a few of them.
So, if you need the force_addr parameter, and end up with values which
don't seem to make any sense, don't look any further: your chip is simply
not wired for hardware monitoring.
