mirror of
https://github.com/joel16/android_kernel_sony_msm8994_rework.git
synced 2024-11-24 04:19:51 +00:00
3faa1ffb4f
This patch adds a new driver for the hardware monitoring features of the third revision of the Abit uGuru chip, found on recent Abit motherboards. This is an entirely different beast then the first and second revision (its again a winbond microcontroller, but the "protocol" to talk to it and the bank addresses are very different. Signed-off-by: Hans de Goede <j.w.r.degoede@hhs.nl> Signed-off-by: Mark M. Hoffman <mhoffman@lightlink.com>
93 lines
3.6 KiB
Plaintext
93 lines
3.6 KiB
Plaintext
Kernel driver abituguru
|
|
=======================
|
|
|
|
Supported chips:
|
|
* Abit uGuru revision 1 & 2 (Hardware Monitor part only)
|
|
Prefix: 'abituguru'
|
|
Addresses scanned: ISA 0x0E0
|
|
Datasheet: Not available, this driver is based on reverse engineering.
|
|
A "Datasheet" has been written based on the reverse engineering it
|
|
should be available in the same dir as this file under the name
|
|
abituguru-datasheet.
|
|
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) (1)
|
|
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.2.0.0 ~ 2.2.0.6 (AA8 Fatal1ty)
|
|
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) (2)
|
|
1) For revisions 2 and 3 uGuru's the driver can autodetect the
|
|
sensortype (Volt or Temp) for bank1 sensors, for revision 1 uGuru's
|
|
this doesnot always work. For these uGuru's the autodection can
|
|
be overriden with the bank1_types module param. For all 3 known
|
|
revison 1 motherboards the correct use of this param is:
|
|
bank1_types=1,1,0,0,0,0,0,2,0,0,0,0,2,0,0,1
|
|
You may also need to specify the fan_sensors option for these boards
|
|
fan_sensors=5
|
|
2) There is a seperate abituguru3 driver for these motherboards,
|
|
the abituguru (without the 3 !) driver will not work on these
|
|
motherboards (and visa versa)!
|
|
|
|
Authors:
|
|
Hans de Goede <j.w.r.degoede@hhs.nl>,
|
|
(Initial reverse engineering done by Olle Sandberg
|
|
<ollebull@gmail.com>)
|
|
|
|
|
|
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.
|
|
* bank1_types: int[] Bank1 sensortype autodetection override:
|
|
-1 autodetect (default)
|
|
0 volt sensor
|
|
1 temp sensor
|
|
2 not connected
|
|
* fan_sensors: int Tell the driver how many fan speed sensors there are
|
|
on your motherboard. Default: 0 (autodetect).
|
|
* pwms: int Tell the driver how many fan speed controls (fan
|
|
pwms) your motherboard has. Default: 0 (autodetect).
|
|
* verbose: int How verbose should the driver be? (0-3):
|
|
0 normal output
|
|
1 + verbose error reporting
|
|
2 + sensors type probing info (default)
|
|
3 + retryable error reporting
|
|
Default: 2 (the driver is still in the testing phase)
|
|
|
|
Notice if you need any of the first three options above please insmod the
|
|
driver with verbose set to 3 and mail me <j.w.r.degoede@hhs.nl> the output of:
|
|
dmesg | grep abituguru
|
|
|
|
|
|
Description
|
|
-----------
|
|
|
|
This driver supports the hardware monitoring features of the first and
|
|
second revision of the Abit uGuru chip found on Abit uGuru featuring
|
|
motherboards (most modern Abit motherboards).
|
|
|
|
The first and second revision of the uGuru chip in reality is a Winbond
|
|
W83L950D in disguise (despite Abit claiming it is "a new microprocessor
|
|
designed by the ABIT Engineers"). Unfortunatly this doesn't help since the
|
|
W83L950D is a generic microcontroller with a custom Abit application running
|
|
on it.
|
|
|
|
Despite Abit not releasing any information regarding the uGuru, Olle
|
|
Sandberg <ollebull@gmail.com> 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.
|