Kernel driver abituguru3
========================

Supported chips:
  * Abit uGuru revision 3 (Hardware Monitor part, reading only)
    Prefix: 'abituguru3'
    Addresses scanned: ISA 0x0E0
    Datasheet: Not available, this driver is based on reverse engineering.
    Note:
	The uGuru is a microcontroller with onboard firmware which programs
	it to behave as a hwmon IC. There are many different revisions of the
	firmware and thus effectivly many different revisions of the uGuru.
	Below is an incomplete list with which revisions are used for which
	Motherboards:
	uGuru 1.00    ~ 1.24    (AI7, KV8-MAX3, AN7)
	uGuru 2.0.0.0 ~ 2.0.4.2 (KV8-PRO)
	uGuru 2.1.0.0 ~ 2.1.2.8 (AS8, AV8, AA8, AG8, AA8XE, AX8)
	uGuru 2.3.0.0 ~ 2.3.0.9 (AN8)
	uGuru 3.0.0.0 ~ 3.0.x.x (AW8, AL8, AT8, NI8 SLI, AT8 32X, AN8 32X,
				 AW9D-MAX)
	The abituguru3 driver is only for revison 3.0.x.x motherboards,
	this driver will not work on older motherboards. For older
	motherboards use the abituguru (without the 3 !) driver.

Authors:
	Hans de Goede <j.w.r.degoede@hhs.nl>,
	(Initial reverse engineering done by Louis Kruger)


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

* force: bool		Force detection. Note this parameter only causes the
			detection to be skipped, and thus the insmod to
			succeed. If the uGuru can't be read the actual hwmon
			driver will not load and thus no hwmon device will get
			registered.
* verbose: bool		Should the driver be verbose?
			0/off/false  normal output
			1/on/true    + verbose error reporting (default)
			Default: 1 (the driver is still in the testing phase)

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

This driver supports the hardware monitoring features of the third revision of
the Abit uGuru chip, found on recent Abit uGuru featuring motherboards.

The 3rd revision of the uGuru chip in reality is a Winbond W83L951G.
Unfortunatly this doesn't help since the W83L951G is a generic microcontroller
with a custom Abit application running on it.

Despite Abit not releasing any information regarding the uGuru revision 3,
Louis Kruger has managed to reverse engineer the sensor part of the uGuru.
Without his work this driver would not have been possible.

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

The voltage and frequency control parts of the Abit uGuru are not supported,
neither is writing any of the sensor settings and writing / reading the
fanspeed control registers (FanEQ)

If you encounter any problems please mail me <j.w.r.degoede@hhs.nl> and
include the output of: "dmesg | grep abituguru"
