Kernel driver ucd9000
=====================

Supported chips:
  * TI UCD90120, UCD90124, UCD90160, UCD9090, and UCD90910
    Prefixes: 'ucd90120', 'ucd90124', 'ucd90160', 'ucd9090', 'ucd90910'
    Addresses scanned: -
    Datasheets:
	http://focus.ti.com/lit/ds/symlink/ucd90120.pdf
	http://focus.ti.com/lit/ds/symlink/ucd90124.pdf
	http://focus.ti.com/lit/ds/symlink/ucd90160.pdf
	http://focus.ti.com/lit/ds/symlink/ucd9090.pdf
	http://focus.ti.com/lit/ds/symlink/ucd90910.pdf

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


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

From datasheets:

The UCD90120 Power Supply Sequencer and System Health Monitor monitors and
sequences up to 12 independent voltage rails. The device integrates a 12-bit
ADC with a 2.5V internal reference for monitoring up to 13 power supply voltage,
current, or temperature inputs.

The UCD90124 is a 12-rail PMBus/I2C addressable power-supply sequencer and
system-health monitor. The device integrates a 12-bit ADC for monitoring up to
13 power-supply voltage, current, or temperature inputs. Twenty-six GPIO pins
can be used for power supply enables, power-on reset signals, external
interrupts, cascading, or other system functions. Twelve of these pins offer PWM
functionality. Using these pins, the UCD90124 offers support for fan control,
margining, and general-purpose PWM functions.

The UCD90160 is a 16-rail PMBus/I2C addressable power-supply sequencer and
monitor. The device integrates a 12-bit ADC for monitoring up to 16 power-supply
voltage inputs. Twenty-six GPIO pins can be used for power supply enables,
power-on reset signals, external interrupts, cascading, or other system
functions. Twelve of these pins offer PWM functionality. Using these pins, the
UCD90160 offers support for margining, and general-purpose PWM functions.

The UCD9090 is a 10-rail PMBus/I2C addressable power-supply sequencer and
monitor. The device integrates a 12-bit ADC for monitoring up to 10 power-supply
voltage inputs. Twenty-three GPIO pins can be used for power supply enables,
power-on reset signals, external interrupts, cascading, or other system
functions. Ten of these pins offer PWM functionality. Using these pins, the
UCD9090 offers support for margining, and general-purpose PWM functions.

The UCD90910 is a ten-rail I2C / PMBus addressable power-supply sequencer and
system-health monitor. The device integrates a 12-bit ADC for monitoring up to
13 power-supply voltage, current, or temperature inputs.

This driver is a client driver to the core PMBus driver. Please see
Documentation/hwmon/pmbus 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.


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

The driver supports standard PMBus driver platform data. Please see
Documentation/hwmon/pmbus for details.


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

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

in[1-12]_label		"vout[1-12]".
in[1-12]_input		Measured voltage. From READ_VOUT register.
in[1-12]_min		Minimum Voltage. From VOUT_UV_WARN_LIMIT register.
in[1-12]_max		Maximum voltage. From VOUT_OV_WARN_LIMIT register.
in[1-12]_lcrit		Critical minimum Voltage. VOUT_UV_FAULT_LIMIT register.
in[1-12]_crit		Critical maximum voltage. From VOUT_OV_FAULT_LIMIT register.
in[1-12]_min_alarm	Voltage low alarm. From VOLTAGE_UV_WARNING status.
in[1-12]_max_alarm	Voltage high alarm. From VOLTAGE_OV_WARNING status.
in[1-12]_lcrit_alarm	Voltage critical low alarm. From VOLTAGE_UV_FAULT status.
in[1-12]_crit_alarm	Voltage critical high alarm. From VOLTAGE_OV_FAULT status.

curr[1-12]_label	"iout[1-12]".
curr[1-12]_input	Measured current. From READ_IOUT register.
curr[1-12]_max		Maximum current. From IOUT_OC_WARN_LIMIT register.
curr[1-12]_lcrit	Critical minimum output current. From IOUT_UC_FAULT_LIMIT
			register.
curr[1-12]_crit		Critical maximum current. From IOUT_OC_FAULT_LIMIT register.
curr[1-12]_max_alarm	Current high alarm. From IOUT_OC_WARNING status.
curr[1-12]_crit_alarm	Current critical high alarm. From IOUT_OC_FAULT status.

			For each attribute index, either voltage or current is
			reported, but not both. If voltage or current is
			reported depends on the chip configuration.

temp[1-2]_input		Measured temperatures. From READ_TEMPERATURE_1 and
			READ_TEMPERATURE_2 registers.
temp[1-2]_max		Maximum temperature. From OT_WARN_LIMIT register.
temp[1-2]_crit		Critical high temperature. From OT_FAULT_LIMIT register.
temp[1-2]_max_alarm	Temperature high alarm.
temp[1-2]_crit_alarm	Temperature critical high alarm.

fan[1-4]_input		Fan RPM.
fan[1-4]_alarm		Fan alarm.
fan[1-4]_fault		Fan fault.

			Fan attributes are only available on chips supporting
			fan control (UCD90124, UCD90910). Attribute files are
			created only for enabled fans.
			Note that even though UCD90910 supports up to 10 fans,
			only up to four fans are currently supported.
