1 |
3 |
xianfeng |
Kernel driver w83793
|
2 |
|
|
====================
|
3 |
|
|
|
4 |
|
|
Supported chips:
|
5 |
|
|
* Winbond W83793G/W83793R
|
6 |
|
|
Prefix: 'w83793'
|
7 |
|
|
Addresses scanned: I2C 0x2c - 0x2f
|
8 |
|
|
Datasheet: Still not published
|
9 |
|
|
|
10 |
|
|
Authors:
|
11 |
|
|
Yuan Mu (Winbond Electronics)
|
12 |
|
|
Rudolf Marek
|
13 |
|
|
|
14 |
|
|
|
15 |
|
|
Module parameters
|
16 |
|
|
-----------------
|
17 |
|
|
|
18 |
|
|
* reset int
|
19 |
|
|
(default 0)
|
20 |
|
|
This parameter is not recommended, it will lose motherboard specific
|
21 |
|
|
settings. Use 'reset=1' to reset the chip when loading this module.
|
22 |
|
|
|
23 |
|
|
* force_subclients=bus,caddr,saddr1,saddr2
|
24 |
|
|
This is used to force the i2c addresses for subclients of
|
25 |
|
|
a certain chip. Typical usage is `force_subclients=0,0x2f,0x4a,0x4b'
|
26 |
|
|
to force the subclients of chip 0x2f on bus 0 to i2c addresses
|
27 |
|
|
0x4a and 0x4b.
|
28 |
|
|
|
29 |
|
|
|
30 |
|
|
Description
|
31 |
|
|
-----------
|
32 |
|
|
|
33 |
|
|
This driver implements support for Winbond W83793G/W83793R chips.
|
34 |
|
|
|
35 |
|
|
* Exported features
|
36 |
|
|
This driver exports 10 voltage sensors, up to 12 fan tachometer inputs,
|
37 |
|
|
6 remote temperatures, up to 8 sets of PWM fan controls, SmartFan
|
38 |
|
|
(automatic fan speed control) on all temperature/PWM combinations, 2
|
39 |
|
|
sets of 6-pin CPU VID input.
|
40 |
|
|
|
41 |
|
|
* Sensor resolutions
|
42 |
|
|
If your motherboard maker used the reference design, the resolution of
|
43 |
|
|
voltage0-2 is 2mV, resolution of voltage3/4/5 is 16mV, 8mV for voltage6,
|
44 |
|
|
24mV for voltage7/8. Temp1-4 have a 0.25 degree Celsius resolution,
|
45 |
|
|
temp5-6 have a 1 degree Celsiis resolution.
|
46 |
|
|
|
47 |
|
|
* Temperature sensor types
|
48 |
|
|
Temp1-4 have 2 possible types. It can be read from (and written to)
|
49 |
|
|
temp[1-4]_type.
|
50 |
|
|
- If the value is 3, it starts monitoring using a remote termal diode
|
51 |
|
|
(default).
|
52 |
|
|
- If the value is 6, it starts monitoring using the temperature sensor
|
53 |
|
|
in Intel CPU and get result by PECI.
|
54 |
|
|
Temp5-6 can be connected to external thermistors (value of
|
55 |
|
|
temp[5-6]_type is 4).
|
56 |
|
|
|
57 |
|
|
* Alarm mechanism
|
58 |
|
|
For voltage sensors, an alarm triggers if the measured value is below
|
59 |
|
|
the low voltage limit or over the high voltage limit.
|
60 |
|
|
For temperature sensors, an alarm triggers if the measured value goes
|
61 |
|
|
above the high temperature limit, and wears off only after the measured
|
62 |
|
|
value drops below the hysteresis value.
|
63 |
|
|
For fan sensors, an alarm triggers if the measured value is below the
|
64 |
|
|
low speed limit.
|
65 |
|
|
|
66 |
|
|
* SmartFan/PWM control
|
67 |
|
|
If you want to set a pwm fan to manual mode, you just need to make sure it
|
68 |
|
|
is not controlled by any temp channel, for example, you want to set fan1
|
69 |
|
|
to manual mode, you need to check the value of temp[1-6]_fan_map, make
|
70 |
|
|
sure bit 0 is cleared in the 6 values. And then set the pwm1 value to
|
71 |
|
|
control the fan.
|
72 |
|
|
|
73 |
|
|
Each temperature channel can control all the 8 PWM outputs (by setting the
|
74 |
|
|
corresponding bit in tempX_fan_map), you can set the temperature channel
|
75 |
|
|
mode using temp[1-6]_pwm_enable, 2 is Thermal Cruise mode and 3
|
76 |
|
|
is the SmartFanII mode. Temperature channels will try to speed up or
|
77 |
|
|
slow down all controlled fans, this means one fan can receive different
|
78 |
|
|
PWM value requests from different temperature channels, but the chip
|
79 |
|
|
will always pick the safest (max) PWM value for each fan.
|
80 |
|
|
|
81 |
|
|
In Thermal Cruise mode, the chip attempts to keep the temperature at a
|
82 |
|
|
predefined value, within a tolerance margin. So if tempX_input >
|
83 |
|
|
thermal_cruiseX + toleranceX, the chip will increase the PWM value,
|
84 |
|
|
if tempX_input < thermal_cruiseX - toleranceX, the chip will decrease
|
85 |
|
|
the PWM value. If the temperature is within the tolerance range, the PWM
|
86 |
|
|
value is left unchanged.
|
87 |
|
|
|
88 |
|
|
SmartFanII works differently, you have to define up to 7 PWM, temperature
|
89 |
|
|
trip points, defining a PWM/temperature curve which the chip will follow.
|
90 |
|
|
While not fundamentally different from the Thermal Cruise mode, the
|
91 |
|
|
implementation is quite different, giving you a finer-grained control.
|
92 |
|
|
|
93 |
|
|
* Chassis
|
94 |
|
|
If the case open alarm triggers, it will stay in this state unless cleared
|
95 |
|
|
by any write to the sysfs file "chassis".
|
96 |
|
|
|
97 |
|
|
* VID and VRM
|
98 |
|
|
The VRM version is detected automatically, don't modify the it unless you
|
99 |
|
|
*do* know the cpu VRM version and it's not properly detected.
|
100 |
|
|
|
101 |
|
|
|
102 |
|
|
Notes
|
103 |
|
|
-----
|
104 |
|
|
|
105 |
|
|
Only Fan1-5 and PWM1-3 are guaranteed to always exist, other fan inputs and
|
106 |
|
|
PWM outputs may or may not exist depending on the chip pin configuration.
|