u16 int_vref_mv;
u16 command;
u16 c_mask; /* Active voltage channels for events */
- struct mutex state_lock;
+ struct mutex state_lock;
};
static int ad7291_i2c_read(struct ad7291_chip_info *chip, u8 reg, u16 *data)
*val = scale_uv / 1000;
*val2 = (scale_uv % 1000) * 1000;
return IIO_VAL_INT_PLUS_MICRO;
+ case (1 << IIO_CHAN_INFO_SCALE_SEPARATE):
+ /*
+ * One LSB of the ADC corresponds to 0.25 deg C.
+ * The temperature reading is in 12-bit twos complement format
+ */
+ *val = 250;
+ return IIO_VAL_INT;
default:
return -EINVAL;
}
AD7291_VOLTAGE_CHAN(7),
{
.type = IIO_TEMP,
- .info_mask = (1 << IIO_CHAN_INFO_AVERAGE_RAW_SEPARATE),
+ .info_mask = (1 << IIO_CHAN_INFO_AVERAGE_RAW_SEPARATE) |
+ (1 << IIO_CHAN_INFO_SCALE_SEPARATE),
.indexed = 1,
.channel = 0,
.event_mask =
static struct i2c_driver ad7291_driver = {
.driver = {
- .name = "ad7291",
+ .name = KBUILD_MODNAME,
},
.probe = ad7291_probe,
.remove = __devexit_p(ad7291_remove),
}
MODULE_AUTHOR("Sonic Zhang <sonic.zhang@analog.com>");
-MODULE_DESCRIPTION("Analog Devices AD7291 digital"
- " temperature sensor driver");
+MODULE_DESCRIPTION("Analog Devices AD7291 ADC driver");
MODULE_LICENSE("GPL v2");
module_init(ad7291_init);