Kernel driver w83627hf
======================

Supported chips:
  * Winbond W83627HF (ISA accesses ONLY)
    Prefix: 'w83627hf'
    Addresses scanned: ISA address retrieved from Super I/O registers
  * Winbond W83627THF
    Prefix: 'w83627thf'
    Addresses scanned: ISA address retrieved from Super I/O registers
  * Winbond W83697HF
    Prefix: 'w83697hf'
    Addresses scanned: ISA address retrieved from Super I/O registers
  * Winbond W83637HF
    Prefix: 'w83637hf'
    Addresses scanned: ISA address retrieved from Super I/O registers
  * Winbond W83687THF
    Prefix: 'w83687thf'
    Addresses scanned: ISA address retrieved from Super I/O registers
    Datasheet: Provided by Winbond on request(http://www.winbond.com/hq/enu)

Authors:
	Frodo Looijaard <frodol@dds.nl>,
	Philip Edelbrock <phil@netroedge.com>,
	Mark Studebaker <mdsxyz123@yahoo.com>,
	Bernhard C. Schrenk <clemy@clemy.org>

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

* force_i2c: int
  Initialize the I2C address of the sensors
* init: int
  (default is 1)
  Use 'init=0' to bypass initializing the chip.
  Try this if your computer crashes when you load the module.

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

This driver implements support for ISA accesses *only* for
the Winbond W83627HF, W83627THF, W83697HF and W83637HF Super I/O chips.
We will refer to them collectively as Winbond chips.

This driver supports ISA accesses, which should be more reliable
than i2c accesses. Also, for Tyan boards which contain both a
Super I/O chip and a second i2c-only Winbond chip (often a W83782D),
using this driver will avoid i2c address conflicts and complex
initialization that were required in the w83781d driver.

If you really want i2c accesses for these Super I/O chips,
use the w83781d driver. However this is not the preferred method
now that this ISA driver has been developed.

The `w83627_HF_` uses pins 110-106 as VID0-VID4. The `w83627_THF_` uses the
same pins as GPIO[0:4]. Technically, the `w83627_THF_` does not support a
VID reading. However the two chips have the identical 128 pin package. So,
it is possible or even likely for a w83627thf to have the VID signals routed
to these pins despite their not being labeled for that purpose. Therefore,
the w83627thf driver interprets these as VID. If the VID on your board
doesn't work, first see doc/vid in the lm_sensors package[1]. If that still
doesn't help, you may just ignore the bogus VID reading with no harm done.

For further information on this driver see the w83781d driver documentation.

[1] http://www.lm-sensors.org/browser/lm-sensors/trunk/doc/vid

Forcing the address
-------------------

The driver used to have a module parameter named force_addr, which could
be used to force the base I/O address of the hardware monitoring block.
This was meant as a workaround for mainboards with a broken BIOS. This
module parameter is gone for technical reasons. If you need this feature,
you can obtain the same result by using the isaset tool (part of
lm-sensors) before loading the driver:

# Enter the Super I/O config space::

	isaset -y -f 0x2e 0x87
	isaset -y -f 0x2e 0x87

# Select the hwmon logical device::

	isaset -y 0x2e 0x2f 0x07 0x0b

# Set the base I/O address (to 0x290 in this example)::

	isaset -y 0x2e 0x2f 0x60 0x02
	isaset -y 0x2e 0x2f 0x61 0x90

# Exit the Super-I/O config space::

	isaset -y -f 0x2e 0xaa

The above sequence assumes a Super-I/O config space at 0x2e/0x2f, but
0x4e/0x4f is also possible.

Voltage pin mapping
-------------------

Here is a summary of the voltage pin mapping for the W83627THF. This
can be useful to convert data provided by board manufacturers into
working libsensors configuration statements:


- W83627THF


  ======== =============== =============== ===============
  Pin	   Name		   Register	   Sysfs attribute
  ======== =============== =============== ===============
    100	   CPUVCORE	   20h		   in0
     99	   VIN0		   21h		   in1
     98	   VIN1		   22h		   in2
     97	   VIN2		   24h		   in4
    114	   AVCC		   23h		   in3
     61	   5VSB		   50h (bank 5)	   in7
     74	   VBAT		   51h (bank 5)	   in8
  ======== =============== =============== ===============

For other supported devices, you'll have to take the hard path and
look up the information in the datasheet yourself (and then add it
to this document please.)
