|
@@ -183,8 +183,17 @@ static int mag3110_read_raw(struct iio_dev *indio_dev,
|
|
|
return -EINVAL;
|
|
|
}
|
|
|
case IIO_CHAN_INFO_SCALE:
|
|
|
- *val = 0;
|
|
|
- *val2 = 1000;
|
|
|
+ switch (chan->type) {
|
|
|
+ case IIO_MAGN:
|
|
|
+ *val = 0;
|
|
|
+ *val2 = 1000;
|
|
|
+ return IIO_VAL_INT_PLUS_MICRO;
|
|
|
+ case IIO_TEMP:
|
|
|
+ *val = 1000;
|
|
|
+ return IIO_VAL_INT;
|
|
|
+ default:
|
|
|
+ return -EINVAL;
|
|
|
+ }
|
|
|
return IIO_VAL_INT_PLUS_MICRO;
|
|
|
case IIO_CHAN_INFO_SAMP_FREQ:
|
|
|
i = data->ctrl_reg1 >> MAG3110_CTRL_DR_SHIFT;
|
|
@@ -270,7 +279,8 @@ static const struct iio_chan_spec mag3110_channels[] = {
|
|
|
MAG3110_CHANNEL(Z, 2),
|
|
|
{
|
|
|
.type = IIO_TEMP,
|
|
|
- .info_mask_separate = BIT(IIO_CHAN_INFO_RAW),
|
|
|
+ .info_mask_separate = BIT(IIO_CHAN_INFO_RAW) |
|
|
|
+ BIT(IIO_CHAN_INFO_SCALE),
|
|
|
.scan_index = 3,
|
|
|
.scan_type = {
|
|
|
.sign = 's',
|