History log of /drivers/hwmon/adt7410.c
Revision Date Author Comments
4b5e536b0e948b5c756aa1d57218371c242f768d 12-Mar-2013 Lars-Peter Clausen <lars@metafoo.de> hwmon: (adt7x10) Add alarm interrupt support

This allows an userspace application to poll() on the alarm files to get
notified in case of a temperature threshold event.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Reviewed-by: Hartmut Knaack <knaack.h@gmx.de>
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
51c2a4871c1b47255ff8d74f0a86b2a0defff319 12-Mar-2013 Lars-Peter Clausen <lars@metafoo.de> hwmon: (adt7410) Add support for the adt7310/adt7320

The adt7310/adt7320 is the SPI version of the adt7410/adt7420. The register map
layout is a bit different, i.e. the register addresses differ between the two
variants, but the bit layouts of the individual registers are identical. So both
chip variants can easily be supported by the same driver. The issue of non
matching register address layouts is solved by a simple look-up table which
translates the I2C addresses to the SPI addresses.

The patch moves the bulk of the adt7410 driver to a common module that will be
shared by the adt7410 and adt7310 drivers. This common module implements the
driver logic and uses a set of virtual functions to perform IO access. The
adt7410 and adt7310 driver modules provide proper implementations of these IO
accessor functions for I2C respective SPI.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Reviewed-by: Hartmut Knaack <knaack.h@gmx.de>
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
c55dc91e92bdf21427dd8f5ad779ed9d63caacbd 12-Mar-2013 Lars-Peter Clausen <lars@metafoo.de> hwmon: (adt7410) Don't re-read non-volatile registers

Currently each time the temperature register is read the driver also reads the
threshold and hysteresis registers. This increases the amount of I2C traffic and
time needed to read the temperature by a factor of ~5. Neither the threshold nor
the hysteresis change on their own, so once we have read them, we should be able
to just use the cached value of the registers. This patch modifies the code
accordingly and only reads the threshold and hysteresis registers once during
probe.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
e46e5dc2b2f364b5192a5878267239b8c8979ba2 15-Feb-2013 Lars-Peter Clausen <lars@metafoo.de> hwmon: (adt7410) Add device table entry for the adt7420

The adt7420 is software compatible to the adt7410.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Reviewed-by: Hartmut Knaack <knaack.h@gmx.de>
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
54be068d19ccdad6864dd8a24c20885af26f851c 15-Feb-2013 Lars-Peter Clausen <lars@metafoo.de> hwmon: (adt7410) Use I2C_ADDRS helper macro

Use the I2C_ADDRS macro to initialize the I2C device's address_list. Doing so
saves a few lines of boilerplate code.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Reviewed-by: Hartmut Knaack <knaack.h@gmx.de>
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
436440fc166fd6127fc1e8e8415e7f2830dd9c5e 15-Feb-2013 Lars-Peter Clausen <lars@metafoo.de> hwmon: (adt7410) Use the SIMPLE_DEV_PM_OPS helper macro

Use the SIMPLE_DEV_PM_OPS macro to declare the driver's pm_ops.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Reviewed-by: Hartmut Knaack <knaack.h@gmx.de>
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
e0db9c4bfe2f44073fcdc1a39a13eb66b618098c 15-Feb-2013 Lars-Peter Clausen <lars@metafoo.de> hwmon: (adt7410) Let suspend/resume depend on CONFIG_PM_SLEEP

Only build the suspend/resume code if CONFIG_PM_SLEEP is selected. Currently the
code is built if CONFIG_PM is selected, but it will also be selected if only
runtime PM support is built into the kernel.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Acked-by: Hartmut Knaack <knaack.h@gmx.de>
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
6e7d3b6bb9af358b2bf05cccb025ac5d66630b47 15-Feb-2013 Lars-Peter Clausen <lars@metafoo.de> hwmon: (adt7410) Clear unwanted bits in the config register

Make sure to clear the mode bits from the config register before setting the new
mode. Otherwise we might end up with a different mode than we want to.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Reviewed-by: Hartmut Knaack <knaack.h@gmx.de>
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
2a844c148e1f714ebf42cb96e1b172ce394c36c9 09-Jan-2013 Guenter Roeck <linux@roeck-us.net> hwmon: Replace SENSORS_LIMIT with clamp_val

SENSORS_LIMIT and the generic clamp_val have the same functionality,
and clamp_val is more efficient.

This patch reduces text size by 9052 bytes and bss size by 11624 bytes
for x86_64 builds.

Signed-off-by: Guenter Roeck <linux@roeck-us.net>
Acked-by: George Joseph <george.joseph@fairview5.com>
Acked-by: Jean Delvare <khali@linux-fr.org>
37f9648b2745fc3830f3715a601f7f94296de838 15-Aug-2012 Dan Carpenter <dan.carpenter@oracle.com> hwmon: (adt7410) handle errors from adt7410_update_device()

Smatch complains that adt7410_update_device() can return error pointers.

Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
983b97bed21e392280e80f704e97170b76cb7f3e 12-Aug-2012 Hartmut Knaack <knaack.h@gmx.de> hwmon: Driver for ADT7410

This patch brings basic support for the Analog Devices ADT7410 temperature
sensor. The following functionality has been implemented:

* get current temperature
* get/set minimum, maximum and critical temperature
* get/set hysteresis
* get alarm events for minimum, maximum and critical temperature

All implemented sysfs attributes have been sucessfully tested at temperatures
of 15°C to 40°C.

Signed-off-by: Hartmut Knaack <knaack.h@gmx.de>
Signed-off-by: Guenter Roeck <linux@roeck-us.net>