staging:iio:treewide only use shared to decide on interfaces
[firefly-linux-kernel-4.4.55.git] / drivers / staging / iio / adc / ad7291.c
index bedd91ad3fdbc0becfc67e864ee4ac169571c23a..c4977a78b4295a878161c923bbf1bb25319c517c 100644 (file)
@@ -501,7 +501,7 @@ static int ad7291_read_raw(struct iio_dev *indio_dev,
                default:
                        return -EINVAL;
                }
-       case IIO_CHAN_INFO_AVERAGE_RAW_SEPARATE:
+       case IIO_CHAN_INFO_AVERAGE_RAW:
                ret = i2c_smbus_read_word_data(chip->client,
                                               AD7291_T_AVERAGE);
                        if (ret < 0)
@@ -510,18 +510,24 @@ static int ad7291_read_raw(struct iio_dev *indio_dev,
                                AD7291_VALUE_MASK) << 4) >> 4;
                        *val = signval;
                        return IIO_VAL_INT;
-       case IIO_CHAN_INFO_SCALE_SHARED:
-               scale_uv = (chip->int_vref_mv * 1000) >> AD7291_BITS;
-               *val =  scale_uv / 1000;
-               *val2 = (scale_uv % 1000) * 1000;
-               return IIO_VAL_INT_PLUS_MICRO;
-       case 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;
+       case IIO_CHAN_INFO_SCALE:
+               switch (chan->type) {
+               case IIO_VOLTAGE:
+                       scale_uv = (chip->int_vref_mv * 1000) >> AD7291_BITS;
+                       *val =  scale_uv / 1000;
+                       *val2 = (scale_uv % 1000) * 1000;
+                       return IIO_VAL_INT_PLUS_MICRO;
+               case IIO_TEMP:
+                       /*
+                        * 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;
+               }
        default:
                return -EINVAL;
        }
@@ -530,7 +536,7 @@ static int ad7291_read_raw(struct iio_dev *indio_dev,
 #define AD7291_VOLTAGE_CHAN(_chan)                                     \
 {                                                                      \
        .type = IIO_VOLTAGE,                                            \
-       .info_mask = (1 << IIO_CHAN_INFO_SCALE_SHARED),                 \
+       .info_mask = IIO_CHAN_INFO_SCALE_SHARED_BIT,                    \
        .indexed = 1,                                                   \
        .channel = _chan,                                               \
        .event_mask = IIO_EV_BIT(IIO_EV_TYPE_THRESH, IIO_EV_DIR_RISING)|\
@@ -548,8 +554,8 @@ static const struct iio_chan_spec ad7291_channels[] = {
        AD7291_VOLTAGE_CHAN(7),
        {
                .type = IIO_TEMP,
-               .info_mask = (1 << IIO_CHAN_INFO_AVERAGE_RAW_SEPARATE) |
-                               (1 << IIO_CHAN_INFO_SCALE_SEPARATE),
+               .info_mask = IIO_CHAN_INFO_AVERAGE_RAW_SEPARATE_BIT |
+                               IIO_CHAN_INFO_SCALE_SEPARATE_BIT,
                .indexed = 1,
                .channel = 0,
                .event_mask =