static int max1363_read_raw(struct iio_dev *indio_dev, struct iio_chan_spec const *chan, int *val, int *val2, long m) { struct max1363_state *st = iio_priv(indio_dev); int ret; switch (m) { case 0: ret = max1363_read_single_chan(indio_dev, chan, val, m); if (ret < 0) return ret; return IIO_VAL_INT; case IIO_CHAN_INFO_SCALE: if ((1 << (st->chip_info->bits + 1)) > st->chip_info->int_vref_mv) { *val = 0; *val2 = 500000; return IIO_VAL_INT_PLUS_MICRO; } else { *val = (st->chip_info->int_vref_mv) >> st->chip_info->bits; return IIO_VAL_INT; } default: return -EINVAL; } return 0; }
static int max1363_read_raw(struct iio_dev *indio_dev, struct iio_chan_spec const *chan, int *val, int *val2, long m) { struct max1363_state *st = iio_priv(indio_dev); int ret; unsigned long scale_uv; switch (m) { case IIO_CHAN_INFO_RAW: ret = max1363_read_single_chan(indio_dev, chan, val, m); if (ret < 0) return ret; return IIO_VAL_INT; case IIO_CHAN_INFO_SCALE: scale_uv = st->vref_uv >> st->chip_info->bits; *val = scale_uv / 1000; *val2 = (scale_uv % 1000) * 1000; return IIO_VAL_INT_PLUS_MICRO; default: return -EINVAL; } return 0; }
static int max1363_read_raw(struct iio_dev *indio_dev, struct iio_chan_spec const *chan, int *val, int *val2, long m) { struct max1363_state *st = iio_priv(indio_dev); int ret; switch (m) { case IIO_CHAN_INFO_RAW: ret = max1363_read_single_chan(indio_dev, chan, val, m); if (ret < 0) return ret; return IIO_VAL_INT; case IIO_CHAN_INFO_SCALE: *val = st->vref_uv / 1000; *val2 = st->chip_info->bits; return IIO_VAL_FRACTIONAL_LOG2; default: return -EINVAL; } return 0; }