Kernel driver smm665
====================

Supported chips:
  * Summit Microelectronics SMM465
    Prefix: 'smm465'
    Addresses scanned: -
    Datasheet:
      http://www.summitmicro.com/prod_select/summary/SMM465/SMM465DS.pdf
  * Summit Microelectronics SMM665, SMM665B
    Prefix: 'smm665'
    Addresses scanned: -
    Datasheet:
      http://www.summitmicro.com/prod_select/summary/SMM665/SMM665B_2089_20.pdf
  * Summit Microelectronics SMM665C
    Prefix: 'smm665c'
    Addresses scanned: -
    Datasheet:
      http://www.summitmicro.com/prod_select/summary/SMM665C/SMM665C_2125.pdf
  * Summit Microelectronics SMM764
    Prefix: 'smm764'
    Addresses scanned: -
    Datasheet:
      http://www.summitmicro.com/prod_select/summary/SMM764/SMM764_2098.pdf
  * Summit Microelectronics SMM766, SMM766B
    Prefix: 'smm766'
    Addresses scanned: -
    Datasheets:
      http://www.summitmicro.com/prod_select/summary/SMM766/SMM766_2086.pdf
      http://www.summitmicro.com/prod_select/summary/SMM766B/SMM766B_2122.pdf

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


Module Parameters
-----------------

* vref: int
  Default: 1250 (mV)
  Reference voltage on VREF_ADC pin in mV. It should not be necessary to set
  this parameter unless a non-default reference voltage is used.


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

[From datasheet] The SMM665 is an Active DC Output power supply Controller
that monitors, margins and cascade sequences power. The part monitors six
power supply channels as well as VDD, 12V input, two general-purpose analog
inputs and an internal temperature sensor using a 10-bit ADC.

Each monitored channel has its own high and low limits, plus a critical
limit.

Support for SMM465, SMM764, and SMM766 has been implemented but is untested.


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

This driver does not probe for devices, since there is no register which
can be safely used to identify the chip. You will have to instantiate
the devices explicitly. When instantiating the device, you have to specify
its configuration register address.

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


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

This driver uses the values in the datasheet to convert ADC register values
into the values specified in the sysfs-interface document. All attributes are
read only.

Min, max, lcrit, and crit values are used by the chip to trigger external signals
and/or other activity. Triggered signals can include HEALTHY, RST, Power Off,
or Fault depending on the chip configuration. The driver reports values as lcrit
or crit if exceeding the limits triggers RST, Power Off, or Fault, and as min or
max otherwise. For details please see the SMM665 datasheet.

For SMM465 and SMM764, values for Channel E and F are reported but undefined.

in1_input		12V input voltage (mV)
in2_input		3.3V (VDD) input voltage (mV)
in3_input		Channel A voltage (mV)
in4_input		Channel B voltage (mV)
in5_input		Channel C voltage (mV)
in6_input		Channel D voltage (mV)
in7_input		Channel E voltage (mV)
in8_input		Channel F voltage (mV)
in9_input		AIN1 voltage (mV)
in10_input		AIN2 voltage (mV)

in1_min			12v input minimum voltage (mV)
in2_min			3.3V (VDD) input minimum voltage (mV)
in3_min			Channel A minimum voltage (mV)
in4_min			Channel B minimum voltage (mV)
in5_min			Channel C minimum voltage (mV)
in6_min			Channel D minimum voltage (mV)
in7_min			Channel E minimum voltage (mV)
in8_min			Channel F minimum voltage (mV)
in9_min			AIN1 minimum voltage (mV)
in10_min		AIN2 minimum voltage (mV)

in1_max			12v input maximum voltage (mV)
in2_max			3.3V (VDD) input maximum voltage (mV)
in3_max			Channel A maximum voltage (mV)
in4_max			Channel B maximum voltage (mV)
in5_max			Channel C maximum voltage (mV)
in6_max			Channel D maximum voltage (mV)
in7_max			Channel E maximum voltage (mV)
in8_max			Channel F maximum voltage (mV)
in9_max			AIN1 maximum voltage (mV)
in10_max		AIN2 maximum voltage (mV)

in1_lcrit		12v input critical minimum voltage (mV)
in2_lcrit		3.3V (VDD) input critical minimum voltage (mV)
in3_lcrit		Channel A critical minimum voltage (mV)
in4_lcrit		Channel B critical minimum voltage (mV)
in5_lcrit		Channel C critical minimum voltage (mV)
in6_lcrit		Channel D critical minimum voltage (mV)
in7_lcrit		Channel E critical minimum voltage (mV)
in8_lcrit		Channel F critical minimum voltage (mV)
in9_lcrit		AIN1 critical minimum voltage (mV)
in10_lcrit		AIN2 critical minimum voltage (mV)

in1_crit		12v input critical maximum voltage (mV)
in2_crit		3.3V (VDD) input critical maximum voltage (mV)
in3_crit		Channel A critical maximum voltage (mV)
in4_crit		Channel B critical maximum voltage (mV)
in5_crit		Channel C critical maximum voltage (mV)
in6_crit		Channel D critical maximum voltage (mV)
in7_crit		Channel E critical maximum voltage (mV)
in8_crit		Channel F critical maximum voltage (mV)
in9_crit		AIN1 critical maximum voltage (mV)
in10_crit		AIN2 critical maximum voltage (mV)

in1_crit_alarm		12v input critical alarm
in2_crit_alarm		3.3V (VDD) input critical alarm
in3_crit_alarm		Channel A critical alarm
in4_crit_alarm		Channel B critical alarm
in5_crit_alarm		Channel C critical alarm
in6_crit_alarm		Channel D critical alarm
in7_crit_alarm		Channel E critical alarm
in8_crit_alarm		Channel F critical alarm
in9_crit_alarm		AIN1 critical alarm
in10_crit_alarm		AIN2 critical alarm

temp1_input		Chip temperature
temp1_min		Mimimum chip temperature
temp1_max		Maximum chip temperature
temp1_crit		Critical chip temperature
temp1_crit_alarm	Temperature critical alarm