summaryrefslogtreecommitdiff
path: root/drivers/misc
diff options
context:
space:
mode:
authorDiwakar Tundlam <dtundlam@nvidia.com>2011-08-25 17:48:42 -0700
committerDan Willemsen <dwillemsen@nvidia.com>2011-11-30 21:48:43 -0800
commit2b39c374be4ab652546f4915e3051bb8183c870d (patch)
tree0391d21da67e297fe9c3b4e49d44fa7fc79fdce0 /drivers/misc
parent6dbb63af85a2b5891ffea98fa6d9a026fe6a8cdf (diff)
misc: nct1008: allow to program fractional offsets
to adjust for sku specific guardbanding of temperatures bug 844025 Original-Change-Id: I1193eae50736ae3dbf3ce0a26653e01962c21c8d Reviewed-on: http://git-master/r/49316 Reviewed-by: Diwakar Tundlam <dtundlam@nvidia.com> Tested-by: Diwakar Tundlam <dtundlam@nvidia.com> Reviewed-by: Aleksandr Frid <afrid@nvidia.com> Reviewed-by: Bitan Biswas <bbiswas@nvidia.com> Rebase-Id: Rc6f03d281542bff48b2d41ff29cd0c90d2ad65c3
Diffstat (limited to 'drivers/misc')
-rw-r--r--drivers/misc/nct1008.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/drivers/misc/nct1008.c b/drivers/misc/nct1008.c
index 6e0f7a43b189..ef157c3334e7 100644
--- a/drivers/misc/nct1008.c
+++ b/drivers/misc/nct1008.c
@@ -54,6 +54,7 @@
#define EXT_TEMP_HI_LIMIT_HI_BYTE_WR 0x0D
#define EXT_TEMP_LO_LIMIT_HI_BYTE_WR 0x0E
#define OFFSET_WR 0x11
+#define OFFSET_QUARTER_WR 0x12
#define EXT_THERM_LIMIT_WR 0x19
#define LOCAL_THERM_LIMIT_WR 0x20
#define THERM_HYSTERESIS_WR 0x21
@@ -683,7 +684,13 @@ static int __devinit nct1008_configure_sensor(struct nct1008_data* data)
dev_dbg(&client->dev, "\n initial ext temp = %d.0 deg", temp);
/* Remote channel offset */
- err = i2c_smbus_write_byte_data(client, OFFSET_WR, pdata->offset);
+ err = i2c_smbus_write_byte_data(client, OFFSET_WR, pdata->offset / 4);
+ if (err < 0)
+ goto error;
+
+ /* Remote channel offset fraction (quarters) */
+ err = i2c_smbus_write_byte_data(client, OFFSET_QUARTER_WR,
+ (pdata->offset % 4) << 6);
if (err < 0)
goto error;