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