cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

w83792d.rst (6296B)


      1Kernel driver w83792d
      2=====================
      3
      4Supported chips:
      5
      6  * Winbond W83792D
      7
      8    Prefix: 'w83792d'
      9
     10    Addresses scanned: I2C 0x2c - 0x2f
     11
     12    Datasheet: http://www.winbond.com.tw
     13
     14Author: Shane Huang (Winbond)
     15Updated: Roger Lucas
     16
     17
     18Module Parameters
     19-----------------
     20
     21* init int
     22    (default 1)
     23
     24    Use 'init=0' to bypass initializing the chip.
     25    Try this if your computer crashes when you load the module.
     26
     27* force_subclients=bus,caddr,saddr,saddr
     28    This is used to force the i2c addresses for subclients of
     29    a certain chip. Example usage is `force_subclients=0,0x2f,0x4a,0x4b`
     30    to force the subclients of chip 0x2f on bus 0 to i2c addresses
     31    0x4a and 0x4b.
     32
     33
     34Description
     35-----------
     36
     37This driver implements support for the Winbond W83792AD/D.
     38
     39Detection of the chip can sometimes be foiled because it can be in an
     40internal state that allows no clean access (Bank with ID register is not
     41currently selected). If you know the address of the chip, use a 'force'
     42parameter; this will put it into a more well-behaved state first.
     43
     44The driver implements three temperature sensors, seven fan rotation speed
     45sensors, nine voltage sensors, and two automatic fan regulation
     46strategies called: Smart Fan I (Thermal Cruise mode) and Smart Fan II.
     47
     48The driver also implements up to seven fan control outputs: pwm1-7.  Pwm1-7
     49can be configured to PWM output or Analogue DC output via their associated
     50pwmX_mode. Outputs pwm4 through pwm7 may or may not be present depending on
     51how the W83792AD/D was configured by the BIOS.
     52
     53Automatic fan control mode is possible only for fan1-fan3.
     54
     55For all pwmX outputs, a value of 0 means minimum fan speed and a value of
     56255 means maximum fan speed.
     57
     58Temperatures are measured in degrees Celsius and measurement resolution is 1
     59degC for temp1 and 0.5 degC for temp2 and temp3. An alarm is triggered when
     60the temperature gets higher than the Overtemperature Shutdown value; it stays
     61on until the temperature falls below the Hysteresis value.
     62
     63Fan rotation speeds are reported in RPM (rotations per minute). An alarm is
     64triggered if the rotation speed has dropped below a programmable limit. Fan
     65readings can be divided by a programmable divider (1, 2, 4, 8, 16, 32, 64 or
     66128) to give the readings more range or accuracy.
     67
     68Voltage sensors (also known as IN sensors) report their values in millivolts.
     69An alarm is triggered if the voltage has crossed a programmable minimum
     70or maximum limit.
     71
     72Alarms are provided as output from "realtime status register". Following bits
     73are defined:
     74
     75==== ==========
     76bit   alarm on
     77==== ==========
     780    in0
     791    in1
     802    temp1
     813    temp2
     824    temp3
     835    fan1
     846    fan2
     857    fan3
     868    in2
     879    in3
     8810   in4
     8911   in5
     9012   in6
     9113   VID change
     9214   chassis
     9315   fan7
     9416   tart1
     9517   tart2
     9618   tart3
     9719   in7
     9820   in8
     9921   fan4
    10022   fan5
    10123   fan6
    102==== ==========
    103
    104Tart will be asserted while target temperature cannot be achieved after 3 minutes
    105of full speed rotation of corresponding fan.
    106
    107In addition to the alarms described above, there is a CHAS alarm on the chips
    108which triggers if your computer case is open (This one is latched, contrary
    109to realtime alarms).
    110
    111The chips only update values each 3 seconds; reading them more often will
    112do no harm, but will return 'old' values.
    113
    114
    115W83792D PROBLEMS
    116----------------
    117Known problems:
    118	- This driver is only for Winbond W83792D C version device, there
    119	  are also some motherboards with B version W83792D device. The
    120	  calculation method to in6-in7(measured value, limits) is a little
    121	  different between C and B version. C or B version can be identified
    122	  by CR[0x49h].
    123	- The function of vid and vrm has not been finished, because I'm NOT
    124	  very familiar with them. Adding support is welcome.
    125	- The function of chassis open detection needs more tests.
    126	- If you have ASUS server board and chip was not found: Then you will
    127	  need to upgrade to latest (or beta) BIOS. If it does not help please
    128	  contact us.
    129
    130Fan control
    131-----------
    132
    133Manual mode
    134-----------
    135
    136Works as expected. You just need to specify desired PWM/DC value (fan speed)
    137in appropriate pwm# file.
    138
    139Thermal cruise
    140--------------
    141
    142In this mode, W83792D provides the Smart Fan system to automatically control
    143fan speed to keep the temperatures of CPU and the system within specific
    144range. At first a wanted temperature and interval must be set. This is done
    145via thermal_cruise# file. The tolerance# file serves to create T +- tolerance
    146interval. The fan speed will be lowered as long as the current temperature
    147remains below the thermal_cruise# +- tolerance# value. Once the temperature
    148exceeds the high limit (T+tolerance), the fan will be turned on with a
    149specific speed set by pwm# and automatically controlled its PWM duty cycle
    150with the temperature varying. Three conditions may occur:
    151
    152(1) If the temperature still exceeds the high limit, PWM duty
    153cycle will increase slowly.
    154
    155(2) If the temperature goes below the high limit, but still above the low
    156limit (T-tolerance), the fan speed will be fixed at the current speed because
    157the temperature is in the target range.
    158
    159(3) If the temperature goes below the low limit, PWM duty cycle will decrease
    160slowly to 0 or a preset stop value until the temperature exceeds the low
    161limit. (The preset stop value handling is not yet implemented in driver)
    162
    163Smart Fan II
    164------------
    165
    166W83792D also provides a special mode for fan. Four temperature points are
    167available. When related temperature sensors detects the temperature in preset
    168temperature region (sf2_point@_fan# +- tolerance#) it will cause fans to run
    169on programmed value from sf2_level@_fan#. You need to set four temperatures
    170for each fan.
    171
    172
    173/sys files
    174----------
    175
    176pwm[1-7]
    177	- this file stores PWM duty cycle or DC value (fan speed) in range:
    178
    179	    0 (stop) to 255 (full)
    180pwm[1-3]_enable
    181	- this file controls mode of fan/temperature control:
    182
    183	    * 0 Disabled
    184	    * 1 Manual mode
    185	    * 2 Smart Fan II
    186	    * 3 Thermal Cruise
    187pwm[1-7]_mode
    188	- Select PWM or DC mode
    189
    190	    * 0 DC
    191	    * 1 PWM
    192thermal_cruise[1-3]
    193	- Selects the desired temperature for cruise (degC)
    194tolerance[1-3]
    195	- Value in degrees of Celsius (degC) for +- T
    196sf2_point[1-4]_fan[1-3]
    197	- four temperature points for each fan for Smart Fan II
    198sf2_level[1-3]_fan[1-3]
    199	- three PWM/DC levels for each fan for Smart Fan II