Precursor to making value read / write attribute optional.
No processed values for adc's.
Updated to include the spear adc driver (hence introducing a
dependency on the patch that adds that driver).
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
Acked-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
        bool unipolar = !!(st->conf & AD7192_CONF_UNIPOLAR);
 
        switch (m) {
-       case 0:
+       case IIO_CHAN_INFO_RAW:
                mutex_lock(&indio_dev->mlock);
                if (iio_buffer_enabled(indio_dev))
                        ret = -EBUSY;
          .extend_name = _name,                                         \
          .channel = _chan,                                             \
          .channel2 = _chan2,                                           \
-         .info_mask = IIO_CHAN_INFO_SCALE_SHARED_BIT,          \
+         .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT |                 \
+         IIO_CHAN_INFO_SCALE_SHARED_BIT,                               \
          .address = _address,                                          \
          .scan_index = _si,                                            \
          .scan_type =  IIO_ST('s', 24, 32, 0)}
        { .type = IIO_VOLTAGE,                                          \
          .indexed = 1,                                                 \
          .channel = _chan,                                             \
-         .info_mask = IIO_CHAN_INFO_SCALE_SHARED_BIT,          \
+         .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT |                 \
+         IIO_CHAN_INFO_SCALE_SHARED_BIT,                               \
          .address = _address,                                          \
          .scan_index = _si,                                            \
          .scan_type =  IIO_ST('s', 24, 32, 0)}
        { .type = IIO_TEMP,                                             \
          .indexed = 1,                                                 \
          .channel = _chan,                                             \
-         .info_mask = IIO_CHAN_INFO_SCALE_SEPARATE_BIT,                \
+         .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT |                 \
+         IIO_CHAN_INFO_SCALE_SEPARATE_BIT,                             \
          .address = _address,                                          \
          .scan_index = _si,                                            \
          .scan_type =  IIO_ST('s', 24, 32, 0)}
 
                        }
                        st->channels[cnt].indexed = 1;
                        st->channels[cnt].info_mask =
+                               IIO_CHAN_INFO_RAW_SEPARATE_BIT |
                                IIO_CHAN_INFO_SCALE_SHARED_BIT;
                        st->channels[cnt].address =
                                AD7280A_DEVADDR(dev) << 8 | ch;
        st->channels[cnt].channel2 = dev * 6;
        st->channels[cnt].address = AD7280A_ALL_CELLS;
        st->channels[cnt].indexed = 1;
-       st->channels[cnt].info_mask = IIO_CHAN_INFO_SCALE_SHARED_BIT;
+       st->channels[cnt].info_mask =
+               IIO_CHAN_INFO_RAW_SEPARATE_BIT |
+               IIO_CHAN_INFO_SCALE_SHARED_BIT;
        st->channels[cnt].scan_index = cnt;
        st->channels[cnt].scan_type.sign = 'u';
        st->channels[cnt].scan_type.realbits = 32;
        int ret;
 
        switch (m) {
-       case 0:
+       case IIO_CHAN_INFO_RAW:
                mutex_lock(&indio_dev->mlock);
                if (chan->address == AD7280A_ALL_CELLS)
                        ret = ad7280_read_all_channels(st, st->scan_cnt, NULL);
 
        s16 signval;
 
        switch (mask) {
-       case 0:
+       case IIO_CHAN_INFO_RAW:
                switch (chan->type) {
                case IIO_VOLTAGE:
                        mutex_lock(&chip->state_lock);
 #define AD7291_VOLTAGE_CHAN(_chan)                                     \
 {                                                                      \
        .type = IIO_VOLTAGE,                                            \
-       .info_mask = IIO_CHAN_INFO_SCALE_SHARED_BIT,                    \
+       .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT |                   \
+       IIO_CHAN_INFO_SCALE_SHARED_BIT,                                 \
        .indexed = 1,                                                   \
        .channel = _chan,                                               \
        .event_mask = IIO_EV_BIT(IIO_EV_TYPE_THRESH, IIO_EV_DIR_RISING)|\
        AD7291_VOLTAGE_CHAN(7),
        {
                .type = IIO_TEMP,
-               .info_mask = IIO_CHAN_INFO_AVERAGE_RAW_SEPARATE_BIT |
+               .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT |
+                               IIO_CHAN_INFO_AVERAGE_RAW_SEPARATE_BIT |
                                IIO_CHAN_INFO_SCALE_SEPARATE_BIT,
                .indexed = 1,
                .channel = 0,
 
                .type = IIO_VOLTAGE,                                    \
                .indexed = 1,                                           \
                .channel = index,                                       \
-               .info_mask = IIO_CHAN_INFO_SCALE_SHARED_BIT,            \
+               .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT |           \
+               IIO_CHAN_INFO_SCALE_SHARED_BIT,                         \
                .address = index,                                       \
                .scan_index = index,                                    \
                .scan_type = {                                          \
                .type = IIO_TEMP,
                .indexed = 1,
                .channel = 0,
-               .info_mask = IIO_CHAN_INFO_SCALE_SEPARATE_BIT,
+               .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT |
+               IIO_CHAN_INFO_SCALE_SEPARATE_BIT,
                .address = 9,
                .scan_index = AD7298_CH_TEMP,
                .scan_type = {
        unsigned int scale_uv;
 
        switch (m) {
-       case 0:
+       case IIO_CHAN_INFO_RAW:
                mutex_lock(&indio_dev->mlock);
                if (indio_dev->currentmode == INDIO_BUFFER_TRIGGERED) {
                        ret = -EBUSY;
 
        unsigned int scale_uv;
 
        switch (m) {
-       case 0:
+       case IIO_CHAN_INFO_RAW:
                mutex_lock(&indio_dev->mlock);
                if (iio_buffer_enabled(indio_dev))
                        ret = -EBUSY;
        {                                                       \
        .type = IIO_VOLTAGE,                                    \
        .indexed = 1,                                           \
-       .info_mask = IIO_CHAN_INFO_SCALE_SHARED_BIT,            \
+       .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT |           \
+       IIO_CHAN_INFO_SCALE_SHARED_BIT,                         \
        .scan_type = {                                          \
                .sign = 'u',                                    \
                .realbits = bits,                               \
 
        unsigned int scale_uv;
 
        switch (m) {
-       case 0:
+       case IIO_CHAN_INFO_RAW:
                mutex_lock(&indio_dev->mlock);
                if (iio_buffer_enabled(indio_dev))
                        ret = -EBUSY;
        .attrs = ad7606_attributes_range,
 };
 
-#define AD7606_CHANNEL(num)                            \
-       {                                               \
-               .type = IIO_VOLTAGE,                    \
-               .indexed = 1,                           \
-               .channel = num,                         \
-               .address = num,                         \
-               .scan_index = num,                      \
-               .scan_type = IIO_ST('s', 16, 16, 0),    \
+#define AD7606_CHANNEL(num)                                    \
+       {                                                       \
+               .type = IIO_VOLTAGE,                            \
+               .indexed = 1,                                   \
+               .channel = num,                                 \
+               .address = num,                                 \
+               .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT,    \
+               .scan_index = num,                              \
+               .scan_type = IIO_ST('s', 16, 16, 0),            \
        }
 
 static struct iio_chan_spec ad7606_8_channels[] = {
 
        unsigned long scale_uv;
 
        switch (m) {
-       case 0:
+       case IIO_CHAN_INFO_RAW:
                mutex_lock(&indio_dev->mlock);
                ret = ad7780_read(st, &smpl);
                mutex_unlock(&indio_dev->mlock);
                        .type = IIO_VOLTAGE,
                        .indexed = 1,
                        .channel = 0,
-                       .info_mask = IIO_CHAN_INFO_SCALE_SHARED_BIT,
+                       .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT |
+                       IIO_CHAN_INFO_SCALE_SHARED_BIT,
                        .scan_type = {
                                .sign = 's',
                                .realbits = 24,
                        .type = IIO_VOLTAGE,
                        .indexed = 1,
                        .channel = 0,
-                       .info_mask = IIO_CHAN_INFO_SCALE_SHARED_BIT,
+                       .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT |
+                       IIO_CHAN_INFO_SCALE_SHARED_BIT,
                        .scan_type = {
                                .sign = 's',
                                .realbits = 20,
 
        bool unipolar = !!(st->conf & AD7793_CONF_UNIPOLAR);
 
        switch (m) {
-       case 0:
+       case IIO_CHAN_INFO_RAW:
                mutex_lock(&indio_dev->mlock);
                if (iio_buffer_enabled(indio_dev))
                        ret = -EBUSY;
                        .channel = 0,
                        .channel2 = 0,
                        .address = AD7793_CH_AIN1P_AIN1M,
-                       .info_mask = IIO_CHAN_INFO_SCALE_SHARED_BIT,
+                       .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT |
+                       IIO_CHAN_INFO_SCALE_SHARED_BIT,
                        .scan_index = 0,
                        .scan_type = IIO_ST('s', 24, 32, 0)
                },
                        .channel = 1,
                        .channel2 = 1,
                        .address = AD7793_CH_AIN2P_AIN2M,
-                       .info_mask = IIO_CHAN_INFO_SCALE_SHARED_BIT,
+                       .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT |
+                       IIO_CHAN_INFO_SCALE_SHARED_BIT,
                        .scan_index = 1,
                        .scan_type = IIO_ST('s', 24, 32, 0)
                },
                        .channel = 2,
                        .channel2 = 2,
                        .address = AD7793_CH_AIN3P_AIN3M,
-                       .info_mask = IIO_CHAN_INFO_SCALE_SHARED_BIT,
+                       .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT |
+                       IIO_CHAN_INFO_SCALE_SHARED_BIT,
                        .scan_index = 2,
                        .scan_type = IIO_ST('s', 24, 32, 0)
                },
                        .channel = 2,
                        .channel2 = 2,
                        .address = AD7793_CH_AIN1M_AIN1M,
-                       .info_mask = IIO_CHAN_INFO_SCALE_SHARED_BIT,
+                       .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT |
+                       IIO_CHAN_INFO_SCALE_SHARED_BIT,
                        .scan_index = 2,
                        .scan_type = IIO_ST('s', 24, 32, 0)
                },
                        .indexed = 1,
                        .channel = 0,
                        .address = AD7793_CH_TEMP,
-                       .info_mask = IIO_CHAN_INFO_SCALE_SEPARATE_BIT,
+                       .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT |
+                       IIO_CHAN_INFO_SCALE_SEPARATE_BIT,
                        .scan_index = 4,
                        .scan_type = IIO_ST('s', 24, 32, 0),
                },
                        .indexed = 1,
                        .channel = 4,
                        .address = AD7793_CH_AVDD_MONITOR,
-                       .info_mask = IIO_CHAN_INFO_SCALE_SEPARATE_BIT,
+                       .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT |
+                       IIO_CHAN_INFO_SCALE_SEPARATE_BIT,
                        .scan_index = 5,
                        .scan_type = IIO_ST('s', 24, 32, 0),
                },
                        .channel = 0,
                        .channel2 = 0,
                        .address = AD7793_CH_AIN1P_AIN1M,
-                       .info_mask = IIO_CHAN_INFO_SCALE_SHARED_BIT,
+                       .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT |
+                       IIO_CHAN_INFO_SCALE_SHARED_BIT,
                        .scan_index = 0,
                        .scan_type = IIO_ST('s', 16, 32, 0)
                },
                        .channel = 1,
                        .channel2 = 1,
                        .address = AD7793_CH_AIN2P_AIN2M,
-                       .info_mask = IIO_CHAN_INFO_SCALE_SHARED_BIT,
+                       .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT |
+                       IIO_CHAN_INFO_SCALE_SHARED_BIT,
                        .scan_index = 1,
                        .scan_type = IIO_ST('s', 16, 32, 0)
                },
                        .channel = 2,
                        .channel2 = 2,
                        .address = AD7793_CH_AIN3P_AIN3M,
-                       .info_mask = IIO_CHAN_INFO_SCALE_SHARED_BIT,
+                       .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT |
+                       IIO_CHAN_INFO_SCALE_SHARED_BIT,
                        .scan_index = 2,
                        .scan_type = IIO_ST('s', 16, 32, 0)
                },
                        .channel = 2,
                        .channel2 = 2,
                        .address = AD7793_CH_AIN1M_AIN1M,
-                       .info_mask = IIO_CHAN_INFO_SCALE_SHARED_BIT,
+                       .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT |
+                       IIO_CHAN_INFO_SCALE_SHARED_BIT,
                        .scan_index = 2,
                        .scan_type = IIO_ST('s', 16, 32, 0)
                },
                        .indexed = 1,
                        .channel = 0,
                        .address = AD7793_CH_TEMP,
-                       .info_mask = IIO_CHAN_INFO_SCALE_SEPARATE_BIT,
+                       .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT |
+                       IIO_CHAN_INFO_SCALE_SEPARATE_BIT,
                        .scan_index = 4,
                        .scan_type = IIO_ST('s', 16, 32, 0),
                },
                        .indexed = 1,
                        .channel = 4,
                        .address = AD7793_CH_AVDD_MONITOR,
-                       .info_mask = IIO_CHAN_INFO_SCALE_SEPARATE_BIT,
+                       .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT |
+                       IIO_CHAN_INFO_SCALE_SEPARATE_BIT,
                        .scan_index = 5,
                        .scan_type = IIO_ST('s', 16, 32, 0),
                },
 
        unsigned int scale_uv;
 
        switch (m) {
-       case 0:
+       case IIO_CHAN_INFO_RAW:
                mutex_lock(&indio_dev->mlock);
                if (iio_buffer_enabled(indio_dev))
                        ret = -EBUSY;
                        .type = IIO_VOLTAGE,
                        .indexed = 1,
                        .channel = 1,
-                       .info_mask = IIO_CHAN_INFO_SCALE_SHARED_BIT,
+                       .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT |
+                       IIO_CHAN_INFO_SCALE_SHARED_BIT,
                        .address = 1,
                        .scan_index = 1,
                        .scan_type = IIO_ST('u', 12, 16, 0),
                        .type = IIO_VOLTAGE,
                        .indexed = 1,
                        .channel = 0,
-                       .info_mask = IIO_CHAN_INFO_SCALE_SHARED_BIT,
+                       .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT |
+                       IIO_CHAN_INFO_SCALE_SHARED_BIT,
                        .address = 0,
                        .scan_index = 0,
                        .scan_type = IIO_ST('u', 12, 16, 0),
 
        unsigned int scale_uv;
 
        switch (m) {
-       case 0:
+       case IIO_CHAN_INFO_RAW:
                mutex_lock(&indio_dev->mlock);
                if (iio_buffer_enabled(indio_dev))
                        ret = -EBUSY;
                                .type = IIO_VOLTAGE,
                                .indexed = 1,
                                .channel = 0,
+                               .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT,
                                .scan_index = 0,
                                .scan_type = IIO_ST('u', 12, 16, 0),
                        },
                                .type = IIO_VOLTAGE,
                                .indexed = 1,
                                .channel = 1,
+                               .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT,
                                .scan_index = 1,
                                .scan_type = IIO_ST('u', 12, 16, 0),
                        },
                                .type = IIO_VOLTAGE,
                                .indexed = 1,
                                .channel = 2,
+                               .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT,
                                .scan_index = 2,
                                .scan_type = IIO_ST('u', 12, 16, 0),
                        },
                                .type = IIO_VOLTAGE,
                                .indexed = 1,
                                .channel = 3,
+                               .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT,
                                .scan_index = 3,
                                .scan_type = IIO_ST('u', 12, 16, 0),
                        },
                                .type = IIO_VOLTAGE,
                                .indexed = 1,
                                .channel = 0,
+                               .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT,
                                .scan_index = 0,
                                .scan_type = IIO_ST('u', 10, 16, 2),
                        },
                                .type = IIO_VOLTAGE,
                                .indexed = 1,
                                .channel = 1,
+                               .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT,
                                .scan_index = 1,
                                .scan_type = IIO_ST('u', 10, 16, 2),
                        },
                                .type = IIO_VOLTAGE,
                                .indexed = 1,
                                .channel = 2,
+                               .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT,
                                .scan_index = 2,
                                .scan_type = IIO_ST('u', 10, 16, 2),
                        },
                                .type = IIO_VOLTAGE,
                                .indexed = 1,
                                .channel = 3,
+                               .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT,
                                .scan_index = 3,
                                .scan_type = IIO_ST('u', 10, 16, 2),
                        },
                                .type = IIO_VOLTAGE,
                                .indexed = 1,
                                .channel = 0,
+                               .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT,
                                .scan_index = 0,
                                .scan_type = IIO_ST('u', 8, 16, 4),
                        },
                                .type = IIO_VOLTAGE,
                                .indexed = 1,
                                .channel = 1,
+                               .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT,
                                .scan_index = 1,
                                .scan_type = IIO_ST('u', 8, 16, 4),
                        },
                                .type = IIO_VOLTAGE,
                                .indexed = 1,
                                .channel = 2,
+                               .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT,
                                .scan_index = 2,
                                .scan_type = IIO_ST('u', 8, 16, 4),
                        },
                                .type = IIO_VOLTAGE,
                                .indexed = 1,
                                .channel = 3,
+                               .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT,
                                .scan_index = 3,
                                .scan_type = IIO_ST('u', 8, 16, 4),
                        },
                                .type = IIO_VOLTAGE,
                                .indexed = 1,
                                .channel = 0,
+                               .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT,
                                .scan_index = 0,
                                .scan_type = IIO_ST('u', 12, 16, 0),
                                .event_mask = AD799X_EV_MASK,
                                .type = IIO_VOLTAGE,
                                .indexed = 1,
                                .channel = 1,
+                               .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT,
                                .scan_index = 1,
                                .scan_type = IIO_ST('u', 12, 16, 0),
                                .event_mask = AD799X_EV_MASK,
                                .type = IIO_VOLTAGE,
                                .indexed = 1,
                                .channel = 0,
+                               .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT,
                                .scan_index = 0,
                                .scan_type = IIO_ST('u', 10, 16, 2),
                                .event_mask = AD799X_EV_MASK,
                                .indexed = 1,
                                .channel = 1,
                                .scan_index = 1,
+                               .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT,
                                .scan_type = IIO_ST('u', 10, 16, 2),
                                .event_mask = AD799X_EV_MASK,
                        },
                                .type = IIO_VOLTAGE,
                                .indexed = 1,
                                .channel = 2,
+                               .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT,
                                .scan_index = 2,
                                .scan_type = IIO_ST('u', 10, 16, 2),
                                .event_mask = AD799X_EV_MASK,
                                .type = IIO_VOLTAGE,
                                .indexed = 1,
                                .channel = 3,
+                               .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT,
                                .scan_index = 3,
                                .scan_type = IIO_ST('u', 10, 16, 2),
                                .event_mask = AD799X_EV_MASK,
                                .type = IIO_VOLTAGE,
                                .indexed = 1,
                                .channel = 0,
+                               .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT,
                                .scan_index = 0,
                                .scan_type = IIO_ST('u', 12, 16, 0),
                                .event_mask = AD799X_EV_MASK,
                                .type = IIO_VOLTAGE,
                                .indexed = 1,
                                .channel = 1,
+                               .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT,
                                .scan_index = 1,
                                .scan_type = IIO_ST('u', 12, 16, 0),
                                .event_mask = AD799X_EV_MASK,
                                .type = IIO_VOLTAGE,
                                .indexed = 1,
                                .channel = 2,
+                               .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT,
                                .scan_index = 2,
                                .scan_type = IIO_ST('u', 12, 16, 0),
                                .event_mask = AD799X_EV_MASK,
                                .type = IIO_VOLTAGE,
                                .indexed = 1,
                                .channel = 3,
+                               .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT,
                                .scan_index = 3,
                                .scan_type = IIO_ST('u', 12, 16, 0),
                                .event_mask = AD799X_EV_MASK,
                                .type = IIO_VOLTAGE,
                                .indexed = 1,
                                .channel = 0,
+                               .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT,
                                .scan_index = 0,
                                .scan_type = IIO_ST('u', 10, 16, 2),
                                .event_mask = AD799X_EV_MASK,
                                .type = IIO_VOLTAGE,
                                .indexed = 1,
                                .channel = 1,
+                               .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT,
                                .scan_index = 1,
                                .scan_type = IIO_ST('u', 10, 16, 2),
                                .event_mask = AD799X_EV_MASK,
                                .type = IIO_VOLTAGE,
                                .indexed = 1,
                                .channel = 2,
+                               .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT,
                                .scan_index = 2,
                                .scan_type = IIO_ST('u', 10, 16, 2),
                                .event_mask = AD799X_EV_MASK,
                                .type = IIO_VOLTAGE,
                                .indexed = 1,
                                .channel = 3,
+                               .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT,
                                .scan_index = 3,
                                .scan_type = IIO_ST('u', 10, 16, 2),
                                .event_mask = AD799X_EV_MASK,
                                .type = IIO_VOLTAGE,
                                .indexed = 1,
                                .channel = 4,
+                               .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT,
                                .scan_index = 4,
                                .scan_type = IIO_ST('u', 10, 16, 2),
                        },
                                .type = IIO_VOLTAGE,
                                .indexed = 1,
                                .channel = 5,
+                               .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT,
                                .scan_index = 5,
                                .scan_type = IIO_ST('u', 10, 16, 2),
                        },
                                .type = IIO_VOLTAGE,
                                .indexed = 1,
                                .channel = 6,
+                               .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT,
                                .scan_index = 6,
                                .scan_type = IIO_ST('u', 10, 16, 2),
                        },
                                .type = IIO_VOLTAGE,
                                .indexed = 1,
                                .channel = 7,
+                               .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT,
                                .scan_index = 7,
                                .scan_type = IIO_ST('u', 10, 16, 2),
                        },
                                .type = IIO_VOLTAGE,
                                .indexed = 1,
                                .channel = 0,
+                               .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT,
                                .scan_index = 0,
                                .scan_type = IIO_ST('u', 12, 16, 0),
                                .event_mask = AD799X_EV_MASK,
                                .type = IIO_VOLTAGE,
                                .indexed = 1,
                                .channel = 1,
+                               .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT,
                                .scan_index = 1,
                                .scan_type = IIO_ST('u', 12, 16, 0),
                                .event_mask = AD799X_EV_MASK,
                                .type = IIO_VOLTAGE,
                                .indexed = 1,
                                .channel = 2,
+                               .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT,
                                .scan_index = 2,
                                .scan_type = IIO_ST('u', 12, 16, 0),
                                .event_mask = AD799X_EV_MASK,
                                .type = IIO_VOLTAGE,
                                .indexed = 1,
                                .channel = 3,
+                               .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT,
                                .scan_index = 3,
                                .scan_type = IIO_ST('u', 12, 16, 0),
                                .event_mask = AD799X_EV_MASK,
                                .type = IIO_VOLTAGE,
                                .indexed = 1,
                                .channel = 4,
+                               .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT,
                                .scan_index = 4,
                                .scan_type = IIO_ST('u', 12, 16, 0),
                        },
                                .type = IIO_VOLTAGE,
                                .indexed = 1,
                                .channel = 5,
+                               .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT,
                                .scan_index = 5,
                                .scan_type = IIO_ST('u', 12, 16, 0),
                        },
                                .type = IIO_VOLTAGE,
                                .indexed = 1,
                                .channel = 6,
+                               .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT,
                                .scan_index = 6,
                                .scan_type = IIO_ST('u', 12, 16, 0),
                        },
                                .type = IIO_VOLTAGE,
                                .indexed = 1,
                                .channel = 7,
+                               .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT,
                                .scan_index = 7,
                                .scan_type = IIO_ST('u', 12, 16, 0),
                        },
 
 {
        struct lpc32xx_adc_info *info = iio_priv(indio_dev);
 
-       if (mask == 0) {
+       if (mask == IIO_CHAN_INFO_RAW) {
                mutex_lock(&indio_dev->mlock);
                clk_enable(info->clk);
                /* Measurement setup */
        .driver_module = THIS_MODULE,
 };
 
-#define LPC32XX_ADC_CHANNEL(_index) {          \
-       .type = IIO_VOLTAGE,                    \
-       .indexed = 1,                           \
-       .channel = _index,                      \
-       .address = AD_IN * _index,              \
-       .scan_index = _index,                   \
+#define LPC32XX_ADC_CHANNEL(_index) {                  \
+       .type = IIO_VOLTAGE,                            \
+       .indexed = 1,                                   \
+       .channel = _index,                              \
+       .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT,    \
+       .address = AD_IN * _index,                      \
+       .scan_index = _index,                           \
 }
 
 static struct iio_chan_spec lpc32xx_adc_iio_channels[] = {
 
        struct max1363_state *st = iio_priv(indio_dev);
        int ret;
        switch (m) {
-       case 0:
+       case IIO_CHAN_INFO_RAW:
                ret = max1363_read_single_chan(indio_dev, chan, val, m);
                if (ret < 0)
                        return ret;
 #define MAX1363_EV_M                                           \
        (IIO_EV_BIT(IIO_EV_TYPE_THRESH, IIO_EV_DIR_RISING)      \
         | IIO_EV_BIT(IIO_EV_TYPE_THRESH, IIO_EV_DIR_FALLING))
-#define MAX1363_INFO_MASK IIO_CHAN_INFO_SCALE_SHARED_BIT
+#define MAX1363_INFO_MASK (IIO_CHAN_INFO_RAW_SEPARATE_BIT |    \
+                          IIO_CHAN_INFO_SCALE_SHARED_BIT)
 #define MAX1363_CHAN_U(num, addr, si, bits, evmask)                    \
        {                                                               \
                .type = IIO_VOLTAGE,                                    \
 
        u32 status;
 
        switch (mask) {
-       case 0:
+       case IIO_CHAN_INFO_RAW:
                mutex_lock(&indio_dev->mlock);
 
                status = CHANNEL_NUM(chan->channel) |
 #define SPEAR_ADC_CHAN(idx) {                          \
        .type = IIO_VOLTAGE,                            \
        .indexed = 1,                                   \
-       .info_mask = IIO_CHAN_INFO_SCALE_SHARED_BIT,    \
+       .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT |   \
+       IIO_CHAN_INFO_SCALE_SHARED_BIT,                 \
        .channel = idx,                                 \
        .scan_type = {                                  \
                .sign = 'u',                            \