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

Commit 92ddcf4a authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull hwmon update from Guenter Roeck:

 - New drivers for NCT6775, NCT6776, NCT6779, and LM95234.

 - Added support for LTC2974, LTC3883, LM25056, TMP431, TMP432, ADT7310,
   and ADT7320 to existing drivers.

 - Various code cleanups and minor improvements.

* tag 'hwmon-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging: (54 commits)
  hwmon: (nct6775) Fix coding style problems
  hwmon: (nct6775) Constify strings
  hwmon: (tmp401) Add support for TMP432
  hwmon: (tmp401) Add support for update_interval attribute
  hwmon: (tmp401) Reset valid flag when resetting temperature history
  hwmon: (tmp401) Simplification and cleanup
  hwmon: (tmp401) Use sysfs_create_group / sysfs_remove_group
  hwmon: (tmp401) Drop unused defines, use BIT for bit masks
  hwmon: (nct6775) Use ARRAY_SIZE for loops where possible
  documentation: hwmon: Fix typo in documentation/hwmon
  hwmon: (nct6775) Enable both AUXTIN and VIN3 on NCT6776
  hwmon: (ad7314) use spi_get_drvdata() and spi_set_drvdata()
  MAINTAINERS: Add myself as maintainer for the NCT6775 driver
  hwmon: (nct6775) Expand scope of supported chips
  hwmon: (gpio-fan) Use is_visible to determine if attributes should be created
  hwmon: (tmp401) Fix device detection for TMP411B and TMP411C
  hwmon: Add driver for LM95234
  hwmon: (tmp401) Add support for TMP431
  hwmon: (pmbus/lm25066) Add support for LM25056
  hwmon: (pmbus/lm25066) Refactor device specific coefficients
  ...
parents 000a74f4 6445e660
Loading
Loading
Loading
Loading
+29 −0
Original line number Diff line number Diff line
NTC Thermistor hwmon sensors
-------------------------------

Requires node properties:
- "compatible" value : one of
	"ntc,ncp15wb473"
	"ntc,ncp18wb473"
	"ntc,ncp21wb473"
	"ntc,ncp03wb473"
	"ntc,ncp15wl333"
- "pullup-uv"	Pull up voltage in micro volts
- "pullup-ohm"	Pull up resistor value in ohms
- "pulldown-ohm" Pull down resistor value in ohms
- "connected-positive" Always ON, If not specified.
		Status change is possible.
- "io-channels"	Channel node of ADC to be used for
		conversion.

Read more about iio bindings at
	Documentation/devicetree/bindings/iio/iio-bindings.txt

Example:
	ncp15wb473@0 {
		compatible = "ntc,ncp15wb473";
		pullup-uv = <1800000>;
		pullup-ohm = <47000>;
		pulldown-ohm = <0>;
		io-channels = <&adc 3>;
	};
+30 −17
Original line number Diff line number Diff line
@@ -12,29 +12,42 @@ Supported chips:
    Addresses scanned: None
    Datasheet: Publicly available at the Analog Devices website
               http://www.analog.com/static/imported-files/data_sheets/ADT7420.pdf
  * Analog Devices ADT7310
    Prefix: 'adt7310'
    Addresses scanned: None
    Datasheet: Publicly available at the Analog Devices website
               http://www.analog.com/static/imported-files/data_sheets/ADT7310.pdf
  * Analog Devices ADT7320
    Prefix: 'adt7320'
    Addresses scanned: None
    Datasheet: Publicly available at the Analog Devices website
               http://www.analog.com/static/imported-files/data_sheets/ADT7320.pdf

Author: Hartmut Knaack <knaack.h@gmx.de>

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

The ADT7410 is a temperature sensor with rated temperature range of -55°C to
+150°C. It has a high accuracy of +/-0.5°C and can be operated at a resolution
of 13 bits (0.0625°C) or 16 bits (0.0078°C). The sensor provides an INT pin to
indicate that a minimum or maximum temperature set point has been exceeded, as
well as a critical temperature (CT) pin to indicate that the critical
temperature set point has been exceeded. Both pins can be set up with a common
hysteresis of 0°C - 15°C and a fault queue, ranging from 1 to 4 events. Both
pins can individually set to be active-low or active-high, while the whole
device can either run in comparator mode or interrupt mode. The ADT7410
supports continous temperature sampling, as well as sampling one temperature
value per second or even justget one sample on demand for power saving.
Besides, it can completely power down its ADC, if power management is
required.

The ADT7420 is register compatible, the only differences being the package,
a slightly narrower operating temperature range (-40°C to +150°C), and a
better accuracy (0.25°C instead of 0.50°C.)
The ADT7310/ADT7410 is a temperature sensor with rated temperature range of
-55°C to +150°C. It has a high accuracy of +/-0.5°C and can be operated at a
resolution of 13 bits (0.0625°C) or 16 bits (0.0078°C). The sensor provides an
INT pin to indicate that a minimum or maximum temperature set point has been
exceeded, as well as a critical temperature (CT) pin to indicate that the
critical temperature set point has been exceeded. Both pins can be set up with a
common hysteresis of 0°C - 15°C and a fault queue, ranging from 1 to 4 events.
Both pins can individually set to be active-low or active-high, while the whole
device can either run in comparator mode or interrupt mode. The ADT7410 supports
continuous temperature sampling, as well as sampling one temperature value per
second or even just get one sample on demand for power saving. Besides, it can
completely power down its ADC, if power management is required.

The ADT7320/ADT7420 is register compatible, the only differences being the
package, a slightly narrower operating temperature range (-40°C to +150°C), and
a better accuracy (0.25°C instead of 0.50°C.)

The difference between the ADT7310/ADT7320 and ADT7410/ADT7420 is the control
interface, the ADT7310 and ADT7320 use SPI while the ADT7410 and ADT7420 use
I2C.

Configuration Notes
-------------------
+23 −11
Original line number Diff line number Diff line
Kernel driver max8688
Kernel driver lm25066
=====================

Supported chips:
  * TI LM25056
    Prefix: 'lm25056'
    Addresses scanned: -
    Datasheets:
	http://www.ti.com/lit/gpn/lm25056
	http://www.ti.com/lit/gpn/lm25056a
  * National Semiconductor LM25066
    Prefix: 'lm25066'
    Addresses scanned: -
@@ -25,8 +31,9 @@ Author: Guenter Roeck <linux@roeck-us.net>
Description
-----------

This driver supports hardware montoring for National Semiconductor LM25066,
LM5064, and LM5064 Power Management, Monitoring, Control, and Protection ICs.
This driver supports hardware montoring for National Semiconductor / TI LM25056,
LM25066, LM5064, and LM5064 Power Management, Monitoring, Control, and
Protection ICs.

The driver is a client driver to the core PMBus driver. Please see
Documentation/hwmon/pmbus for details on PMBus client drivers.
@@ -60,14 +67,19 @@ in1_max Maximum input voltage.
in1_min_alarm		Input voltage low alarm.
in1_max_alarm		Input voltage high alarm.

in2_label		"vout1"
in2_input		Measured output voltage.
in2_average		Average measured output voltage.
in2_min			Minimum output voltage.
in2_min_alarm		Output voltage low alarm.

in3_label		"vout2"
in3_input		Measured voltage on vaux pin
in2_label		"vmon"
in2_input		Measured voltage on VAUX pin
in2_min			Minimum VAUX voltage (LM25056 only).
in2_max			Maximum VAUX voltage (LM25056 only).
in2_min_alarm		VAUX voltage low alarm (LM25056 only).
in2_max_alarm		VAUX voltage high alarm (LM25056 only).

in3_label		"vout1"
			Not supported on LM25056.
in3_input		Measured output voltage.
in3_average		Average measured output voltage.
in3_min			Minimum output voltage.
in3_min_alarm		Output voltage low alarm.

curr1_label		"iin"
curr1_input		Measured input current.
+36 −0
Original line number Diff line number Diff line
Kernel driver lm95234
=====================

Supported chips:
  * National Semiconductor / Texas Instruments LM95234
    Addresses scanned: I2C 0x18, 0x4d, 0x4e
    Datasheet: Publicly available at the Texas Instruments website
               http://www.ti.com/product/lm95234


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

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

LM95234 is an 11-bit digital temperature sensor with a 2-wire System Management
Bus (SMBus) interface and TrueTherm technology that can very accurately monitor
the temperature of four remote diodes as well as its own temperature.
The four remote diodes can be external devices such as microprocessors,
graphics processors or diode-connected 2N3904s. The LM95234's TruTherm
beta compensation technology allows sensing of 90 nm or 65 nm process
thermal diodes accurately.

All temperature values are given in millidegrees Celsius. Temperature
is provided within a range of -127 to +255 degrees (+127.875 degrees for
the internal sensor). Resolution depends on temperature input and range.

Each sensor has its own maximum limit, but the hysteresis is common to all
channels. The hysteresis is configurable with the tem1_max_hyst attribute and
affects the hysteresis on all channels. The first two external sensors also
have a critical limit.

The lm95234 driver can change its update interval to a fixed set of values.
It will round up to the next selectable interval. See the datasheet for exact
values. Reading sensor values more often will do no harm, but will return
'old' values.
+89 −54
Original line number Diff line number Diff line
@@ -2,6 +2,10 @@ Kernel driver ltc2978
=====================

Supported chips:
  * Linear Technology LTC2974
    Prefix: 'ltc2974'
    Addresses scanned: -
    Datasheet: http://www.linear.com/product/ltc2974
  * Linear Technology LTC2978
    Prefix: 'ltc2978'
    Addresses scanned: -
@@ -10,6 +14,10 @@ Supported chips:
    Prefix: 'ltc3880'
    Addresses scanned: -
    Datasheet: http://www.linear.com/product/ltc3880
  * Linear Technology LTC3883
    Prefix: 'ltc3883'
    Addresses scanned: -
    Datasheet: http://www.linear.com/product/ltc3883

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

@@ -17,9 +25,9 @@ Author: Guenter Roeck <linux@roeck-us.net>
Description
-----------

The LTC2978 is an octal power supply monitor, supervisor, sequencer and
margin controller. The LTC3880 is a dual, PolyPhase DC/DC synchronous
step-down switching regulator controller.
LTC2974 is a quad digital power supply manager. LTC2978 is an octal power supply
monitor. LTC3880 is a dual output poly-phase step-down DC/DC controller. LTC3883
is a single phase step-down DC/DC controller.


Usage Notes
@@ -41,63 +49,90 @@ Sysfs attributes
in1_label		"vin"
in1_input		Measured input voltage.
in1_min			Minimum input voltage.
in1_max			Maximum input voltage.
in1_lcrit		Critical minimum input voltage.
in1_max			Maximum input voltage. LTC2974 and LTC2978 only.
in1_lcrit		Critical minimum input voltage. LTC2974 and LTC2978
			only.
in1_crit		Critical maximum input voltage.
in1_min_alarm		Input voltage low alarm.
in1_max_alarm		Input voltage high alarm.
in1_lcrit_alarm		Input voltage critical low alarm.
in1_max_alarm		Input voltage high alarm. LTC2974 and LTC2978 only.
in1_lcrit_alarm		Input voltage critical low alarm. LTC2974 and LTC2978
			only.
in1_crit_alarm		Input voltage critical high alarm.
in1_lowest		Lowest input voltage. LTC2978 only.
in1_lowest		Lowest input voltage. LTC2974 and LTC2978 only.
in1_highest		Highest input voltage.
in1_reset_history	Reset history. Writing into this attribute will reset
			history for all attributes.

in[2-9]_label		"vout[1-8]". Channels 3 to 9 on LTC2978 only.
in[2-9]_input		Measured output voltage.
in[2-9]_min		Minimum output voltage.
in[2-9]_max		Maximum output voltage.
in[2-9]_lcrit		Critical minimum output voltage.
in[2-9]_crit		Critical maximum output voltage.
in[2-9]_min_alarm	Output voltage low alarm.
in[2-9]_max_alarm	Output voltage high alarm.
in[2-9]_lcrit_alarm	Output voltage critical low alarm.
in[2-9]_crit_alarm	Output voltage critical high alarm.
in[2-9]_lowest		Lowest output voltage. LTC2978 only.
in[2-9]_highest		Lowest output voltage.
in[2-9]_reset_history	Reset history. Writing into this attribute will reset
			history for all attributes.

temp[1-3]_input		Measured temperature.
in1_reset_history	Reset input voltage history.

in[N]_label		"vout[1-8]".
			LTC2974: N=2-5
			LTC2978: N=2-9
			LTC3880: N=2-3
			LTC3883: N=2
in[N]_input		Measured output voltage.
in[N]_min		Minimum output voltage.
in[N]_max		Maximum output voltage.
in[N]_lcrit		Critical minimum output voltage.
in[N]_crit		Critical maximum output voltage.
in[N]_min_alarm		Output voltage low alarm.
in[N]_max_alarm		Output voltage high alarm.
in[N]_lcrit_alarm	Output voltage critical low alarm.
in[N]_crit_alarm	Output voltage critical high alarm.
in[N]_lowest		Lowest output voltage. LTC2974 and LTC2978 only.
in[N]_highest		Highest output voltage.
in[N]_reset_history	Reset output voltage history.

temp[N]_input		Measured temperature.
			On LTC2974, temp[1-4] report external temperatures,
			and temp5 reports the chip temperature.
			On LTC2978, only one temperature measurement is
			supported and reflects the internal temperature.
			supported and reports the chip temperature.
			On LTC3880, temp1 and temp2 report external
			temperatures, and temp3 reports the internal
			temperature.
temp[1-3]_min		Mimimum temperature.
temp[1-3]_max		Maximum temperature.
temp[1-3]_lcrit		Critical low temperature.
temp[1-3]_crit		Critical high temperature.
temp[1-3]_min_alarm	Chip temperature low alarm.
temp[1-3]_max_alarm	Chip temperature high alarm.
temp[1-3]_lcrit_alarm	Chip temperature critical low alarm.
temp[1-3]_crit_alarm	Chip temperature critical high alarm.
temp[1-3]_lowest	Lowest measured temperature. LTC2978 only.
temp[1-3]_highest	Highest measured temperature.
temp[1-3]_reset_history	Reset history. Writing into this attribute will reset
			history for all attributes.

power[1-2]_label	"pout[1-2]". LTC3880 only.
power[1-2]_input	Measured power.

curr1_label		"iin". LTC3880 only.
			temperatures, and temp3 reports the chip temperature.
			On LTC3883, temp1 reports an external temperature,
			and temp2 reports the chip temperature.
temp[N]_min		Mimimum temperature. LTC2974 and LTC2978 only.
temp[N]_max		Maximum temperature.
temp[N]_lcrit		Critical low temperature.
temp[N]_crit		Critical high temperature.
temp[N]_min_alarm	Temperature low alarm. LTC2974 and LTC2978 only.
temp[N]_max_alarm	Temperature high alarm.
temp[N]_lcrit_alarm	Temperature critical low alarm.
temp[N]_crit_alarm	Temperature critical high alarm.
temp[N]_lowest		Lowest measured temperature. LTC2974 and LTC2978 only.
			Not supported for chip temperature sensor on LTC2974.
temp[N]_highest		Highest measured temperature. Not supported for chip
			temperature sensor on LTC2974.
temp[N]_reset_history	Reset temperature history. Not supported for chip
			temperature sensor on LTC2974.

power1_label		"pin". LTC3883 only.
power1_input		Measured input power.

power[N]_label		"pout[1-4]".
			LTC2974: N=1-4
			LTC2978: Not supported
			LTC3880: N=1-2
			LTC3883: N=2
power[N]_input		Measured output power.

curr1_label		"iin". LTC3880 and LTC3883 only.
curr1_input		Measured input current.
curr1_max		Maximum input current.
curr1_max_alarm		Input current high alarm.

curr[2-3]_label		"iout[1-2]". LTC3880 only.
curr[2-3]_input		Measured input current.
curr[2-3]_max		Maximum input current.
curr[2-3]_crit		Critical input current.
curr[2-3]_max_alarm	Input current high alarm.
curr[2-3]_crit_alarm	Input current critical high alarm.
curr1_highest		Highest input current. LTC3883 only.
curr1_reset_history	Reset input current history. LTC3883 only.

curr[N]_label		"iout[1-4]".
			LTC2974: N=1-4
			LTC2978: not supported
			LTC3880: N=2-3
			LTC3883: N=2
curr[N]_input		Measured output current.
curr[N]_max		Maximum output current.
curr[N]_crit		Critical high output current.
curr[N]_lcrit		Critical low output current. LTC2974 only.
curr[N]_max_alarm	Output current high alarm.
curr[N]_crit_alarm	Output current critical high alarm.
curr[N]_lcrit_alarm	Output current critical low alarm. LTC2974 only.
curr[N]_lowest		Lowest output current. LTC2974 only.
curr[N]_highest		Highest output current.
curr[N]_reset_history	Reset output current history.
Loading