diff options
author | Diwakar Tundlam <dtundlam@nvidia.com> | 2011-08-25 17:48:42 -0700 |
---|---|---|
committer | Varun Colbert <vcolbert@nvidia.com> | 2011-08-29 17:25:17 -0700 |
commit | 158093575d5a47cb553b25ba09db60a289571a7a (patch) | |
tree | 190fde99fa9d7d8edf885f37de6c26fa4ed3251e /drivers | |
parent | af2674a49955cd761708eebe835c10a3c4438b7f (diff) |
misc: nct1008: allow to program fractional offsets
to adjust for sku specific guardbanding of temperatures
bug 844025
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>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/misc/nct1008.c | 9 |
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; |