W83792 review and testing

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi all,

I created the patch for 2.6.x kernels with Makefile Kconfig and documentation.
I'm inviting you to test it, we need to check everyting so please play with it for a while.
Set the limits, fan divisors, observe how it changes and how it should change. Please report back
any problems or things that you did not expect even after reading documentation :)
You can try also the automatic fan regulation interface as described in documenation.
(I wrote it with the help of source code so I dont know if it is correct please check it too)

You will need for that latest lm-sensors CVS version.
You can get it here: http://secure.netroedge.com/~lm78/archive/lm_sensors-daily.tar.gz
The patch is in attachment. I think it does not matter if you apply against 2.6.12 or 2.6.11
or even any other 2.6 kernel. As long it does not say HUNK failed than it is OK.

Rest of people here please help me with documentation review.

Documenation file follows here so it will be easy to correct my mistakes.
This is second version, because I accidently overwrote the first one in late night yesterday.

Thanks for the help,

regards

Rudolf

Kernel driver w83792d
=====================

Supported chips:
  * Winbond W83792D
    Prefix 'w83792d'
    Addresses scanned: I2C 0x2c - 0x2f
    Datasheet: http://www.winbond.com.tw/E-WINBONDHTM/partner/PDFresult.asp?Pname=1035

Author: Chunhao Huang @ Winbond <huang0 at winbond.com.tw>


Module Parameters
-----------------

* init int
  (default 1)
  Use 'init=0' to bypass initializing the chip.
  Try this if your computer crashes when you load the module.

* force_subclients=bus,caddr,saddr,saddr
  This is used to force the i2c addresses for subclients of
  a certain chip. Example usage is `force_subclients=0,0x2f,0x4a,0x4b'
  to force the subclients of chip 0x2f on bus 0 to i2c addresses
  0x4a and 0x4b.


Description
-----------

This driver implements support for the Winbond W83792AD/D.

Detection of the chip can sometimes be foiled because it can be in an
internal state that allows no clean access (Bank with ID register is not
currently chosen). If you know the address of the chip, use a 'force'
parameter; this will put it into a more well-behaved state first.

The driver implements three temperature sensors, seven FAN rotation speed
sensors, nine voltage sensors, and the Smart Fan I(Thermal Cruise mode)
and Smart Fan II sensors.

Temperatures are measured in degrees Celcius and measurement resolution is
0.5 degC. There is one main temperature sensor, and two other sensors. An
alarm is triggered when the temperature gets higher then the Overtemperature
Shutdown value; it stays on until the temperature falls below the Hysteresis
value.

FAN rotation speeds are reported in RPM (rotations per minute). An alarm is
triggered if the rotation speed has dropped below a programmable limit. FAN
readings can be divided by a programmable divider(1, 2, 4, 8, 16, 32, 64 or
128) to give the readings more range or accuracy.

Voltage sensors (also known as IN sensors) report their values in milivolts.
An alarm is triggered if the voltage has crossed a programmable minimum
or maximum limit.

Fan and voltage alarm triggers are "software-level" instead of
"hardware-level", which means the alarm is triggered when "sensors" program
find the measured value exceed the limits, while temperature alams are
triggered by the hardware. Fan and voltage alarms cannot be implemented in
hardware due to lack of "comparator mode" support in W83792D.

In addition to the alarms described above, there is a CHAS alarm on the
chips which triggers if your computer case is open.

The chips only update values each 3 seconds; reading them more often will
do no harm, but will return 'old' values.


W83792D PROBLEMS
----------------
Known problems:
	- This driver is only for Winbond W83792D C version device, there
	  are also some motherboards with B version W83792D device. The
	  calculation method to in6-in7(measured value, limits) is a little
	  different between C and B version. C or B version can be identified
	  by CR[0x49h].
	- The function of vid and vrm has not been finished, because I'm NOT
	  very familiar with them. Adding support is welcomed.
	- The function of chassis open detection needs more tests.

Fan control
-----------

Manual mode
-----------

Works as expected. You just need to specify desired PWM/DC value (fan speed)
in apropriate pwm# file.

Thermal cruise
--------------

At this mode, W83792D provides the Smart Fan system to automatically control
fan speed to keep the temperatures of CPU and the system within specific
range. At first a wanted temperature and interval must be set. This is done
via thermal_cruise# file. The tolerance# file serves to create T +- tolerance
interval. The fan speed will be lowered as long as the current temperature
remains below the thermal_cruise# +- tolerance# value. Once the temperature
exceeds the high limit (T+tolernace), the fan will be turned on with a
specific speed set by pwm# and automatically controlled its PWM duty cycle
with the temperature varying. Three conditions may occur:

(1) If the temperature still exceeds the high limit, PWM duty
cycle will increase slowly.

(2) If the temperature goes below the high limit, but still above the low
limit (T-tolerance), the fan speed will be fixed at the current speed because
the temperature is in the target range.

(3) If the temperature goes below the low limit, PWM duty cycle will decrease
slowly to 0 or a preset stop value until the temperature exceeds the low
limit. (The preset stop value handling is not yet implemented in driver)

Smart Fan II
------------

W83792D also provides a special mode for FAN. Four temperature points are
available. When related temperature sensors detects the temperature in preset
temperature region (sf2_point at _fan# +- tolerance#) it will cause fans to run
on programmed value from sf2_level at _fan#. You need to set four temperatures
for each fan.


/sys files
----------

# denotes number any number from 1 to 3
@ denotes number any number from 1 to 4

pwm# - this file stores PWM duty cycle or DC value (fan speed) in range 0 (stop) to 255 (full)
pwm#_enable - this file controls mode of fan/temperature control:
            * 1 Manual mode
            * 2 Smart Fan II
            * 3 Thermal Cruise
pwm#_mode - Select PWM of DC mode
            * 0 DC
            * 1 PWM
thermal_cruise# - Selects the desired temperature for cruise (deg C)
tolerance# - Value in degrees of Celsius (deg C) for +- T
sf2_point at _fan# - four temperature points for each fan for Smart Fan II
sf2_level at _fan# - four PWM/DC levels for each fan for Smart Fan II
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: patch_w83792d-2.6.12-rc5
Url: http://lists.lm-sensors.org/pipermail/lm-sensors/attachments/20050601/a7f84d75/attachment.pl 


[Index of Archives]     [Linux Kernel]     [Linux Hardware Monitoring]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]

  Powered by Linux