Back to home page

OSCL-LXR

 
 

    


0001 Kernel driver w83792d
0002 =====================
0003 
0004 Supported chips:
0005 
0006   * Winbond W83792D
0007 
0008     Prefix: 'w83792d'
0009 
0010     Addresses scanned: I2C 0x2c - 0x2f
0011 
0012     Datasheet: http://www.winbond.com.tw
0013 
0014 Author: Shane Huang (Winbond)
0015 Updated: Roger Lucas
0016 
0017 
0018 Module Parameters
0019 -----------------
0020 
0021 * init int
0022     (default 1)
0023 
0024     Use 'init=0' to bypass initializing the chip.
0025     Try this if your computer crashes when you load the module.
0026 
0027 * force_subclients=bus,caddr,saddr,saddr
0028     This is used to force the i2c addresses for subclients of
0029     a certain chip. Example usage is `force_subclients=0,0x2f,0x4a,0x4b`
0030     to force the subclients of chip 0x2f on bus 0 to i2c addresses
0031     0x4a and 0x4b.
0032 
0033 
0034 Description
0035 -----------
0036 
0037 This driver implements support for the Winbond W83792AD/D.
0038 
0039 Detection of the chip can sometimes be foiled because it can be in an
0040 internal state that allows no clean access (Bank with ID register is not
0041 currently selected). If you know the address of the chip, use a 'force'
0042 parameter; this will put it into a more well-behaved state first.
0043 
0044 The driver implements three temperature sensors, seven fan rotation speed
0045 sensors, nine voltage sensors, and two automatic fan regulation
0046 strategies called: Smart Fan I (Thermal Cruise mode) and Smart Fan II.
0047 
0048 The driver also implements up to seven fan control outputs: pwm1-7.  Pwm1-7
0049 can be configured to PWM output or Analogue DC output via their associated
0050 pwmX_mode. Outputs pwm4 through pwm7 may or may not be present depending on
0051 how the W83792AD/D was configured by the BIOS.
0052 
0053 Automatic fan control mode is possible only for fan1-fan3.
0054 
0055 For all pwmX outputs, a value of 0 means minimum fan speed and a value of
0056 255 means maximum fan speed.
0057 
0058 Temperatures are measured in degrees Celsius and measurement resolution is 1
0059 degC for temp1 and 0.5 degC for temp2 and temp3. An alarm is triggered when
0060 the temperature gets higher than the Overtemperature Shutdown value; it stays
0061 on until the temperature falls below the Hysteresis value.
0062 
0063 Fan rotation speeds are reported in RPM (rotations per minute). An alarm is
0064 triggered if the rotation speed has dropped below a programmable limit. Fan
0065 readings can be divided by a programmable divider (1, 2, 4, 8, 16, 32, 64 or
0066 128) to give the readings more range or accuracy.
0067 
0068 Voltage sensors (also known as IN sensors) report their values in millivolts.
0069 An alarm is triggered if the voltage has crossed a programmable minimum
0070 or maximum limit.
0071 
0072 Alarms are provided as output from "realtime status register". Following bits
0073 are defined:
0074 
0075 ==== ==========
0076 bit   alarm on
0077 ==== ==========
0078 0    in0
0079 1    in1
0080 2    temp1
0081 3    temp2
0082 4    temp3
0083 5    fan1
0084 6    fan2
0085 7    fan3
0086 8    in2
0087 9    in3
0088 10   in4
0089 11   in5
0090 12   in6
0091 13   VID change
0092 14   chassis
0093 15   fan7
0094 16   tart1
0095 17   tart2
0096 18   tart3
0097 19   in7
0098 20   in8
0099 21   fan4
0100 22   fan5
0101 23   fan6
0102 ==== ==========
0103 
0104 Tart will be asserted while target temperature cannot be achieved after 3 minutes
0105 of full speed rotation of corresponding fan.
0106 
0107 In addition to the alarms described above, there is a CHAS alarm on the chips
0108 which triggers if your computer case is open (This one is latched, contrary
0109 to realtime alarms).
0110 
0111 The chips only update values each 3 seconds; reading them more often will
0112 do no harm, but will return 'old' values.
0113 
0114 
0115 W83792D PROBLEMS
0116 ----------------
0117 Known problems:
0118         - This driver is only for Winbond W83792D C version device, there
0119           are also some motherboards with B version W83792D device. The
0120           calculation method to in6-in7(measured value, limits) is a little
0121           different between C and B version. C or B version can be identified
0122           by CR[0x49h].
0123         - The function of vid and vrm has not been finished, because I'm NOT
0124           very familiar with them. Adding support is welcome.
0125         - The function of chassis open detection needs more tests.
0126         - If you have ASUS server board and chip was not found: Then you will
0127           need to upgrade to latest (or beta) BIOS. If it does not help please
0128           contact us.
0129 
0130 Fan control
0131 -----------
0132 
0133 Manual mode
0134 -----------
0135 
0136 Works as expected. You just need to specify desired PWM/DC value (fan speed)
0137 in appropriate pwm# file.
0138 
0139 Thermal cruise
0140 --------------
0141 
0142 In this mode, W83792D provides the Smart Fan system to automatically control
0143 fan speed to keep the temperatures of CPU and the system within specific
0144 range. At first a wanted temperature and interval must be set. This is done
0145 via thermal_cruise# file. The tolerance# file serves to create T +- tolerance
0146 interval. The fan speed will be lowered as long as the current temperature
0147 remains below the thermal_cruise# +- tolerance# value. Once the temperature
0148 exceeds the high limit (T+tolerance), the fan will be turned on with a
0149 specific speed set by pwm# and automatically controlled its PWM duty cycle
0150 with the temperature varying. Three conditions may occur:
0151 
0152 (1) If the temperature still exceeds the high limit, PWM duty
0153 cycle will increase slowly.
0154 
0155 (2) If the temperature goes below the high limit, but still above the low
0156 limit (T-tolerance), the fan speed will be fixed at the current speed because
0157 the temperature is in the target range.
0158 
0159 (3) If the temperature goes below the low limit, PWM duty cycle will decrease
0160 slowly to 0 or a preset stop value until the temperature exceeds the low
0161 limit. (The preset stop value handling is not yet implemented in driver)
0162 
0163 Smart Fan II
0164 ------------
0165 
0166 W83792D also provides a special mode for fan. Four temperature points are
0167 available. When related temperature sensors detects the temperature in preset
0168 temperature region (sf2_point@_fan# +- tolerance#) it will cause fans to run
0169 on programmed value from sf2_level@_fan#. You need to set four temperatures
0170 for each fan.
0171 
0172 
0173 /sys files
0174 ----------
0175 
0176 pwm[1-7]
0177         - this file stores PWM duty cycle or DC value (fan speed) in range:
0178 
0179             0 (stop) to 255 (full)
0180 pwm[1-3]_enable
0181         - this file controls mode of fan/temperature control:
0182 
0183             * 0 Disabled
0184             * 1 Manual mode
0185             * 2 Smart Fan II
0186             * 3 Thermal Cruise
0187 pwm[1-7]_mode
0188         - Select PWM or DC mode
0189 
0190             * 0 DC
0191             * 1 PWM
0192 thermal_cruise[1-3]
0193         - Selects the desired temperature for cruise (degC)
0194 tolerance[1-3]
0195         - Value in degrees of Celsius (degC) for +- T
0196 sf2_point[1-4]_fan[1-3]
0197         - four temperature points for each fan for Smart Fan II
0198 sf2_level[1-3]_fan[1-3]
0199         - three PWM/DC levels for each fan for Smart Fan II