Rudolf Marek | 61db011 | 2006-12-12 18:18:30 +0100 | [diff] [blame] | 1 | 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 <r.marek@assembler.cz> |
| 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 |
Gong Jun | 46bed4d | 2007-01-18 22:14:24 +0100 | [diff] [blame] | 48 | Temp1-4 have 2 possible types. It can be read from (and written to) |
Rudolf Marek | 61db011 | 2006-12-12 18:18:30 +0100 | [diff] [blame] | 49 | temp[1-4]_type. |
Rudolf Marek | 61db011 | 2006-12-12 18:18:30 +0100 | [diff] [blame] | 50 | - If the value is 3, it starts monitoring using a remote termal diode |
| 51 | (default). |
Rudolf Marek | 61db011 | 2006-12-12 18:18:30 +0100 | [diff] [blame] | 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 |
Gong Jun | 46bed4d | 2007-01-18 22:14:24 +0100 | [diff] [blame] | 55 | temp[5-6]_type is 4). |
Rudolf Marek | 61db011 | 2006-12-12 18:18:30 +0100 | [diff] [blame] | 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 |
Jean Delvare | a516dc3 | 2011-01-12 21:55:10 +0100 | [diff] [blame] | 95 | by writing 0 to the sysfs file "intrusion0_alarm". |
Rudolf Marek | 61db011 | 2006-12-12 18:18:30 +0100 | [diff] [blame] | 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. |