Back to home page

OSCL-LXR

 
 

    


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.