Abit Uguru driver README.
=========================

This driver supports the sensor part of the custom Abit uGuru chip found
on Abit uGuru motherboards. Currently it has been tested on an Abit KV8 Pro,
AV8, AX8, AN8-SLI and AA8XE Fatal1ty. The openguru program this driver is based
on has also been successfully tested on: Abit AV8 3rd Eye, AN8 Ultra and AN7.

Unfortunatly there are no specs for this chip, this driver is based on reverse
enginering done by Olle Sandberg <ollebull@gmail.com> and some additional
reverse engineering done by me. I would like to express my thanks to Olle,
this driver couldnot have been written without his efforts.

Because of the lack of specs only the sensors part of the uGuru is
supported. IOW the voltage / clock programming is NOT supported.

Please let me know your results when using this driver, both success and
failure. You can reach me at: <j.w.r.degoede@hhs.nl> and please include which
motherboard you're using. When testing please do a comparison between your
BIOS readings and the uGuru driver readings, these should match except that
AMD powernow processors are "hotter" in the BIOS because in the BIOS the
idle loop is less then optimal which makes them hotter.


Installing:
===========

Driver
------

This version of the driver is meant for out of tree compilation, although it
should work fine in tree, I don't have the makefile mods to make it work
in tree. Because of rescent hwmon api changes this driver needs kernel
2.6.14 or newer, compiled with sensors support.

Just type "make" in the directory containing Makefile and abituguru.c . This
will give you an abituguru.ko file, you can copy this to
/lib/modules/xxx/kernel/drivers/hwmon if you want, or use it from its current
location.

To load the driver type:
modprobe hwmon
insmod <path-to>/abituguru.ko

If the driver fails to load you can try:
insmod <path-to>/abituguru.ko force=1

Now you should have a /sys/bus/i2c/devices/9191-00e0/ dir with a bunch of
files for all your sensors, you can read them with "cat <file>".

Userspace support
-----------------
To make libsensors programs (sensors ksensors) recognize the driver you also
need to patch libsensors. For this you need to download lm_sensors version
2.10.0, apply the included patch and then build and install libsensors.

Once libsensors is installed you need to edit /etc/sensors.conf to match
your motherboard, the Abit uGuru part is at the bottom of the file. If you
have a motherboard which is not listed there I would appreciate it if you
could send me a mail with the settings for your motherboard.

Now run "sensors" and enjoy.


Optional features
=================

There are several files under /sys/bus/i2c/devices/9191-00e0/ for which
libsensors doesn't have support but which may still be usefull. Note: all
filenames are relative to /sys/bus/i2c/devices/9191-00e0/ .

To set read/write values you can use:
echo "<value>">/sys/bus/i2c/devices/9191-00e0/<file>

Sensors alarm / beep / shutdown enable / disable
------------------------------------------------

With the Abit uGuru it is possible to disable alarms / beeping and shutdown
on a per sensor basis. There is a new sysfs interface for this, see
sysfs-interface.txt .

Fan PWM (speed control) (only fans 1-3)
---------------------------------------

The Abit uGuru can control the speed of the first three fans depending on
the measured temperature. It uses the standardised pwm sysfs interface for
this. Note that with the uGuru you cannot determine the speed manually you
must use the auto feature which can be controlled through the
pwmX_auto_pointX_pwm and _temp files. For mor info see sysfs-interface.txt .


Questions/comments
==================

You can send any questions you have to me at: <j.w.r.degoede@hhs.nl>, or to
the lm_sensors mailinglist:
http://lists.lm-sensors.org/mailman/listinfo/lm-sensors


Copyright/Warranty
==================

This software is licenced under the GNU GPL v2, see COPYING, and as such
comes WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.
