Orange Pi5 kernel

Deprecated Linux kernel 5.10.110 for OrangePi 5/5B/5+ boards

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