Kernel driver inspur-ipsps1
===========================

Supported chips:

  * Inspur Power System power supply unit

Author: John Wang <wangzqbj@inspur.com>

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

This driver supports Inspur Power System power supplies. This driver
is a client to the core PMBus driver.

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.

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

The following attributes are supported:

======================= ======================================================
curr1_input		Measured input current
curr1_label		"iin"
curr1_max		Maximum current
curr1_max_alarm		Current high alarm
curr2_input		Measured output current in mA.
curr2_label		"iout1"
curr2_crit		Critical maximum current
curr2_crit_alarm	Current critical high alarm
curr2_max		Maximum current
curr2_max_alarm		Current high alarm

fan1_alarm		Fan 1 warning.
fan1_fault		Fan 1 fault.
fan1_input		Fan 1 speed in RPM.

in1_alarm		Input voltage under-voltage alarm.
in1_input		Measured input voltage in mV.
in1_label		"vin"
in2_input		Measured output voltage in mV.
in2_label		"vout1"
in2_lcrit		Critical minimum output voltage
in2_lcrit_alarm		Output voltage critical low alarm
in2_max			Maximum output voltage
in2_max_alarm		Output voltage high alarm
in2_min			Minimum output voltage
in2_min_alarm		Output voltage low alarm

power1_alarm		Input fault or alarm.
power1_input		Measured input power in uW.
power1_label		"pin"
power1_max		Input power limit
power2_max_alarm	Output power high alarm
power2_max		Output power limit
power2_input		Measured output power in uW.
power2_label		"pout"

temp[1-3]_input		Measured temperature
temp[1-2]_max		Maximum temperature
temp[1-3]_max_alarm	Temperature high alarm

vendor			Manufacturer name
model			Product model
part_number		Product part number
serial_number		Product serial number
fw_version		Firmware version
hw_version		Hardware version
mode			Work mode. Can be set to active or
			standby, when set to standby, PSU will
			automatically switch between standby
			and redundancy mode.
======================= ======================================================
