Kernel driver zl6100
====================

Supported chips:
  * Intersil / Zilker Labs ZL2004
    Prefix: 'zl2004'
    Addresses scanned: -
    Datasheet: http://www.intersil.com/data/fn/fn6847.pdf
  * Intersil / Zilker Labs ZL2005
    Prefix: 'zl2005'
    Addresses scanned: -
    Datasheet: http://www.intersil.com/data/fn/fn6848.pdf
  * Intersil / Zilker Labs ZL2006
    Prefix: 'zl2006'
    Addresses scanned: -
    Datasheet: http://www.intersil.com/data/fn/fn6850.pdf
  * Intersil / Zilker Labs ZL2008
    Prefix: 'zl2008'
    Addresses scanned: -
    Datasheet: http://www.intersil.com/data/fn/fn6859.pdf
  * Intersil / Zilker Labs ZL2105
    Prefix: 'zl2105'
    Addresses scanned: -
    Datasheet: http://www.intersil.com/data/fn/fn6851.pdf
  * Intersil / Zilker Labs ZL2106
    Prefix: 'zl2106'
    Addresses scanned: -
    Datasheet: http://www.intersil.com/data/fn/fn6852.pdf
  * Intersil / Zilker Labs ZL6100
    Prefix: 'zl6100'
    Addresses scanned: -
    Datasheet: http://www.intersil.com/data/fn/fn6876.pdf
  * Intersil / Zilker Labs ZL6105
    Prefix: 'zl6105'
    Addresses scanned: -
    Datasheet: http://www.intersil.com/data/fn/fn6906.pdf
  * Intersil / Zilker Labs ZL9101M
    Prefix: 'zl9101'
    Addresses scanned: -
    Datasheet: http://www.intersil.com/data/fn/fn7669.pdf
  * Intersil / Zilker Labs ZL9117M
    Prefix: 'zl9117'
    Addresses scanned: -
    Datasheet: http://www.intersil.com/data/fn/fn7914.pdf
  * Ericsson BMR450, BMR451
    Prefix: 'bmr450', 'bmr451'
    Addresses scanned: -
    Datasheet:
http://archive.ericsson.net/service/internet/picov/get?DocNo=28701-EN/LZT146401
  * Ericsson BMR462, BMR463, BMR464
    Prefixes: 'bmr462', 'bmr463', 'bmr464'
    Addresses scanned: -
    Datasheet:
http://archive.ericsson.net/service/internet/picov/get?DocNo=28701-EN/LZT146256


Author: Guenter Roeck <linux@roeck-us.net>


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

This driver supports hardware montoring for Intersil / Zilker Labs ZL6100 and
compatible digital DC-DC controllers.

The driver is a client driver to the core PMBus driver. Please see
Documentation/hwmon/pmbus and Documentation.hwmon/pmbus-core for details
on PMBus client drivers.


Usage Notes
-----------

This driver does not auto-detect devices. You will have to instantiate the
devices explicitly. Please see Documentation/i2c/instantiating-devices for
details.

WARNING: Do not access chip registers using the i2cdump command, and do not use
any of the i2ctools commands on a command register used to save and restore
configuration data (0x11, 0x12, 0x15, 0x16, and 0xf4). The chips supported by
this driver interpret any access to those command registers (including read
commands) as request to execute the command in question. Unless write accesses
to those registers are protected, this may result in power loss, board resets,
and/or Flash corruption. Worst case, your board may turn into a brick.


Platform data support
---------------------

The driver supports standard PMBus driver platform data.


Module parameters
-----------------

delay
-----

Intersil/Zilker Labs DC-DC controllers require a minimum interval between I2C
bus accesses. According to Intersil, the minimum interval is 2 ms, though 1 ms
appears to be sufficient and has not caused any problems in testing. The problem
is known to affect all currently supported chips. For manual override, the
driver provides a writeable module parameter, 'delay', which can be used to set
the interval to a value between 0 and 65,535 microseconds.


Sysfs entries
-------------

The following attributes are supported. Limits are read-write; all other
attributes are read-only.

in1_label		"vin"
in1_input		Measured input voltage.
in1_min			Minimum input voltage.
in1_max			Maximum input voltage.
in1_lcrit		Critical minimum input voltage.
in1_crit		Critical maximum input voltage.
in1_min_alarm		Input voltage low alarm.
in1_max_alarm		Input voltage high alarm.
in1_lcrit_alarm		Input voltage critical low alarm.
in1_crit_alarm		Input voltage critical high alarm.

in2_label		"vmon"
in2_input		Measured voltage on VMON (ZL2004) or VDRV (ZL9101M,
			ZL9117M) pin. Reported voltage is 16x the voltage on the
			pin (adjusted internally by the chip).
in2_lcrit		Critical minimum VMON/VDRV Voltage.
in2_crit		Critical maximum VMON/VDRV voltage.
in2_lcrit_alarm		VMON/VDRV voltage critical low alarm.
in2_crit_alarm		VMON/VDRV voltage critical high alarm.

			vmon attributes are supported on ZL2004, ZL9101M,
			and ZL9117M only.

inX_label		"vout1"
inX_input		Measured output voltage.
inX_lcrit		Critical minimum output Voltage.
inX_crit		Critical maximum output voltage.
inX_lcrit_alarm		Critical output voltage critical low alarm.
inX_crit_alarm		Critical output voltage critical high alarm.

			X is 3 for ZL2004, ZL9101M, and ZL9117M, 2 otherwise.

curr1_label		"iout1"
curr1_input		Measured output current.
curr1_lcrit		Critical minimum output current.
curr1_crit		Critical maximum output current.
curr1_lcrit_alarm	Output current critical low alarm.
curr1_crit_alarm	Output current critical high alarm.

temp[12]_input		Measured temperature.
temp[12]_min		Minimum temperature.
temp[12]_max		Maximum temperature.
temp[12]_lcrit		Critical low temperature.
temp[12]_crit		Critical high temperature.
temp[12]_min_alarm	Chip temperature low alarm.
temp[12]_max_alarm	Chip temperature high alarm.
temp[12]_lcrit_alarm	Chip temperature critical low alarm.
temp[12]_crit_alarm	Chip temperature critical high alarm.
