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
======================= =======================================================
