xref: /openbmc/linux/Documentation/hwmon/abituguru.rst (revision 4b4193256c8d3bc3a5397b5cd9494c2ad386317d)
17ebd8b66SMauro Carvalho ChehabKernel driver abituguru
27ebd8b66SMauro Carvalho Chehab=======================
37ebd8b66SMauro Carvalho Chehab
47ebd8b66SMauro Carvalho ChehabSupported chips:
57ebd8b66SMauro Carvalho Chehab
67ebd8b66SMauro Carvalho Chehab  * Abit uGuru revision 1 & 2 (Hardware Monitor part only)
77ebd8b66SMauro Carvalho Chehab
87ebd8b66SMauro Carvalho Chehab    Prefix: 'abituguru'
97ebd8b66SMauro Carvalho Chehab
107ebd8b66SMauro Carvalho Chehab    Addresses scanned: ISA 0x0E0
117ebd8b66SMauro Carvalho Chehab
127ebd8b66SMauro Carvalho Chehab    Datasheet: Not available, this driver is based on reverse engineering.
137ebd8b66SMauro Carvalho Chehab    A "Datasheet" has been written based on the reverse engineering it
147ebd8b66SMauro Carvalho Chehab    should be available in the same dir as this file under the name
157ebd8b66SMauro Carvalho Chehab    abituguru-datasheet.
167ebd8b66SMauro Carvalho Chehab
177ebd8b66SMauro Carvalho Chehab    Note:
187ebd8b66SMauro Carvalho Chehab	The uGuru is a microcontroller with onboard firmware which programs
197ebd8b66SMauro Carvalho Chehab	it to behave as a hwmon IC. There are many different revisions of the
20*4776b9e3SBrandon Jiang	firmware and thus effectively many different revisions of the uGuru.
217ebd8b66SMauro Carvalho Chehab	Below is an incomplete list with which revisions are used for which
227ebd8b66SMauro Carvalho Chehab	Motherboards:
237ebd8b66SMauro Carvalho Chehab
247ebd8b66SMauro Carvalho Chehab	- uGuru 1.00    ~ 1.24    (AI7, KV8-MAX3, AN7) [1]_
257ebd8b66SMauro Carvalho Chehab	- uGuru 2.0.0.0 ~ 2.0.4.2 (KV8-PRO)
267ebd8b66SMauro Carvalho Chehab	- uGuru 2.1.0.0 ~ 2.1.2.8 (AS8, AV8, AA8, AG8, AA8XE, AX8)
277ebd8b66SMauro Carvalho Chehab	- uGuru 2.2.0.0 ~ 2.2.0.6 (AA8 Fatal1ty)
287ebd8b66SMauro Carvalho Chehab	- uGuru 2.3.0.0 ~ 2.3.0.9 (AN8)
297ebd8b66SMauro Carvalho Chehab	- uGuru 3.0.0.0 ~ 3.0.x.x (AW8, AL8, AT8, NI8 SLI, AT8 32X, AN8 32X,
307ebd8b66SMauro Carvalho Chehab	  AW9D-MAX) [2]_
317ebd8b66SMauro Carvalho Chehab
327ebd8b66SMauro Carvalho Chehab.. [1]  For revisions 2 and 3 uGuru's the driver can autodetect the
337ebd8b66SMauro Carvalho Chehab	sensortype (Volt or Temp) for bank1 sensors, for revision 1 uGuru's
347ebd8b66SMauro Carvalho Chehab	this does not always work. For these uGuru's the autodetection can
357ebd8b66SMauro Carvalho Chehab	be overridden with the bank1_types module param. For all 3 known
36*4776b9e3SBrandon Jiang	revision 1 motherboards the correct use of this param is:
377ebd8b66SMauro Carvalho Chehab	bank1_types=1,1,0,0,0,0,0,2,0,0,0,0,2,0,0,1
387ebd8b66SMauro Carvalho Chehab	You may also need to specify the fan_sensors option for these boards
397ebd8b66SMauro Carvalho Chehab	fan_sensors=5
407ebd8b66SMauro Carvalho Chehab
417ebd8b66SMauro Carvalho Chehab.. [2]  There is a separate abituguru3 driver for these motherboards,
427ebd8b66SMauro Carvalho Chehab	the abituguru (without the 3 !) driver will not work on these
437ebd8b66SMauro Carvalho Chehab	motherboards (and visa versa)!
447ebd8b66SMauro Carvalho Chehab
457ebd8b66SMauro Carvalho ChehabAuthors:
467ebd8b66SMauro Carvalho Chehab	- Hans de Goede <j.w.r.degoede@hhs.nl>,
477ebd8b66SMauro Carvalho Chehab	- (Initial reverse engineering done by Olle Sandberg
487ebd8b66SMauro Carvalho Chehab	  <ollebull@gmail.com>)
497ebd8b66SMauro Carvalho Chehab
507ebd8b66SMauro Carvalho Chehab
517ebd8b66SMauro Carvalho ChehabModule Parameters
527ebd8b66SMauro Carvalho Chehab-----------------
537ebd8b66SMauro Carvalho Chehab
547ebd8b66SMauro Carvalho Chehab* force: bool
557ebd8b66SMauro Carvalho Chehab			Force detection. Note this parameter only causes the
567ebd8b66SMauro Carvalho Chehab			detection to be skipped, and thus the insmod to
577ebd8b66SMauro Carvalho Chehab			succeed. If the uGuru can't be read the actual hwmon
587ebd8b66SMauro Carvalho Chehab			driver will not load and thus no hwmon device will get
597ebd8b66SMauro Carvalho Chehab			registered.
607ebd8b66SMauro Carvalho Chehab* bank1_types: int[]
617ebd8b66SMauro Carvalho Chehab			Bank1 sensortype autodetection override:
627ebd8b66SMauro Carvalho Chehab
637ebd8b66SMauro Carvalho Chehab			  * -1 autodetect (default)
647ebd8b66SMauro Carvalho Chehab			  *  0 volt sensor
657ebd8b66SMauro Carvalho Chehab			  *  1 temp sensor
667ebd8b66SMauro Carvalho Chehab			  *  2 not connected
677ebd8b66SMauro Carvalho Chehab* fan_sensors: int
687ebd8b66SMauro Carvalho Chehab			Tell the driver how many fan speed sensors there are
697ebd8b66SMauro Carvalho Chehab			on your motherboard. Default: 0 (autodetect).
707ebd8b66SMauro Carvalho Chehab* pwms: int
717ebd8b66SMauro Carvalho Chehab			Tell the driver how many fan speed controls (fan
727ebd8b66SMauro Carvalho Chehab			pwms) your motherboard has. Default: 0 (autodetect).
737ebd8b66SMauro Carvalho Chehab* verbose: int
747ebd8b66SMauro Carvalho Chehab			How verbose should the driver be? (0-3):
757ebd8b66SMauro Carvalho Chehab
767ebd8b66SMauro Carvalho Chehab			   * 0 normal output
777ebd8b66SMauro Carvalho Chehab			   * 1 + verbose error reporting
787ebd8b66SMauro Carvalho Chehab			   * 2 + sensors type probing info (default)
797ebd8b66SMauro Carvalho Chehab			   * 3 + retryable error reporting
807ebd8b66SMauro Carvalho Chehab
817ebd8b66SMauro Carvalho Chehab			Default: 2 (the driver is still in the testing phase)
827ebd8b66SMauro Carvalho Chehab
837ebd8b66SMauro Carvalho ChehabNotice: if you need any of the first three options above please insmod the
847ebd8b66SMauro Carvalho Chehabdriver with verbose set to 3 and mail me <j.w.r.degoede@hhs.nl> the output of:
857ebd8b66SMauro Carvalho Chehabdmesg | grep abituguru
867ebd8b66SMauro Carvalho Chehab
877ebd8b66SMauro Carvalho Chehab
887ebd8b66SMauro Carvalho ChehabDescription
897ebd8b66SMauro Carvalho Chehab-----------
907ebd8b66SMauro Carvalho Chehab
917ebd8b66SMauro Carvalho ChehabThis driver supports the hardware monitoring features of the first and
927ebd8b66SMauro Carvalho Chehabsecond revision of the Abit uGuru chip found on Abit uGuru featuring
937ebd8b66SMauro Carvalho Chehabmotherboards (most modern Abit motherboards).
947ebd8b66SMauro Carvalho Chehab
957ebd8b66SMauro Carvalho ChehabThe first and second revision of the uGuru chip in reality is a Winbond
967ebd8b66SMauro Carvalho ChehabW83L950D in disguise (despite Abit claiming it is "a new microprocessor
977ebd8b66SMauro Carvalho Chehabdesigned by the ABIT Engineers"). Unfortunately this doesn't help since the
987ebd8b66SMauro Carvalho ChehabW83L950D is a generic microcontroller with a custom Abit application running
997ebd8b66SMauro Carvalho Chehabon it.
1007ebd8b66SMauro Carvalho Chehab
1017ebd8b66SMauro Carvalho ChehabDespite Abit not releasing any information regarding the uGuru, Olle
1027ebd8b66SMauro Carvalho ChehabSandberg <ollebull@gmail.com> has managed to reverse engineer the sensor part
1037ebd8b66SMauro Carvalho Chehabof the uGuru. Without his work this driver would not have been possible.
1047ebd8b66SMauro Carvalho Chehab
1057ebd8b66SMauro Carvalho ChehabKnown Issues
1067ebd8b66SMauro Carvalho Chehab------------
1077ebd8b66SMauro Carvalho Chehab
1087ebd8b66SMauro Carvalho ChehabThe voltage and frequency control parts of the Abit uGuru are not supported.
1097ebd8b66SMauro Carvalho Chehab
1107ebd8b66SMauro Carvalho Chehab.. toctree::
1117ebd8b66SMauro Carvalho Chehab   :maxdepth: 1
1127ebd8b66SMauro Carvalho Chehab
1137ebd8b66SMauro Carvalho Chehab   abituguru-datasheet.rst
114