xref: /OK3568_Linux_fs/kernel/Documentation/hwmon/abituguru3.rst (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593SmuzhiyunKernel driver abituguru3
2*4882a593Smuzhiyun========================
3*4882a593Smuzhiyun
4*4882a593SmuzhiyunSupported chips:
5*4882a593Smuzhiyun  * Abit uGuru revision 3 (Hardware Monitor part, reading only)
6*4882a593Smuzhiyun
7*4882a593Smuzhiyun    Prefix: 'abituguru3'
8*4882a593Smuzhiyun
9*4882a593Smuzhiyun    Addresses scanned: ISA 0x0E0
10*4882a593Smuzhiyun
11*4882a593Smuzhiyun    Datasheet: Not available, this driver is based on reverse engineering.
12*4882a593Smuzhiyun
13*4882a593Smuzhiyun    Note:
14*4882a593Smuzhiyun	The uGuru is a microcontroller with onboard firmware which programs
15*4882a593Smuzhiyun	it to behave as a hwmon IC. There are many different revisions of the
16*4882a593Smuzhiyun	firmware and thus effectively many different revisions of the uGuru.
17*4882a593Smuzhiyun	Below is an incomplete list with which revisions are used for which
18*4882a593Smuzhiyun	Motherboards:
19*4882a593Smuzhiyun
20*4882a593Smuzhiyun	- uGuru 1.00    ~ 1.24    (AI7, KV8-MAX3, AN7)
21*4882a593Smuzhiyun	- uGuru 2.0.0.0 ~ 2.0.4.2 (KV8-PRO)
22*4882a593Smuzhiyun	- uGuru 2.1.0.0 ~ 2.1.2.8 (AS8, AV8, AA8, AG8, AA8XE, AX8)
23*4882a593Smuzhiyun	- uGuru 2.3.0.0 ~ 2.3.0.9 (AN8)
24*4882a593Smuzhiyun	- uGuru 3.0.0.0 ~ 3.0.x.x (AW8, AL8, AT8, NI8 SLI, AT8 32X, AN8 32X,
25*4882a593Smuzhiyun	  AW9D-MAX)
26*4882a593Smuzhiyun
27*4882a593Smuzhiyun	The abituguru3 driver is only for revision 3.0.x.x motherboards,
28*4882a593Smuzhiyun	this driver will not work on older motherboards. For older
29*4882a593Smuzhiyun	motherboards use the abituguru (without the 3 !) driver.
30*4882a593Smuzhiyun
31*4882a593SmuzhiyunAuthors:
32*4882a593Smuzhiyun	- Hans de Goede <j.w.r.degoede@hhs.nl>,
33*4882a593Smuzhiyun	- (Initial reverse engineering done by Louis Kruger)
34*4882a593Smuzhiyun
35*4882a593Smuzhiyun
36*4882a593SmuzhiyunModule Parameters
37*4882a593Smuzhiyun-----------------
38*4882a593Smuzhiyun
39*4882a593Smuzhiyun* force: bool
40*4882a593Smuzhiyun			Force detection. Note this parameter only causes the
41*4882a593Smuzhiyun			detection to be skipped, and thus the insmod to
42*4882a593Smuzhiyun			succeed. If the uGuru can't be read the actual hwmon
43*4882a593Smuzhiyun			driver will not load and thus no hwmon device will get
44*4882a593Smuzhiyun			registered.
45*4882a593Smuzhiyun* verbose: bool
46*4882a593Smuzhiyun			Should the driver be verbose?
47*4882a593Smuzhiyun
48*4882a593Smuzhiyun			* 0/off/false  normal output
49*4882a593Smuzhiyun			* 1/on/true    + verbose error reporting (default)
50*4882a593Smuzhiyun
51*4882a593Smuzhiyun			Default: 1 (the driver is still in the testing phase)
52*4882a593Smuzhiyun
53*4882a593SmuzhiyunDescription
54*4882a593Smuzhiyun-----------
55*4882a593Smuzhiyun
56*4882a593SmuzhiyunThis driver supports the hardware monitoring features of the third revision of
57*4882a593Smuzhiyunthe Abit uGuru chip, found on recent Abit uGuru featuring motherboards.
58*4882a593Smuzhiyun
59*4882a593SmuzhiyunThe 3rd revision of the uGuru chip in reality is a Winbond W83L951G.
60*4882a593SmuzhiyunUnfortunately this doesn't help since the W83L951G is a generic microcontroller
61*4882a593Smuzhiyunwith a custom Abit application running on it.
62*4882a593Smuzhiyun
63*4882a593SmuzhiyunDespite Abit not releasing any information regarding the uGuru revision 3,
64*4882a593SmuzhiyunLouis Kruger has managed to reverse engineer the sensor part of the uGuru.
65*4882a593SmuzhiyunWithout his work this driver would not have been possible.
66*4882a593Smuzhiyun
67*4882a593SmuzhiyunKnown Issues
68*4882a593Smuzhiyun------------
69*4882a593Smuzhiyun
70*4882a593SmuzhiyunThe voltage and frequency control parts of the Abit uGuru are not supported,
71*4882a593Smuzhiyunneither is writing any of the sensor settings and writing / reading the
72*4882a593Smuzhiyunfanspeed control registers (FanEQ)
73*4882a593Smuzhiyun
74*4882a593SmuzhiyunIf you encounter any problems please mail me <j.w.r.degoede@hhs.nl> and
75*4882a593Smuzhiyuninclude the output of: `dmesg | grep abituguru`
76