Kernel driver w83791d
=====================

Supported chips:
  * Winbond W83791D
    Prefix: 'w83791d'
    Addresses scanned: I2C 0x2c - 0x2f
    Datasheet: http://www.winbond-usa.com/products/winbond_products/pdfs/PCIC/W83791D_W83791Gb.pdf

Author: Charles Spirakis <bezaur@gmail.com>

This driver was derived from the w83781d.c and w83792d.c source files.

Credits:
  w83781d.c:
    Frodo Looijaard <frodol@dds.nl>,
    Philip Edelbrock <phil@netroedge.com>,
    and Mark Studebaker <mdsxyz123@yahoo.com>
  w83792d.c:
    Chunhao Huang <DZShen@Winbond.com.tw>,
    Rudolf Marek <r.marek@assembler.cz>

Additional contributors:
    Sven Anders <anders@anduras.de>
    Marc Hulsman <m.hulsman@tudelft.nl>

Module Parameters
-----------------

* init boolean
  (default 0)
  Use 'init=1' to have the driver do extra software initializations.
  The default behavior is to do the minimum initialization possible
  and depend on the BIOS to properly setup the chip. If you know you
  have a w83791d and you're having problems, try init=1 before trying
  reset=1.

* reset boolean
  (default 0)
  Use 'reset=1' to reset the chip (via index 0x40, bit 7). The default
  behavior is no chip reset to preserve BIOS settings.

* force_subclients=bus,caddr,saddr,saddr
  This is used to force the i2c addresses for subclients of
  a certain chip. Example usage is `force_subclients=0,0x2f,0x4a,0x4b'
  to force the subclients of chip 0x2f on bus 0 to i2c addresses
  0x4a and 0x4b.


Description
-----------

This driver implements support for the Winbond W83791D chip. The W83791G
chip appears to be the same as the W83791D but is lead free.

Detection of the chip can sometimes be foiled because it can be in an
internal state that allows no clean access (Bank with ID register is not
currently selected). If you know the address of the chip, use a 'force'
parameter; this will put it into a more well-behaved state first.

The driver implements three temperature sensors, ten voltage sensors,
five fan rotation speed sensors and manual PWM control of each fan.

Temperatures are measured in degrees Celsius and measurement resolution is 1
degC for temp1 and 0.5 degC for temp2 and temp3. An alarm is triggered when
the temperature gets higher than the Overtemperature Shutdown value; it stays
on until the temperature falls below the Hysteresis value.

Voltage sensors (also known as IN sensors) report their values in millivolts.
An alarm is triggered if the voltage has crossed a programmable minimum
or maximum limit.

Fan rotation speeds are reported in RPM (rotations per minute). An alarm is
triggered if the rotation speed has dropped below a programmable limit. Fan
readings can be divided by a programmable divider (1, 2, 4, 8, 16,
32, 64 or 128 for all fans) to give the readings more range or accuracy.

Each fan controlled is controlled by PWM. The PWM duty cycle can be read and
set for each fan separately. Valid values range from 0 (stop) to 255 (full).
PWM 1-3 support Thermal Cruise mode, in which the PWMs are automatically
regulated to keep respectively temp 1-3 at a certain target temperature.
See below for the description of the sysfs-interface.

The w83791d has a global bit used to enable beeping from the speaker when an
alarm is triggered as well as a bitmask to enable or disable the beep for
specific alarms. You need both the global beep enable bit and the
corresponding beep bit to be on for a triggered alarm to sound a beep.

The sysfs interface to the global enable is via the sysfs beep_enable file.
This file is used for both legacy and new code.

The sysfs interface to the beep bitmask has migrated from the original legacy
method of a single sysfs beep_mask file to a newer method using multiple
*_beep files as described in .../Documentation/hwmon/sysfs-interface.

A similar change has occured for the bitmap corresponding to the alarms. The
original legacy method used a single sysfs alarms file containing a bitmap
of triggered alarms. The newer method uses multiple sysfs *_alarm files
(again following the pattern described in sysfs-interface).

Since both methods read and write the underlying hardware, they can be used
interchangeably and changes in one will automatically be reflected by
the other. If you use the legacy bitmask method, your user-space code is
responsible for handling the fact that the alarms and beep_mask bitmaps
are not the same (see the table below).

NOTE: All new code should be written to use the newer sysfs-interface
specification as that avoids bitmap problems and is the preferred interface
going forward.

The driver reads the hardware chip values at most once every three seconds.
User mode code requesting values more often will receive cached values.

/sys files
----------
The sysfs-interface is documented in the 'sysfs-interface' file. Only
chip-specific options are documented here.

pwm[1-3]_enable -	this file controls mode of fan/temperature control for
			fan 1-3. Fan/PWM 4-5 only support manual mode.
		            * 1 Manual mode
		            * 2 Thermal Cruise mode
		            * 3 Fan Speed Cruise mode (no further support)

temp[1-3]_target -	defines the target temperature for Thermal Cruise mode.
			Unit: millidegree Celsius
			RW

temp[1-3]_tolerance -	temperature tolerance for Thermal Cruise mode.
			Specifies an interval around the target temperature
			in which the fan speed is not changed.
			Unit: millidegree Celsius
			RW

Alarms bitmap vs. beep_mask bitmask
------------------------------------
For legacy code using the alarms and beep_mask files:

in0 (VCORE)  :  alarms: 0x000001 beep_mask: 0x000001
in1 (VINR0)  :  alarms: 0x000002 beep_mask: 0x002000 <== mismatch
in2 (+3.3VIN):  alarms: 0x000004 beep_mask: 0x000004
in3 (5VDD)   :  alarms: 0x000008 beep_mask: 0x000008
in4 (+12VIN) :  alarms: 0x000100 beep_mask: 0x000100
in5 (-12VIN) :  alarms: 0x000200 beep_mask: 0x000200
in6 (-5VIN)  :  alarms: 0x000400 beep_mask: 0x000400
in7 (VSB)    :  alarms: 0x080000 beep_mask: 0x010000 <== mismatch
in8 (VBAT)   :  alarms: 0x100000 beep_mask: 0x020000 <== mismatch
in9 (VINR1)  :  alarms: 0x004000 beep_mask: 0x004000
temp1        :  alarms: 0x000010 beep_mask: 0x000010
temp2        :  alarms: 0x000020 beep_mask: 0x000020
temp3        :  alarms: 0x002000 beep_mask: 0x000002 <== mismatch
fan1         :  alarms: 0x000040 beep_mask: 0x000040
fan2         :  alarms: 0x000080 beep_mask: 0x000080
fan3         :  alarms: 0x000800 beep_mask: 0x000800
fan4         :  alarms: 0x200000 beep_mask: 0x200000
fan5         :  alarms: 0x400000 beep_mask: 0x400000
tart1        :  alarms: 0x010000 beep_mask: 0x040000 <== mismatch
tart2        :  alarms: 0x020000 beep_mask: 0x080000 <== mismatch
tart3        :  alarms: 0x040000 beep_mask: 0x100000 <== mismatch
case_open    :  alarms: 0x001000 beep_mask: 0x001000
global_enable:  alarms: -------- beep_mask: 0x800000 (modified via beep_enable)
