xref: /OK3568_Linux_fs/kernel/Documentation/hwmon/abituguru.rst (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593SmuzhiyunKernel driver abituguru
2*4882a593Smuzhiyun=======================
3*4882a593Smuzhiyun
4*4882a593SmuzhiyunSupported chips:
5*4882a593Smuzhiyun
6*4882a593Smuzhiyun  * Abit uGuru revision 1 & 2 (Hardware Monitor part only)
7*4882a593Smuzhiyun
8*4882a593Smuzhiyun    Prefix: 'abituguru'
9*4882a593Smuzhiyun
10*4882a593Smuzhiyun    Addresses scanned: ISA 0x0E0
11*4882a593Smuzhiyun
12*4882a593Smuzhiyun    Datasheet: Not available, this driver is based on reverse engineering.
13*4882a593Smuzhiyun    A "Datasheet" has been written based on the reverse engineering it
14*4882a593Smuzhiyun    should be available in the same dir as this file under the name
15*4882a593Smuzhiyun    abituguru-datasheet.
16*4882a593Smuzhiyun
17*4882a593Smuzhiyun    Note:
18*4882a593Smuzhiyun	The uGuru is a microcontroller with onboard firmware which programs
19*4882a593Smuzhiyun	it to behave as a hwmon IC. There are many different revisions of the
20*4882a593Smuzhiyun	firmware and thus effectively many different revisions of the uGuru.
21*4882a593Smuzhiyun	Below is an incomplete list with which revisions are used for which
22*4882a593Smuzhiyun	Motherboards:
23*4882a593Smuzhiyun
24*4882a593Smuzhiyun	- uGuru 1.00    ~ 1.24    (AI7, KV8-MAX3, AN7) [1]_
25*4882a593Smuzhiyun	- uGuru 2.0.0.0 ~ 2.0.4.2 (KV8-PRO)
26*4882a593Smuzhiyun	- uGuru 2.1.0.0 ~ 2.1.2.8 (AS8, AV8, AA8, AG8, AA8XE, AX8)
27*4882a593Smuzhiyun	- uGuru 2.2.0.0 ~ 2.2.0.6 (AA8 Fatal1ty)
28*4882a593Smuzhiyun	- uGuru 2.3.0.0 ~ 2.3.0.9 (AN8)
29*4882a593Smuzhiyun	- uGuru 3.0.0.0 ~ 3.0.x.x (AW8, AL8, AT8, NI8 SLI, AT8 32X, AN8 32X,
30*4882a593Smuzhiyun	  AW9D-MAX) [2]_
31*4882a593Smuzhiyun
32*4882a593Smuzhiyun.. [1]  For revisions 2 and 3 uGuru's the driver can autodetect the
33*4882a593Smuzhiyun	sensortype (Volt or Temp) for bank1 sensors, for revision 1 uGuru's
34*4882a593Smuzhiyun	this does not always work. For these uGuru's the autodetection can
35*4882a593Smuzhiyun	be overridden with the bank1_types module param. For all 3 known
36*4882a593Smuzhiyun	revision 1 motherboards the correct use of this param is:
37*4882a593Smuzhiyun	bank1_types=1,1,0,0,0,0,0,2,0,0,0,0,2,0,0,1
38*4882a593Smuzhiyun	You may also need to specify the fan_sensors option for these boards
39*4882a593Smuzhiyun	fan_sensors=5
40*4882a593Smuzhiyun
41*4882a593Smuzhiyun.. [2]  There is a separate abituguru3 driver for these motherboards,
42*4882a593Smuzhiyun	the abituguru (without the 3 !) driver will not work on these
43*4882a593Smuzhiyun	motherboards (and visa versa)!
44*4882a593Smuzhiyun
45*4882a593SmuzhiyunAuthors:
46*4882a593Smuzhiyun	- Hans de Goede <j.w.r.degoede@hhs.nl>,
47*4882a593Smuzhiyun	- (Initial reverse engineering done by Olle Sandberg
48*4882a593Smuzhiyun	  <ollebull@gmail.com>)
49*4882a593Smuzhiyun
50*4882a593Smuzhiyun
51*4882a593SmuzhiyunModule Parameters
52*4882a593Smuzhiyun-----------------
53*4882a593Smuzhiyun
54*4882a593Smuzhiyun* force: bool
55*4882a593Smuzhiyun			Force detection. Note this parameter only causes the
56*4882a593Smuzhiyun			detection to be skipped, and thus the insmod to
57*4882a593Smuzhiyun			succeed. If the uGuru can't be read the actual hwmon
58*4882a593Smuzhiyun			driver will not load and thus no hwmon device will get
59*4882a593Smuzhiyun			registered.
60*4882a593Smuzhiyun* bank1_types: int[]
61*4882a593Smuzhiyun			Bank1 sensortype autodetection override:
62*4882a593Smuzhiyun
63*4882a593Smuzhiyun			  * -1 autodetect (default)
64*4882a593Smuzhiyun			  *  0 volt sensor
65*4882a593Smuzhiyun			  *  1 temp sensor
66*4882a593Smuzhiyun			  *  2 not connected
67*4882a593Smuzhiyun* fan_sensors: int
68*4882a593Smuzhiyun			Tell the driver how many fan speed sensors there are
69*4882a593Smuzhiyun			on your motherboard. Default: 0 (autodetect).
70*4882a593Smuzhiyun* pwms: int
71*4882a593Smuzhiyun			Tell the driver how many fan speed controls (fan
72*4882a593Smuzhiyun			pwms) your motherboard has. Default: 0 (autodetect).
73*4882a593Smuzhiyun* verbose: int
74*4882a593Smuzhiyun			How verbose should the driver be? (0-3):
75*4882a593Smuzhiyun
76*4882a593Smuzhiyun			   * 0 normal output
77*4882a593Smuzhiyun			   * 1 + verbose error reporting
78*4882a593Smuzhiyun			   * 2 + sensors type probing info (default)
79*4882a593Smuzhiyun			   * 3 + retryable error reporting
80*4882a593Smuzhiyun
81*4882a593Smuzhiyun			Default: 2 (the driver is still in the testing phase)
82*4882a593Smuzhiyun
83*4882a593SmuzhiyunNotice: if you need any of the first three options above please insmod the
84*4882a593Smuzhiyundriver with verbose set to 3 and mail me <j.w.r.degoede@hhs.nl> the output of:
85*4882a593Smuzhiyundmesg | grep abituguru
86*4882a593Smuzhiyun
87*4882a593Smuzhiyun
88*4882a593SmuzhiyunDescription
89*4882a593Smuzhiyun-----------
90*4882a593Smuzhiyun
91*4882a593SmuzhiyunThis driver supports the hardware monitoring features of the first and
92*4882a593Smuzhiyunsecond revision of the Abit uGuru chip found on Abit uGuru featuring
93*4882a593Smuzhiyunmotherboards (most modern Abit motherboards).
94*4882a593Smuzhiyun
95*4882a593SmuzhiyunThe first and second revision of the uGuru chip in reality is a Winbond
96*4882a593SmuzhiyunW83L950D in disguise (despite Abit claiming it is "a new microprocessor
97*4882a593Smuzhiyundesigned by the ABIT Engineers"). Unfortunately this doesn't help since the
98*4882a593SmuzhiyunW83L950D is a generic microcontroller with a custom Abit application running
99*4882a593Smuzhiyunon it.
100*4882a593Smuzhiyun
101*4882a593SmuzhiyunDespite Abit not releasing any information regarding the uGuru, Olle
102*4882a593SmuzhiyunSandberg <ollebull@gmail.com> has managed to reverse engineer the sensor part
103*4882a593Smuzhiyunof the uGuru. Without his work this driver would not have been possible.
104*4882a593Smuzhiyun
105*4882a593SmuzhiyunKnown Issues
106*4882a593Smuzhiyun------------
107*4882a593Smuzhiyun
108*4882a593SmuzhiyunThe voltage and frequency control parts of the Abit uGuru are not supported.
109*4882a593Smuzhiyun
110*4882a593Smuzhiyun.. toctree::
111*4882a593Smuzhiyun   :maxdepth: 1
112*4882a593Smuzhiyun
113*4882a593Smuzhiyun   abituguru-datasheet.rst
114