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 via686a
^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)   * Via VT82C686A, VT82C686B  Southbridge Integrated Hardware Monitor
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  7) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  8)     Prefix: 'via686a'
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  9) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10)     Addresses scanned: ISA in PCI-space encoded address
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12)     Datasheet: On request through web form (http://www.via.com.tw/en/resources/download-center/)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) Authors:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) 	- Kyösti Mälkki <kmalkki@cc.hut.fi>,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) 	- Mark D. Studebaker <mdsxyz123@yahoo.com>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) 	- Bob Dougherty <bobd@stanford.edu>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) 	- (Some conversion-factor data were contributed by
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) 	- Jonathan Teh Soon Yew <j.teh@iname.com>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) 	- and Alex van Kaam <darkside@chello.nl>.)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) Module Parameters
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) -----------------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) ======================= =======================================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) force_addr=0xaddr       Set the I/O base address. Useful for boards that
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) 			don't set the address in the BIOS. Look for a BIOS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) 			upgrade before resorting to this. Does not do a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) 			PCI force; the via686a must still be present in lspci.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) 			Don't use this unless the driver complains that the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) 			base address is not set.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) 			Example: 'modprobe via686a force_addr=0x6000'
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) ======================= =======================================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) Description
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) -----------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) The driver does not distinguish between the chips and reports
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) all as a 686A.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) The Via 686a southbridge has integrated hardware monitor functionality.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42) It also has an I2C bus, but this driver only supports the hardware monitor.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) For the I2C bus driver, see <file:Documentation/i2c/busses/i2c-viapro.rst>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) The Via 686a implements three temperature sensors, two fan rotation speed
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46) sensors, five voltage sensors and alarms.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48) Temperatures are measured in degrees Celsius. An alarm is triggered once
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49) when the Overtemperature Shutdown limit is crossed; it is triggered again
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50) as soon as it drops below the hysteresis value.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52) Fan rotation speeds are reported in RPM (rotations per minute). An alarm is
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53) triggered if the rotation speed has dropped below a programmable limit. Fan
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54) readings can be divided by a programmable divider (1, 2, 4 or 8) to give
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55) the readings more range or accuracy. Not all RPM values can accurately be
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 56) represented, so some rounding is done. With a divider of 2, the lowest
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 57) representable value is around 2600 RPM.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 58) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 59) Voltage sensors (also known as IN sensors) report their values in volts.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 60) An alarm is triggered if the voltage has crossed a programmable minimum
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 61) or maximum limit. Voltages are internally scalled, so each voltage channel
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 62) has a different resolution and range.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 63) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 64) If an alarm triggers, it will remain triggered until the hardware register
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 65) is read at least once. This means that the cause for the alarm may
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 66) already have disappeared! Note that in the current implementation, all
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 67) hardware registers are read whenever any data is read (unless it is less
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 68) than 1.5 seconds since the last update). This means that you can easily
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 69) miss once-only alarms.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 70) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 71) The driver only updates its values each 1.5 seconds; reading it more often
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 72) will do no harm, but will return 'old' values.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 73) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 74) Known Issues
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 75) ------------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 76) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 77) This driver handles sensors integrated in some VIA south bridges. It is
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 78) possible that a motherboard maker used a VT82C686A/B chip as part of a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 79) product design but was not interested in its hardware monitoring features,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 80) in which case the sensor inputs will not be wired. This is the case of
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 81) the Asus K7V, A7V and A7V133 motherboards, to name only a few of them.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 82) So, if you need the force_addr parameter, and end up with values which
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 83) don't seem to make any sense, don't look any further: your chip is simply
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 84) not wired for hardware monitoring.