diff options
| -rw-r--r-- | drivers/staging/iio/adc/ad7192.c | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/drivers/staging/iio/adc/ad7192.c b/drivers/staging/iio/adc/ad7192.c index 7ba699486326..73483d26a034 100644 --- a/drivers/staging/iio/adc/ad7192.c +++ b/drivers/staging/iio/adc/ad7192.c | |||
| @@ -826,8 +826,6 @@ static int ad7192_read_raw(struct iio_dev *indio_dev, | |||
| 826 | 826 | ||
| 827 | switch (chan->type) { | 827 | switch (chan->type) { |
| 828 | case IIO_VOLTAGE: | 828 | case IIO_VOLTAGE: |
| 829 | if (!unipolar) | ||
| 830 | *val -= (1 << (chan->scan_type.realbits - 1)); | ||
| 831 | break; | 829 | break; |
| 832 | case IIO_TEMP: | 830 | case IIO_TEMP: |
| 833 | *val -= 0x800000; | 831 | *val -= 0x800000; |
| @@ -853,6 +851,12 @@ static int ad7192_read_raw(struct iio_dev *indio_dev, | |||
| 853 | default: | 851 | default: |
| 854 | return -EINVAL; | 852 | return -EINVAL; |
| 855 | } | 853 | } |
| 854 | case IIO_CHAN_INFO_OFFSET: | ||
| 855 | if (!unipolar) | ||
| 856 | *val -= (1 << (chan->scan_type.realbits - 1)); | ||
| 857 | else | ||
| 858 | *val = 0; | ||
| 859 | return IIO_VAL_INT; | ||
| 856 | } | 860 | } |
| 857 | 861 | ||
| 858 | return -EINVAL; | 862 | return -EINVAL; |
| @@ -942,7 +946,8 @@ static const struct iio_info ad7195_info = { | |||
| 942 | .channel = _chan, \ | 946 | .channel = _chan, \ |
| 943 | .channel2 = _chan2, \ | 947 | .channel2 = _chan2, \ |
| 944 | .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT | \ | 948 | .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT | \ |
| 945 | IIO_CHAN_INFO_SCALE_SHARED_BIT, \ | 949 | IIO_CHAN_INFO_SCALE_SHARED_BIT | \ |
| 950 | IIO_CHAN_INFO_OFFSET_SHARED_BIT, \ | ||
| 946 | .address = _address, \ | 951 | .address = _address, \ |
| 947 | .scan_index = _si, \ | 952 | .scan_index = _si, \ |
| 948 | .scan_type = IIO_ST('u', 24, 32, 0)} | 953 | .scan_type = IIO_ST('u', 24, 32, 0)} |
| @@ -952,7 +957,8 @@ static const struct iio_info ad7195_info = { | |||
| 952 | .indexed = 1, \ | 957 | .indexed = 1, \ |
| 953 | .channel = _chan, \ | 958 | .channel = _chan, \ |
| 954 | .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT | \ | 959 | .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT | \ |
| 955 | IIO_CHAN_INFO_SCALE_SHARED_BIT, \ | 960 | IIO_CHAN_INFO_SCALE_SHARED_BIT | \ |
| 961 | IIO_CHAN_INFO_OFFSET_SHARED_BIT, \ | ||
| 956 | .address = _address, \ | 962 | .address = _address, \ |
| 957 | .scan_index = _si, \ | 963 | .scan_index = _si, \ |
| 958 | .scan_type = IIO_ST('u', 24, 32, 0)} | 964 | .scan_type = IIO_ST('u', 24, 32, 0)} |
