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

Supported chips:

  * TI UCD90120, UCD90124, UCD90160, UCD90320, UCD9090, and UCD90910

    Prefixes: 'ucd90120', 'ucd90124', 'ucd90160', 'ucd90320', '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/ucd90320.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 UCD90320 is a 32-rail PMBus/I2C addressable power-supply sequencer and
monitor. The 24 integrated ADC channels (AMONx) monitor the power supply
voltage, current, and temperature. Of the 84 GPIO pins, 8 can be used as
digital monitors (DMONx), 32 to enable the power supply (ENx), 24 for margining
(MARx), 16 for logical GPO, and 32 GPIs for cascading, and system function.

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.rst 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.rst for
details.


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

The driver supports standard PMBus driver platform data. Please see
Documentation/hwmon/pmbus.rst 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.
======================= ========================================================
