0001 Kernel driver w83627ehf
0002 =======================
0003
0004 Supported chips:
0005
0006 * Winbond W83627EHF/EHG (ISA access ONLY)
0007
0008 Prefix: 'w83627ehf'
0009
0010 Addresses scanned: ISA address retrieved from Super I/O registers
0011
0012 Datasheet: not available
0013
0014 * Winbond W83627DHG
0015
0016 Prefix: 'w83627dhg'
0017
0018 Addresses scanned: ISA address retrieved from Super I/O registers
0019
0020 Datasheet: not available
0021
0022 * Winbond W83627DHG-P
0023
0024 Prefix: 'w83627dhg'
0025
0026 Addresses scanned: ISA address retrieved from Super I/O registers
0027
0028 Datasheet: not available
0029
0030 * Winbond W83627UHG
0031
0032 Prefix: 'w83627uhg'
0033
0034 Addresses scanned: ISA address retrieved from Super I/O registers
0035
0036 Datasheet: available from www.nuvoton.com
0037
0038 * Winbond W83667HG
0039
0040 Prefix: 'w83667hg'
0041
0042 Addresses scanned: ISA address retrieved from Super I/O registers
0043
0044 Datasheet: not available
0045
0046 * Winbond W83667HG-B
0047
0048 Prefix: 'w83667hg'
0049
0050 Addresses scanned: ISA address retrieved from Super I/O registers
0051
0052 Datasheet: Available from Nuvoton upon request
0053
0054 * Nuvoton NCT6775F/W83667HG-I
0055
0056 Prefix: 'nct6775'
0057
0058 Addresses scanned: ISA address retrieved from Super I/O registers
0059
0060 Datasheet: Available from Nuvoton upon request
0061
0062 * Nuvoton NCT6776F
0063
0064 Prefix: 'nct6776'
0065
0066 Addresses scanned: ISA address retrieved from Super I/O registers
0067
0068 Datasheet: Available from Nuvoton upon request
0069
0070
0071 Authors:
0072
0073 - Jean Delvare <jdelvare@suse.de>
0074 - Yuan Mu (Winbond)
0075 - Rudolf Marek <r.marek@assembler.cz>
0076 - David Hubbard <david.c.hubbard@gmail.com>
0077 - Gong Jun <JGong@nuvoton.com>
0078
0079 Description
0080 -----------
0081
0082 This driver implements support for the Winbond W83627EHF, W83627EHG,
0083 W83627DHG, W83627DHG-P, W83627UHG, W83667HG, W83667HG-B, W83667HG-I
0084 (NCT6775F), and NCT6776F super I/O chips. We will refer to them collectively
0085 as Winbond chips.
0086
0087 The chips implement 3 to 4 temperature sensors (9 for NCT6775F and NCT6776F),
0088 2 to 5 fan rotation speed sensors, 8 to 10 analog voltage sensors, one VID
0089 (except for 627UHG), alarms with beep warnings (control unimplemented),
0090 and some automatic fan regulation strategies (plus manual fan control mode).
0091
0092 The temperature sensor sources on W82677HG-B, NCT6775F, and NCT6776F are
0093 configurable. temp4 and higher attributes are only reported if its temperature
0094 source differs from the temperature sources of the already reported temperature
0095 sensors. The configured source for each of the temperature sensors is provided
0096 in tempX_label.
0097
0098 Temperatures are measured in degrees Celsius and measurement resolution is 1
0099 degC for temp1 and 0.5 degC for temp2 and temp3. For temp4 and higher,
0100 resolution is 1 degC for W83667HG-B and 0.0 degC for NCT6775F and NCT6776F.
0101 An alarm is triggered when the temperature gets higher than high limit;
0102 it stays on until the temperature falls below the hysteresis value.
0103 Alarms are only supported for temp1, temp2, and temp3.
0104
0105 Fan rotation speeds are reported in RPM (rotations per minute). An alarm is
0106 triggered if the rotation speed has dropped below a programmable limit. Fan
0107 readings can be divided by a programmable divider (1, 2, 4, 8, 16, 32, 64 or
0108 128) to give the readings more range or accuracy. The driver sets the most
0109 suitable fan divisor itself. Some fans might not be present because they
0110 share pins with other functions.
0111
0112 Voltage sensors (also known as IN sensors) report their values in millivolts.
0113 An alarm is triggered if the voltage has crossed a programmable minimum
0114 or maximum limit.
0115
0116 The driver supports automatic fan control mode known as Thermal Cruise.
0117 In this mode, the chip attempts to keep the measured temperature in a
0118 predefined temperature range. If the temperature goes out of range, fan
0119 is driven slower/faster to reach the predefined range again.
0120
0121 The mode works for fan1-fan4. Mapping of temperatures to pwm outputs is as
0122 follows::
0123
0124 temp1 -> pwm1
0125 temp2 -> pwm2
0126 temp3 -> pwm3 (not on 627UHG)
0127 prog -> pwm4 (not on 667HG and 667HG-B; the programmable setting is not
0128 supported by the driver)
0129
0130 /sys files
0131 ----------
0132
0133 name
0134 this is a standard hwmon device entry, it contains the name of
0135 the device (see the prefix in the list of supported devices at
0136 the top of this file)
0137
0138 pwm[1-4]
0139 this file stores PWM duty cycle or DC value (fan speed) in range:
0140
0141 0 (stop) to 255 (full)
0142
0143 pwm[1-4]_enable
0144 this file controls mode of fan/temperature control:
0145
0146 * 1 Manual mode, write to pwm file any value 0-255 (full speed)
0147 * 2 "Thermal Cruise" mode
0148 * 3 "Fan Speed Cruise" mode
0149 * 4 "Smart Fan III" mode
0150 * 5 "Smart Fan IV" mode
0151
0152 SmartFan III mode is not supported on NCT6776F.
0153
0154 SmartFan IV mode is configurable only if it was configured at system
0155 startup, and is only supported for W83677HG-B, NCT6775F, and NCT6776F.
0156 SmartFan IV operational parameters can not be configured at this time,
0157 and the various pwm attributes are not used in SmartFan IV mode.
0158 The attributes can be written to, which is useful if you plan to
0159 configure the system for a different pwm mode. However, the information
0160 returned when reading pwm attributes is unrelated to SmartFan IV
0161 operation.
0162
0163 pwm[1-4]_mode
0164 controls if output is PWM or DC level
0165
0166 * 0 DC output (0 - 12v)
0167 * 1 PWM output
0168
0169 Thermal Cruise mode
0170 -------------------
0171
0172 If the temperature is in the range defined by:
0173
0174 pwm[1-4]_target
0175 set target temperature, unit millidegree Celsius
0176 (range 0 - 127000)
0177 pwm[1-4]_tolerance
0178 tolerance, unit millidegree Celsius (range 0 - 15000)
0179
0180 there are no changes to fan speed. Once the temperature leaves the interval,
0181 fan speed increases (temp is higher) or decreases if lower than desired.
0182 There are defined steps and times, but not exported by the driver yet.
0183
0184 pwm[1-4]_min_output
0185 minimum fan speed (range 1 - 255), when the temperature
0186 is below defined range.
0187 pwm[1-4]_stop_time
0188 how many milliseconds [ms] must elapse to switch
0189 corresponding fan off. (when the temperature was below
0190 defined range).
0191 pwm[1-4]_start_output
0192 minimum fan speed (range 1 - 255) when spinning up
0193 pwm[1-4]_step_output
0194 rate of fan speed change (1 - 255)
0195 pwm[1-4]_stop_output
0196 minimum fan speed (range 1 - 255) when spinning down
0197 pwm[1-4]_max_output
0198 maximum fan speed (range 1 - 255), when the temperature
0199 is above defined range.
0200
0201 Note: last six functions are influenced by other control bits, not yet exported
0202 by the driver, so a change might not have any effect.
0203
0204 Implementation Details
0205 ----------------------
0206
0207 Future driver development should bear in mind that the following registers have
0208 different functions on the 627EHF and the 627DHG. Some registers also have
0209 different power-on default values, but BIOS should already be loading
0210 appropriate defaults. Note that bank selection must be performed as is currently
0211 done in the driver for all register addresses.
0212
0213 ========================= =====================================================
0214 Register(s) Meaning
0215 ========================= =====================================================
0216 0x49 only on DHG, selects temperature source for AUX fan,
0217 CPU fan0
0218 0x4a not completely documented for the EHF and the DHG
0219 documentation assigns different behavior to bits 7
0220 and 6, including extending the temperature input
0221 selection to SmartFan I, not just SmartFan III.
0222 Testing on the EHF will reveal whether they are
0223 compatible or not.
0224 0x58 Chip ID: 0xa1=EHF 0xc1=DHG
0225 0x5e only on DHG, has bits to enable "current mode"
0226 temperature detection and critical temperature
0227 protection
0228 0x45b only on EHF, bit 3, vin4 alarm (EHF supports 10
0229 inputs, only 9 on DHG)
0230 0x552 only on EHF, vin4
0231 0x558 only on EHF, vin4 high limit
0232 0x559 only on EHF, vin4 low limit
0233 0x6b only on DHG, SYS fan critical temperature
0234 0x6c only on DHG, CPU fan0 critical temperature
0235 0x6d only on DHG, AUX fan critical temperature
0236 0x6e only on DHG, CPU fan1 critical temperature
0237 0x50-0x55 and 0x650-0x657 marked as:
0238
0239 - "Test Register" for the EHF
0240 - "Reserved Register" for the DHG
0241 ========================= =====================================================
0242
0243 The DHG also supports PECI, where the DHG queries Intel CPU temperatures, and
0244 the ICH8 southbridge gets that data via PECI from the DHG, so that the
0245 southbridge drives the fans. And the DHG supports SST, a one-wire serial bus.
0246
0247 The DHG-P has an additional automatic fan speed control mode named Smart Fan
0248 (TM) III+. This mode is not yet supported by the driver.