1Kernel driver w83792d
2=====================
3
4Supported chips:
5  * Winbond W83792D
6    Prefix: 'w83792d'
7    Addresses scanned: I2C 0x2c - 0x2f
8    Datasheet: http://www.winbond.com.tw
9
10Author: Shane Huang (Winbond)
11Updated: Roger Lucas
12
13
14Module Parameters
15-----------------
16
17* init int
18  (default 1)
19  Use 'init=0' to bypass initializing the chip.
20  Try this if your computer crashes when you load the module.
21
22* force_subclients=bus,caddr,saddr,saddr
23  This is used to force the i2c addresses for subclients of
24  a certain chip. Example usage is `force_subclients=0,0x2f,0x4a,0x4b'
25  to force the subclients of chip 0x2f on bus 0 to i2c addresses
26  0x4a and 0x4b.
27
28
29Description
30-----------
31
32This driver implements support for the Winbond W83792AD/D.
33
34Detection of the chip can sometimes be foiled because it can be in an
35internal state that allows no clean access (Bank with ID register is not
36currently selected). If you know the address of the chip, use a 'force'
37parameter; this will put it into a more well-behaved state first.
38
39The driver implements three temperature sensors, seven fan rotation speed
40sensors, nine voltage sensors, and two automatic fan regulation
41strategies called: Smart Fan I (Thermal Cruise mode) and Smart Fan II.
42
43The driver also implements up to seven fan control outputs: pwm1-7.  Pwm1-7
44can be configured to PWM output or Analogue DC output via their associated
45pwmX_mode. Outputs pwm4 through pwm7 may or may not be present depending on
46how the W83792AD/D was configured by the BIOS.
47
48Automatic fan control mode is possible only for fan1-fan3.
49
50For all pwmX outputs, a value of 0 means minimum fan speed and a value of
51255 means maximum fan speed.
52
53Temperatures are measured in degrees Celsius and measurement resolution is 1
54degC for temp1 and 0.5 degC for temp2 and temp3. An alarm is triggered when
55the temperature gets higher than the Overtemperature Shutdown value; it stays
56on until the temperature falls below the Hysteresis value.
57
58Fan rotation speeds are reported in RPM (rotations per minute). An alarm is
59triggered if the rotation speed has dropped below a programmable limit. Fan
60readings can be divided by a programmable divider (1, 2, 4, 8, 16, 32, 64 or
61128) to give the readings more range or accuracy.
62
63Voltage sensors (also known as IN sensors) report their values in millivolts.
64An alarm is triggered if the voltage has crossed a programmable minimum
65or maximum limit.
66
67Alarms are provided as output from "realtime status register". Following bits
68are defined:
69
70bit - alarm on:
710  - in0
721  - in1
732  - temp1
743  - temp2
754  - temp3
765  - fan1
776  - fan2
787  - fan3
798  - in2
809  - in3
8110 - in4
8211 - in5
8312 - in6
8413 - VID change
8514 - chassis
8615 - fan7
8716 - tart1
8817 - tart2
8918 - tart3
9019 - in7
9120 - in8
9221 - fan4
9322 - fan5
9423 - fan6
95
96Tart will be asserted while target temperature cannot be achieved after 3 minutes
97of full speed rotation of corresponding fan.
98
99In addition to the alarms described above, there is a CHAS alarm on the chips
100which triggers if your computer case is open (This one is latched, contrary
101to realtime alarms).
102
103The chips only update values each 3 seconds; reading them more often will
104do no harm, but will return 'old' values.
105
106
107W83792D PROBLEMS
108----------------
109Known problems:
110	- This driver is only for Winbond W83792D C version device, there
111	  are also some motherboards with B version W83792D device. The
112	  calculation method to in6-in7(measured value, limits) is a little
113	  different between C and B version. C or B version can be identified
114	  by CR[0x49h].
115	- The function of vid and vrm has not been finished, because I'm NOT
116	  very familiar with them. Adding support is welcome.
117��	- The function of chassis open detection needs more tests.
118	- If you have ASUS server board and chip was not found: Then you will
119	  need to upgrade to latest (or beta) BIOS. If it does not help please
120	  contact us.
121
122Fan control
123-----------
124
125Manual mode
126-----------
127
128Works as expected. You just need to specify desired PWM/DC value (fan speed)
129in appropriate pwm# file.
130
131Thermal cruise
132--------------
133
134In this mode, W83792D provides the Smart Fan system to automatically control
135fan speed to keep the temperatures of CPU and the system within specific
136range. At first a wanted temperature and interval must be set. This is done
137via thermal_cruise# file. The tolerance# file serves to create T +- tolerance
138interval. The fan speed will be lowered as long as the current temperature
139remains below the thermal_cruise# +- tolerance# value. Once the temperature
140exceeds the high limit (T+tolerance), the fan will be turned on with a
141specific speed set by pwm# and automatically controlled its PWM duty cycle
142with the temperature varying. Three conditions may occur:
143
144(1) If the temperature still exceeds the high limit, PWM duty
145cycle will increase slowly.
146
147(2) If the temperature goes below the high limit, but still above the low
148limit (T-tolerance), the fan speed will be fixed at the current speed because
149the temperature is in the target range.
150
151(3) If the temperature goes below the low limit, PWM duty cycle will decrease
152slowly to 0 or a preset stop value until the temperature exceeds the low
153limit. (The preset stop value handling is not yet implemented in driver)
154
155Smart Fan II
156------------
157
158W83792D also provides a special mode for fan. Four temperature points are
159available. When related temperature sensors detects the temperature in preset
160temperature region (sf2_point@_fan# +- tolerance#) it will cause fans to run
161on programmed value from sf2_level@_fan#. You need to set four temperatures
162for each fan.
163
164
165/sys files
166----------
167
168pwm[1-7] - this file stores PWM duty cycle or DC value (fan speed) in range:
169	0 (stop) to 255 (full)
170pwm[1-3]_enable - this file controls mode of fan/temperature control:
171            * 0 Disabled
172            * 1 Manual mode
173            * 2 Smart Fan II
174            * 3 Thermal Cruise
175pwm[1-7]_mode - Select PWM or DC mode
176            * 0 DC
177            * 1 PWM
178thermal_cruise[1-3] - Selects the desired temperature for cruise (degC)
179tolerance[1-3] - Value in degrees of Celsius (degC) for +- T
180sf2_point[1-4]_fan[1-3] - four temperature points for each fan for Smart Fan II
181sf2_level[1-3]_fan[1-3] - three PWM/DC levels for each fan for Smart Fan II
182