Hi Ira, On Tue, 30 Jun 2009 11:39:18 -0700, Ira Snyder wrote: > The ADM1030/ADM1031 chips have temperature offset registers, for both the > local and remote temperature sensors. Following the example set forth in > the LM90/ADM1032 driver, expose the offset registers to userspace. > > Signed-off-by: Ira W. Snyder <iws@xxxxxxxxxxxxxxxx> > --- > > I have tested this with an adm1031 chip, and I see the offsets as > expected. I do not have any other compatible chips to test with, however > I read the adm1030 datasheet, and everything should work fine. > > On the adm1031, the datasheet claims the offset registers can be used to > add/subtract 15 degC from the temperature reading. I have found that it > is actually possible to add 15 degC and subtract 16 degC. Following the > data sheet, I clamped the value to +- 15 degC, just in case other chips > are not compatible. > > drivers/hwmon/adm1031.c | 40 ++++++++++++++++++++++++++++++++++++++++ > 1 files changed, 40 insertions(+), 0 deletions(-) > > diff --git a/drivers/hwmon/adm1031.c b/drivers/hwmon/adm1031.c > index 7894418..5690595 100644 > --- a/drivers/hwmon/adm1031.c > +++ b/drivers/hwmon/adm1031.c > @@ -145,6 +147,10 @@ adm1031_write_value(struct i2c_client *client, u8 reg, unsigned int value) > > #define TEMP_FROM_REG_EXT(val, ext) (TEMP_FROM_REG(val) + (ext) * 125) > > +#define TEMP_OFFSET_TO_REG(val) (TEMP_TO_REG(val) & 0x8f) > +#define TEMP_OFFSET_FROM_REG(val) TEMP_FROM_REG((val) < 0 ? \ > + (val) | 0x70 : (val)) This is not how I read the datasheet for negative offsets. The ADM1030 datasheet says that -1°C would be coded 0x81, while your implementation would decode 0x81 to -15°C. But I admit the datasheet isn't too clear either... Did you test your code with negative offsets and found that it works OK? -- Jean Delvare _______________________________________________ lm-sensors mailing list lm-sensors@xxxxxxxxxxxxxx http://lists.lm-sensors.org/mailman/listinfo/lm-sensors