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