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>

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, five fan rotation speed
sensors, and ten voltage sensors.

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.

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 for fan 1/2/3
and 1, 2, 4, 8, 16, 32, 64 or 128 for fan 4/5) to give the readings more
range or accuracy.

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.

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 gloabal 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.

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)

W83791D TODO:
---------------
Provide a patch for smart-fan control (still need appropriate motherboard/fans)
