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

Commit dd9cd6d4 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
* 'release' of git://lm-sensors.org/kernel/mhoffman/hwmon-2.6:
  hwmon: fscher read control bugfix
  hwmon: (adm1031) Fix broken links in documentation
  hwmon: make abituguru3_read_increment_offset() static
  hwmon: Fix regression caused by typo in lm90.c
  hwmon: (applesmc) add temperature sensors set for Macbook
  hwmon: fscher control update bugfix
  hwmon: fix dme1737 temp fault attribute
  hwmon: Add missing __devexit tags in various drivers
  hwmon: clean up duplicate includes
  hwmon: fix lm78 detection regression
  hwmon: fix array overruns in lm93.c
  hwmon: add support for THMC50 and ADM1022
parents 128a2bcf 5cccf4a1
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -6,13 +6,13 @@ Supported chips:
    Prefix: 'adm1030'
    Addresses scanned: I2C 0x2c to 0x2e
    Datasheet: Publicly available at the Analog Devices website
               http://products.analog.com/products/info.asp?product=ADM1030
               http://www.analog.com/en/prod/0%2C2877%2CADM1030%2C00.html

  * Analog Devices ADM1031
    Prefix: 'adm1031'
    Addresses scanned: I2C 0x2c to 0x2e
    Datasheet: Publicly available at the Analog Devices website
               http://products.analog.com/products/info.asp?product=ADM1031
               http://www.analog.com/en/prod/0%2C2877%2CADM1031%2C00.html

Authors:
        Alexandre d'Alton <alex@alexdalton.org>
+74 −0
Original line number Diff line number Diff line
Kernel driver thmc50
=====================

Supported chips:
  * Analog Devices ADM1022
    Prefix: 'adm1022'
    Addresses scanned: I2C 0x2c - 0x2e
    Datasheet: http://www.analog.com/en/prod/0,2877,ADM1022,00.html
  * Texas Instruments THMC50
    Prefix: 'thmc50'
    Addresses scanned: I2C 0x2c - 0x2e
    Datasheet: http://focus.ti.com/docs/prod/folders/print/thmc50.html

Author: Krzysztof Helt <krzysztof.h1@wp.pl>

This driver was derived from the 2.4 kernel thmc50.c source file.

Credits:
  thmc50.c (2.4 kernel):
	Frodo Looijaard <frodol@dds.nl>
	Philip Edelbrock <phil@netroedge.com>

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

* adm1022_temp3: short array
  List of adapter,address pairs to force chips into ADM1022 mode with
  second remote temperature. This does not work for original THMC50 chips.

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

The THMC50 implements: an internal temperature sensor, support for an
external diode-type temperature sensor (compatible w/ the diode sensor inside
many processors), and a controllable fan/analog_out DAC. For the temperature
sensors, limits can be set through the appropriate Overtemperature Shutdown
register and Hysteresis register. Each value can be set and read to half-degree
accuracy.  An alarm is issued (usually to a connected LM78) when the
temperature gets higher then the Overtemperature Shutdown value; it stays on
until the temperature falls below the Hysteresis value. All temperatures are in
degrees Celsius, and are guaranteed within a range of -55 to +125 degrees.

The THMC50 only updates its values each 1.5 seconds; reading it more often
will do no harm, but will return 'old' values.

The THMC50 is usually used in combination with LM78-like chips, to measure
the temperature of the processor(s).

The ADM1022 works the same as THMC50 but it is faster (5 Hz instead of
1 Hz for THMC50). It can be also put in a new mode to handle additional
remote temperature sensor. The driver use the mode set by BIOS by default.

In case the BIOS is broken and the mode is set incorrectly, you can force
the mode with additional remote temperature with adm1022_temp3 parameter.
A typical symptom of wrong setting is a fan forced to full speed.

Driver Features
---------------

The driver provides up to three temperatures:

temp1		-- internal
temp2		-- remote
temp3		-- 2nd remote only for ADM1022

pwm1		-- fan speed (0 = stop, 255 = full)
pwm1_mode	-- always 0 (DC mode)

The value of 0 for pwm1 also forces FAN_OFF signal from the chip,
so it stops fans even if the value 0 into the ANALOG_OUT register does not.

The driver was tested on Compaq AP550 with two ADM1022 chips (one works
in the temp3 mode), five temperature readings and two fans.
+10 −0
Original line number Diff line number Diff line
@@ -520,6 +520,16 @@ config SENSORS_SMSC47B397
	  This driver can also be built as a module.  If so, the module
	  will be called smsc47b397.

config SENSORS_THMC50
	tristate "Texas Instruments THMC50 / Analog Devices ADM1022"
	depends on I2C && EXPERIMENTAL
	help
	  If you say yes here you get support for Texas Instruments THMC50
	  sensor chips and clones: the Analog Devices ADM1022.

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

config SENSORS_VIA686A
	tristate "VIA686A"
	depends on PCI
+1 −0
Original line number Diff line number Diff line
@@ -56,6 +56,7 @@ obj-$(CONFIG_SENSORS_SIS5595) += sis5595.o
obj-$(CONFIG_SENSORS_SMSC47B397)+= smsc47b397.o
obj-$(CONFIG_SENSORS_SMSC47M1)	+= smsc47m1.o
obj-$(CONFIG_SENSORS_SMSC47M192)+= smsc47m192.o
obj-$(CONFIG_SENSORS_THMC50)	+= thmc50.o
obj-$(CONFIG_SENSORS_VIA686A)	+= via686a.o
obj-$(CONFIG_SENSORS_VT1211)	+= vt1211.o
obj-$(CONFIG_SENSORS_VT8231)	+= vt8231.o
+3 −2
Original line number Diff line number Diff line
@@ -691,8 +691,9 @@ static int abituguru3_read(struct abituguru3_data *data, u8 bank, u8 offset,

/* Sensor settings are stored 1 byte per offset with the bytes
   placed add consecutive offsets. */
int abituguru3_read_increment_offset(struct abituguru3_data *data, u8 bank,
	u8 offset, u8 count, u8 *buf, int offset_count)
static int abituguru3_read_increment_offset(struct abituguru3_data *data,
					    u8 bank, u8 offset, u8 count,
					    u8 *buf, int offset_count)
{
	int i, x;

Loading