Kernel driver `via686a.o'
=========================

Status: Stable.

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


Chip Features
-------------

Chip `via686a'
             LABEL        LABEL CLASS      COMPUTE CLASS ACCESS MAGNITUDE
               in0               NONE               NONE     R     2
               in1               NONE               NONE     R     2
               in2               NONE               NONE     R     2
               in3               NONE               NONE     R     2
               in4               NONE               NONE     R     2
           in0_min                in0                in0     RW    2
           in1_min                in1                in1     RW    2
           in2_min                in2                in2     RW    2
           in3_min                in3                in3     RW    2
           in4_min                in3                in3     RW    2
           in0_max                in0                in0     RW    2
           in1_max                in1                in1     RW    2
           in2_max                in2                in2     RW    2
           in3_max                in3                in3     RW    2
           in4_max                in3                in3     RW    2
              fan1               NONE               NONE     R     0
              fan2               NONE               NONE     R     0
          fan1_min               fan1               fan1     RW    0
          fan2_min               fan2               fan2     RW    0
              temp               NONE               NONE     R     1
         temp_hyst               temp               temp     RW    1
         temp_over               temp               temp     RW    1
             temp2               NONE               NONE     R     1
        temp2_hyst               temp               temp     RW    1
        temp2_over               temp               temp     RW    1
             temp3               NONE               NONE     R     1
        temp3_hyst               temp               temp     RW    1
        temp3_over               temp               temp     RW    1
          fan1_div               fan1               NONE     RW    0
          fan2_div               fan2               NONE     RW    0
            alarms               NONE               NONE     R     0

             LABEL                          FEATURE SYMBOL        SYSCTL FILE:NR
               in0                     SENSORS_VIA686A_IN0                in0:3
               in1                     SENSORS_VIA686A_IN1                in1:3
               in2                     SENSORS_VIA686A_IN2                in2:3
               in3                     SENSORS_VIA686A_IN3                in3:3
               in4                     SENSORS_VIA686A_IN4                in4:3
           in0_min                 SENSORS_VIA686A_IN0_MIN                in0:1
           in1_min                 SENSORS_VIA686A_IN1_MIN                in1:1
           in2_min                 SENSORS_VIA686A_IN2_MIN                in2:1
           in3_min                 SENSORS_VIA686A_IN3_MIN                in3:1
           in4_min                 SENSORS_VIA686A_IN4_MIN                in4:1
           in0_max                 SENSORS_VIA686A_IN0_MAX                in0:2
           in1_max                 SENSORS_VIA686A_IN1_MAX                in1:2
           in2_max                 SENSORS_VIA686A_IN2_MAX                in2:2
           in3_max                 SENSORS_VIA686A_IN3_MAX                in3:2
           in4_max                 SENSORS_VIA686A_IN4_MAX                in4:2
              fan1                    SENSORS_VIA686A_FAN1               fan1:2
              fan2                    SENSORS_VIA686A_FAN2               fan2:2
          fan1_min                SENSORS_VIA686A_FAN1_MIN               fan1:1
          fan2_min                SENSORS_VIA686A_FAN2_MIN               fan2:1
              temp                    SENSORS_VIA686A_TEMP               temp:3
         temp_hyst               SENSORS_VIA686A_TEMP_HYST               temp:2
         temp_over               SENSORS_VIA686A_TEMP_OVER               temp:1
             temp2                   SENSORS_VIA686A_TEMP2              temp2:3
        temp2_hyst              SENSORS_VIA686A_TEMP2_HYST              temp2:2
        temp2_over              SENSORS_VIA686A_TEMP2_OVER              temp2:1
             temp3                   SENSORS_VIA686A_TEMP3              temp3:3
        temp3_hyst              SENSORS_VIA686A_TEMP3_HYST              temp3:2
        temp3_over              SENSORS_VIA686A_TEMP3_OVER              temp3:1
          fan1_div                SENSORS_VIA686A_FAN1_DIV            fan_div:1
          fan2_div                SENSORS_VIA686A_FAN2_DIV            fan_div:2
            alarms                  SENSORS_VIA686A_ALARMS             alarms:1


