Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 920fa1ff authored by Guenter Roeck's avatar Guenter Roeck Committed by Linus Torvalds
Browse files

hwmon: driver for SMM665 Six-Channel Active DC Output Controller/Monitor



This driver adds support for the monitoring features of the Summit
Microelectronics SMM665 Six-Channel Active DC Output Controller/Monitor.

Signed-off-by: default avatarGuenter Roeck <guenter.roeck@ericsson.com>
Acked-by: default avatarJonathan Cameron <jic23@cam.ac.uk>
Cc: Jean Delvare <khali@linux-fr.org>
Cc: Hans de Goede <hdegoede@redhat.com>
Cc: Mark Brown <broonie@opensource.wolfsonmicro.com>
Cc: Samuel Ortiz <sameo@linux.intel.com>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent cfa3b24c
Loading
Loading
Loading
Loading
+157 −0
Original line number Diff line number Diff line
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 <guenter.roeck@ericsson.com>


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 tempererature
temp1_min		Mimimum chip tempererature
temp1_max		Maximum chip tempererature
temp1_crit		Critical chip tempererature
temp1_crit_alarm	Temperature critical alarm
+7 −0
Original line number Diff line number Diff line
@@ -5251,6 +5251,13 @@ M: Nicolas Pitre <nico@fluxnic.net>
S:	Odd Fixes
F:	drivers/net/smc91x.*

SMM665 HARDWARE MONITOR DRIVER
M:	Guenter Roeck <linux@roeck-us.net>
L:	lm-sensors@lm-sensors.org
S:	Maintained
F:	Documentation/hwmon/smm665
F:	drivers/hwmon/smm665.c

SMSC47B397 HARDWARE MONITOR DRIVER
M:	"Mark M. Hoffman" <mhoffman@lightlink.com>
L:	lm-sensors@lm-sensors.org
+15 −0
Original line number Diff line number Diff line
@@ -756,6 +756,21 @@ config SENSORS_SIS5595
	  This driver can also be built as a module.  If so, the module
	  will be called sis5595.

config SENSORS_SMM665
	tristate "Summit Microelectronics SMM665"
	depends on I2C && EXPERIMENTAL
	default n
	help
	  If you say yes here you get support for the hardware monitoring
	  features of the Summit Microelectronics SMM665/SMM665B Six-Channel
	  Active DC Output Controller / Monitor.

	  Other supported chips are SMM465, SMM665C, SMM764, and SMM766.
	  Support for those chips is untested.

	  This driver can also be built as a module. If so, the module will
	  be called smm665.

config SENSORS_DME1737
	tristate "SMSC DME1737, SCH311x and compatibles"
	depends on I2C && EXPERIMENTAL
+1 −0
Original line number Diff line number Diff line
@@ -88,6 +88,7 @@ obj-$(CONFIG_SENSORS_PCF8591) += pcf8591.o
obj-$(CONFIG_SENSORS_S3C)	+= s3c-hwmon.o
obj-$(CONFIG_SENSORS_SHT15)	+= sht15.o
obj-$(CONFIG_SENSORS_SIS5595)	+= sis5595.o
obj-$(CONFIG_SENSORS_SMM665)	+= smm665.o
obj-$(CONFIG_SENSORS_SMSC47B397)+= smsc47b397.o
obj-$(CONFIG_SENSORS_SMSC47M1)	+= smsc47m1.o
obj-$(CONFIG_SENSORS_SMSC47M192)+= smsc47m192.o

drivers/hwmon/smm665.c

0 → 100644
+743 −0

File added.

Preview size limit exceeded, changes collapsed.