Kernel driver ltc4245
=====================

Supported chips:
  * Linear Technology LTC4245
    Prefix: 'ltc4245'
    Addresses scanned: 0x20-0x3f
    Datasheet:
        http://www.linear.com/pc/downloadDocument.do?navId=H0,C1,C1003,C1006,C1140,P19392,D13517

Author: Ira W. Snyder <iws@ovro.caltech.edu>


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

The LTC4245 controller allows a board to be safely inserted and removed
from a live backplane in multiple supply systems such as CompactPCI and
PCI Express.


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

This driver does not probe for LTC4245 devices, due to the fact that some
of the possible addresses are unfriendly to probing. You will have to
instantiate the devices explicitly.

Example: the following will load the driver for an LTC4245 at address 0x23
on I2C bus #1:
$ modprobe ltc4245
$ echo ltc4245 0x23 > /sys/bus/i2c/devices/i2c-1/new_device


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

The LTC4245 has built-in limits for over and under current warnings. This
makes it very likely that the reference circuit will be used.

This driver uses the values in the datasheet to change the register values
into the values specified in the sysfs-interface document. The current readings
rely on the sense resistors listed in Table 2: "Sense Resistor Values".

in1_input		12v input voltage (mV)
in2_input		5v  input voltage (mV)
in3_input		3v  input voltage (mV)
in4_input		Vee (-12v) input voltage (mV)

in1_min_alarm		12v input undervoltage alarm
in2_min_alarm		5v  input undervoltage alarm
in3_min_alarm		3v  input undervoltage alarm
in4_min_alarm		Vee (-12v) input undervoltage alarm

curr1_input		12v current (mA)
curr2_input		5v  current (mA)
curr3_input		3v  current (mA)
curr4_input		Vee (-12v) current (mA)

curr1_max_alarm		12v overcurrent alarm
curr2_max_alarm		5v  overcurrent alarm
curr3_max_alarm		3v  overcurrent alarm
curr4_max_alarm		Vee (-12v) overcurrent alarm

in5_input		12v output voltage (mV)
in6_input		5v  output voltage (mV)
in7_input		3v  output voltage (mV)
in8_input		Vee (-12v) output voltage (mV)

in5_min_alarm		12v output undervoltage alarm
in6_min_alarm		5v  output undervoltage alarm
in7_min_alarm		3v  output undervoltage alarm
in8_min_alarm		Vee (-12v) output undervoltage alarm

in9_input		GPIO voltage data (see note 1)
in10_input		GPIO voltage data (see note 1)
in11_input		GPIO voltage data (see note 1)

power1_input		12v power usage (mW)
power2_input		5v  power usage (mW)
power3_input		3v  power usage (mW)
power4_input		Vee (-12v) power usage (mW)


Note 1
------

If you have NOT configured the driver to sample all GPIO pins as analog
voltages, then the in10_input and in11_input sysfs attributes will not be
created. The driver will sample the GPIO pin that is currently connected to the
ADC as an analog voltage, and report the value in in9_input.

If you have configured the driver to sample all GPIO pins as analog voltages,
then they will be sampled in round-robin fashion. If userspace reads too
slowly, -EAGAIN will be returned when you read the sysfs attribute containing
the sensor reading.

The LTC4245 chip can be configured to sample all GPIO pins with two methods:
1) platform data -- see include/linux/platform_data/ltc4245.h
2) OF device tree -- add the "ltc4245,use-extra-gpios" property to each chip

The default mode of operation is to sample a single GPIO pin.
