blob: 83bb40c48645ee36a4094c3700f80e4f194d897d [file] [log] [blame]
Rudolf Marek61db0112006-12-12 18:18:30 +01001Kernel driver w83793
2====================
3
4Supported chips:
Mauro Carvalho Chehab0d925622019-04-17 06:46:25 -03005
Rudolf Marek61db0112006-12-12 18:18:30 +01006 * Winbond W83793G/W83793R
Mauro Carvalho Chehab0d925622019-04-17 06:46:25 -03007
Rudolf Marek61db0112006-12-12 18:18:30 +01008 Prefix: 'w83793'
Mauro Carvalho Chehab0d925622019-04-17 06:46:25 -03009
Rudolf Marek61db0112006-12-12 18:18:30 +010010 Addresses scanned: I2C 0x2c - 0x2f
Mauro Carvalho Chehab0d925622019-04-17 06:46:25 -030011
Rudolf Marek61db0112006-12-12 18:18:30 +010012 Datasheet: Still not published
13
14Authors:
Mauro Carvalho Chehab0d925622019-04-17 06:46:25 -030015 - Yuan Mu (Winbond Electronics)
16 - Rudolf Marek <r.marek@assembler.cz>
Rudolf Marek61db0112006-12-12 18:18:30 +010017
18
19Module parameters
20-----------------
21
22* reset int
Mauro Carvalho Chehab0d925622019-04-17 06:46:25 -030023 (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.
Rudolf Marek61db0112006-12-12 18:18:30 +010027
28* force_subclients=bus,caddr,saddr1,saddr2
Mauro Carvalho Chehab0d925622019-04-17 06:46:25 -030029 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.
Rudolf Marek61db0112006-12-12 18:18:30 +010033
34
35Description
36-----------
37
38This driver implements support for Winbond W83793G/W83793R chips.
39
40* Exported features
Mauro Carvalho Chehab0d925622019-04-17 06:46:25 -030041 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.
Rudolf Marek61db0112006-12-12 18:18:30 +010045
46* Sensor resolutions
Mauro Carvalho Chehab0d925622019-04-17 06:46:25 -030047 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.
Rudolf Marek61db0112006-12-12 18:18:30 +010051
52* Temperature sensor types
Mauro Carvalho Chehab0d925622019-04-17 06:46:25 -030053 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).
Rudolf Marek61db0112006-12-12 18:18:30 +010063
64* Alarm mechanism
Mauro Carvalho Chehab0d925622019-04-17 06:46:25 -030065 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.
Rudolf Marek61db0112006-12-12 18:18:30 +010072
73* SmartFan/PWM control
Mauro Carvalho Chehab0d925622019-04-17 06:46:25 -030074 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.
Rudolf Marek61db0112006-12-12 18:18:30 +010079
Mauro Carvalho Chehab0d925622019-04-17 06:46:25 -030080 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.
Rudolf Marek61db0112006-12-12 18:18:30 +010087
Mauro Carvalho Chehab0d925622019-04-17 06:46:25 -030088 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.
Rudolf Marek61db0112006-12-12 18:18:30 +010094
Mauro Carvalho Chehab0d925622019-04-17 06:46:25 -030095 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.
Rudolf Marek61db0112006-12-12 18:18:30 +010099
100* Chassis
Mauro Carvalho Chehab0d925622019-04-17 06:46:25 -0300101 If the case open alarm triggers, it will stay in this state unless cleared
102 by writing 0 to the sysfs file "intrusion0_alarm".
Rudolf Marek61db0112006-12-12 18:18:30 +0100103
104* VID and VRM
Mauro Carvalho Chehab0d925622019-04-17 06:46:25 -0300105 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.
Rudolf Marek61db0112006-12-12 18:18:30 +0100107
108
109Notes
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.