s16 val16;
 
        switch (mask) {
-       case 0:
+       case IIO_CHAN_INFO_RAW:
                mutex_lock(&indio_dev->mlock);
                ret = adis16400_spi_read_reg_16(indio_dev,
                                adis16400_addresses[chan->address][0],
                .indexed = 1,
                .channel = 0,
                .extend_name = "supply",
-               .info_mask = IIO_CHAN_INFO_SCALE_SEPARATE_BIT,
+               .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT |
+               IIO_CHAN_INFO_SCALE_SEPARATE_BIT,
                .address = in_supply,
                .scan_index = ADIS16400_SCAN_SUPPLY,
                .scan_type = IIO_ST('u', 14, 16, 0)
                .type = IIO_ANGL_VEL,
                .modified = 1,
                .channel2 = IIO_MOD_X,
-               .info_mask = IIO_CHAN_INFO_CALIBBIAS_SEPARATE_BIT |
+               .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT |
+               IIO_CHAN_INFO_CALIBBIAS_SEPARATE_BIT |
                IIO_CHAN_INFO_SCALE_SHARED_BIT |
                IIO_CHAN_INFO_LOW_PASS_FILTER_3DB_FREQUENCY_SHARED_BIT,
                .address = gyro_x,
                .type = IIO_ANGL_VEL,
                .modified = 1,
                .channel2 = IIO_MOD_Y,
-               .info_mask = IIO_CHAN_INFO_CALIBBIAS_SEPARATE_BIT |
+               .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT |
+               IIO_CHAN_INFO_CALIBBIAS_SEPARATE_BIT |
                IIO_CHAN_INFO_SCALE_SHARED_BIT |
                IIO_CHAN_INFO_LOW_PASS_FILTER_3DB_FREQUENCY_SHARED_BIT,
                .address = gyro_y,
                .type = IIO_ANGL_VEL,
                .modified = 1,
                .channel2 = IIO_MOD_Z,
-               .info_mask = IIO_CHAN_INFO_CALIBBIAS_SEPARATE_BIT |
+               .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT |
+               IIO_CHAN_INFO_CALIBBIAS_SEPARATE_BIT |
                IIO_CHAN_INFO_SCALE_SHARED_BIT |
                IIO_CHAN_INFO_LOW_PASS_FILTER_3DB_FREQUENCY_SHARED_BIT,
                .address = gyro_z,
                .type = IIO_ACCEL,
                .modified = 1,
                .channel2 = IIO_MOD_X,
-               .info_mask = IIO_CHAN_INFO_CALIBBIAS_SEPARATE_BIT |
+               .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT |
+               IIO_CHAN_INFO_CALIBBIAS_SEPARATE_BIT |
                IIO_CHAN_INFO_SCALE_SHARED_BIT |
                IIO_CHAN_INFO_LOW_PASS_FILTER_3DB_FREQUENCY_SHARED_BIT,
                .address = accel_x,
                .type = IIO_ACCEL,
                .modified = 1,
                .channel2 = IIO_MOD_Y,
-               .info_mask = IIO_CHAN_INFO_CALIBBIAS_SEPARATE_BIT |
+               .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT |
+               IIO_CHAN_INFO_CALIBBIAS_SEPARATE_BIT |
                IIO_CHAN_INFO_SCALE_SHARED_BIT |
                IIO_CHAN_INFO_LOW_PASS_FILTER_3DB_FREQUENCY_SHARED_BIT,
                .address = accel_y,
                .type = IIO_ACCEL,
                .modified = 1,
                .channel2 = IIO_MOD_Z,
-               .info_mask = IIO_CHAN_INFO_CALIBBIAS_SEPARATE_BIT |
+               .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT |
+               IIO_CHAN_INFO_CALIBBIAS_SEPARATE_BIT |
                IIO_CHAN_INFO_SCALE_SHARED_BIT |
                IIO_CHAN_INFO_LOW_PASS_FILTER_3DB_FREQUENCY_SHARED_BIT,
                .address = accel_z,
                .type = IIO_MAGN,
                .modified = 1,
                .channel2 = IIO_MOD_X,
-               .info_mask = IIO_CHAN_INFO_SCALE_SHARED_BIT |
+               .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT |
+               IIO_CHAN_INFO_SCALE_SHARED_BIT |
                IIO_CHAN_INFO_LOW_PASS_FILTER_3DB_FREQUENCY_SHARED_BIT,
                .address = magn_x,
                .scan_index = ADIS16400_SCAN_MAGN_X,
                .type = IIO_MAGN,
                .modified = 1,
                .channel2 = IIO_MOD_Y,
-               .info_mask = IIO_CHAN_INFO_SCALE_SHARED_BIT |
+               .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT |
+               IIO_CHAN_INFO_SCALE_SHARED_BIT |
                IIO_CHAN_INFO_LOW_PASS_FILTER_3DB_FREQUENCY_SHARED_BIT,
                .address = magn_y,
                .scan_index = ADIS16400_SCAN_MAGN_Y,
                .type = IIO_MAGN,
                .modified = 1,
                .channel2 = IIO_MOD_Z,
-               .info_mask = IIO_CHAN_INFO_SCALE_SHARED_BIT |
+               .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT |
+               IIO_CHAN_INFO_SCALE_SHARED_BIT |
                IIO_CHAN_INFO_LOW_PASS_FILTER_3DB_FREQUENCY_SHARED_BIT,
                .address = magn_z,
                .scan_index = ADIS16400_SCAN_MAGN_Z,
                .type = IIO_TEMP,
                .indexed = 1,
                .channel = 0,
-               .info_mask = IIO_CHAN_INFO_OFFSET_SEPARATE_BIT |
+               .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT |
+               IIO_CHAN_INFO_OFFSET_SEPARATE_BIT |
                IIO_CHAN_INFO_SCALE_SEPARATE_BIT,
                .address = temp,
                .scan_index = ADIS16400_SCAN_TEMP,
                .type = IIO_VOLTAGE,
                .indexed = 1,
                .channel = 1,
-               .info_mask = IIO_CHAN_INFO_SCALE_SEPARATE_BIT,
+               .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT |
+               IIO_CHAN_INFO_SCALE_SEPARATE_BIT,
                .address = in1,
                .scan_index = ADIS16400_SCAN_ADC_0,
                .scan_type = IIO_ST('s', 12, 16, 0),
                .indexed = 1,
                .channel = 0,
                .extend_name = "supply",
-               .info_mask = IIO_CHAN_INFO_SCALE_SEPARATE_BIT,
+               .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT |
+               IIO_CHAN_INFO_SCALE_SEPARATE_BIT,
                .address = in_supply,
                .scan_index = ADIS16400_SCAN_SUPPLY,
                .scan_type = IIO_ST('u', 12, 16, 0)
                .type = IIO_ANGL_VEL,
                .modified = 1,
                .channel2 = IIO_MOD_X,
-               .info_mask = IIO_CHAN_INFO_CALIBBIAS_SEPARATE_BIT |
+               .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT |
+               IIO_CHAN_INFO_CALIBBIAS_SEPARATE_BIT |
                IIO_CHAN_INFO_SCALE_SHARED_BIT |
                IIO_CHAN_INFO_LOW_PASS_FILTER_3DB_FREQUENCY_SHARED_BIT,
                .address = gyro_x,
                .type = IIO_ANGL_VEL,
                .modified = 1,
                .channel2 = IIO_MOD_Y,
-               .info_mask = IIO_CHAN_INFO_CALIBBIAS_SEPARATE_BIT |
+               .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT |
+               IIO_CHAN_INFO_CALIBBIAS_SEPARATE_BIT |
                IIO_CHAN_INFO_SCALE_SHARED_BIT |
                IIO_CHAN_INFO_LOW_PASS_FILTER_3DB_FREQUENCY_SHARED_BIT,
                .address = gyro_y,
                .type = IIO_ANGL_VEL,
                .modified = 1,
                .channel2 = IIO_MOD_Z,
-               .info_mask = IIO_CHAN_INFO_CALIBBIAS_SEPARATE_BIT |
+               .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT |
+               IIO_CHAN_INFO_CALIBBIAS_SEPARATE_BIT |
                IIO_CHAN_INFO_SCALE_SHARED_BIT |
                IIO_CHAN_INFO_LOW_PASS_FILTER_3DB_FREQUENCY_SHARED_BIT,
                .address = gyro_z,
                .scan_index = ADIS16400_SCAN_GYRO_Z,
                .scan_type = IIO_ST('s', 14, 16, 0),
        }, {
-       .type = IIO_ACCEL,
+               .type = IIO_ACCEL,
                .modified = 1,
                .channel2 = IIO_MOD_X,
-               .info_mask = IIO_CHAN_INFO_CALIBBIAS_SEPARATE_BIT |
+               .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT |
+               IIO_CHAN_INFO_CALIBBIAS_SEPARATE_BIT |
                IIO_CHAN_INFO_SCALE_SHARED_BIT |
                IIO_CHAN_INFO_LOW_PASS_FILTER_3DB_FREQUENCY_SHARED_BIT,
                .address = accel_x,
                .type = IIO_ACCEL,
                .modified = 1,
                .channel2 = IIO_MOD_Y,
-               .info_mask = IIO_CHAN_INFO_CALIBBIAS_SEPARATE_BIT |
+               .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT |
+               IIO_CHAN_INFO_CALIBBIAS_SEPARATE_BIT |
                IIO_CHAN_INFO_SCALE_SHARED_BIT |
                IIO_CHAN_INFO_LOW_PASS_FILTER_3DB_FREQUENCY_SHARED_BIT,
                .address = accel_y,
                .type = IIO_ACCEL,
                .modified = 1,
                .channel2 = IIO_MOD_Z,
-               .info_mask = IIO_CHAN_INFO_CALIBBIAS_SEPARATE_BIT |
+               .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT |
+               IIO_CHAN_INFO_CALIBBIAS_SEPARATE_BIT |
                IIO_CHAN_INFO_SCALE_SHARED_BIT |
                IIO_CHAN_INFO_LOW_PASS_FILTER_3DB_FREQUENCY_SHARED_BIT,
                .address = accel_z,
                .indexed = 1,
                .channel = 0,
                .extend_name = "x",
-               .info_mask = IIO_CHAN_INFO_OFFSET_SEPARATE_BIT |
+               .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT |
+               IIO_CHAN_INFO_OFFSET_SEPARATE_BIT |
                IIO_CHAN_INFO_SCALE_SEPARATE_BIT |
                IIO_CHAN_INFO_LOW_PASS_FILTER_3DB_FREQUENCY_SHARED_BIT,
                .address = temp0,
                .indexed = 1,
                .channel = 1,
                .extend_name = "y",
-               .info_mask = IIO_CHAN_INFO_OFFSET_SEPARATE_BIT |
+               .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT |
+               IIO_CHAN_INFO_OFFSET_SEPARATE_BIT |
                IIO_CHAN_INFO_SCALE_SEPARATE_BIT |
                IIO_CHAN_INFO_LOW_PASS_FILTER_3DB_FREQUENCY_SHARED_BIT,
                .address = temp1,
                .indexed = 1,
                .channel = 2,
                .extend_name = "z",
-               .info_mask = IIO_CHAN_INFO_OFFSET_SEPARATE_BIT |
+               .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT |
+               IIO_CHAN_INFO_OFFSET_SEPARATE_BIT |
                IIO_CHAN_INFO_SCALE_SEPARATE_BIT,
                .address = temp2,
                .scan_index = ADIS16350_SCAN_TEMP_Z,
                .type = IIO_VOLTAGE,
                .indexed = 1,
                .channel = 1,
-               .info_mask = IIO_CHAN_INFO_SCALE_SEPARATE_BIT,
+               .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT |
+               IIO_CHAN_INFO_SCALE_SEPARATE_BIT,
                .address = in1,
                .scan_index = ADIS16350_SCAN_ADC_0,
                .scan_type = IIO_ST('s', 12, 16, 0),
                .indexed = 1,
                .channel = 0,
                .extend_name = "supply",
-               .info_mask = IIO_CHAN_INFO_SCALE_SEPARATE_BIT,
+               .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT |
+               IIO_CHAN_INFO_SCALE_SEPARATE_BIT,
                .address = in_supply,
                .scan_index = ADIS16400_SCAN_SUPPLY,
                .scan_type = IIO_ST('u', 12, 16, 0)
                .type = IIO_ANGL_VEL,
                .modified = 1,
                .channel2 = IIO_MOD_X,
-               .info_mask = IIO_CHAN_INFO_CALIBBIAS_SEPARATE_BIT |
+               .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT |
+               IIO_CHAN_INFO_CALIBBIAS_SEPARATE_BIT |
                IIO_CHAN_INFO_SCALE_SHARED_BIT |
                IIO_CHAN_INFO_LOW_PASS_FILTER_3DB_FREQUENCY_SHARED_BIT,
                .address = gyro_x,
                .type = IIO_ACCEL,
                .modified = 1,
                .channel2 = IIO_MOD_X,
-               .info_mask = IIO_CHAN_INFO_CALIBBIAS_SEPARATE_BIT |
+               .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT |
+               IIO_CHAN_INFO_CALIBBIAS_SEPARATE_BIT |
                IIO_CHAN_INFO_SCALE_SHARED_BIT |
                IIO_CHAN_INFO_LOW_PASS_FILTER_3DB_FREQUENCY_SHARED_BIT,
                .address = accel_x,
                .type = IIO_ACCEL,
                .modified = 1,
                .channel2 = IIO_MOD_Y,
-               .info_mask = IIO_CHAN_INFO_CALIBBIAS_SEPARATE_BIT |
+               .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT |
+               IIO_CHAN_INFO_CALIBBIAS_SEPARATE_BIT |
                IIO_CHAN_INFO_SCALE_SHARED_BIT |
                IIO_CHAN_INFO_LOW_PASS_FILTER_3DB_FREQUENCY_SHARED_BIT,
                .address = accel_y,
                .type = IIO_ACCEL,
                .modified = 1,
                .channel2 = IIO_MOD_Z,
-               .info_mask = IIO_CHAN_INFO_CALIBBIAS_SEPARATE_BIT |
+               .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT |
+               IIO_CHAN_INFO_CALIBBIAS_SEPARATE_BIT |
                IIO_CHAN_INFO_SCALE_SHARED_BIT |
                IIO_CHAN_INFO_LOW_PASS_FILTER_3DB_FREQUENCY_SHARED_BIT,
                .address = accel_z,
                .type = IIO_TEMP,
                .indexed = 1,
                .channel = 0,
-               .info_mask = IIO_CHAN_INFO_OFFSET_SEPARATE_BIT |
+               .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT |
+               IIO_CHAN_INFO_OFFSET_SEPARATE_BIT |
                IIO_CHAN_INFO_SCALE_SEPARATE_BIT,
                .address = temp,
                .scan_index = ADIS16400_SCAN_TEMP,
                .type = IIO_VOLTAGE,
                .indexed = 1,
                .channel = 1,
-               .info_mask = IIO_CHAN_INFO_SCALE_SEPARATE_BIT,
+               .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT |
+               IIO_CHAN_INFO_SCALE_SEPARATE_BIT,
                .address = in1,
                .scan_index = ADIS16350_SCAN_ADC_0,
                .scan_type = IIO_ST('s', 12, 16, 0),
                .type = IIO_INCLI,
                .modified = 1,
                .channel2 = IIO_MOD_X,
-               .info_mask = IIO_CHAN_INFO_SCALE_SHARED_BIT,
+               .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT |
+               IIO_CHAN_INFO_SCALE_SHARED_BIT,
                .address = incli_x,
                .scan_index = ADIS16300_SCAN_INCLI_X,
                .scan_type = IIO_ST('s', 13, 16, 0),
                .type = IIO_INCLI,
                .modified = 1,
                .channel2 = IIO_MOD_Y,
-               .info_mask = IIO_CHAN_INFO_SCALE_SHARED_BIT,
+               .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT |
+               IIO_CHAN_INFO_SCALE_SHARED_BIT,
                .address = incli_y,
                .scan_index = ADIS16300_SCAN_INCLI_Y,
                .scan_type = IIO_ST('s', 13, 16, 0),
                .type = IIO_ANGL_VEL,
                .modified = 1,
                .channel2 = IIO_MOD_X,
-               .info_mask = IIO_CHAN_INFO_CALIBBIAS_SEPARATE_BIT |
+               .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT |
+               IIO_CHAN_INFO_CALIBBIAS_SEPARATE_BIT |
                IIO_CHAN_INFO_SCALE_SHARED_BIT |
                IIO_CHAN_INFO_LOW_PASS_FILTER_3DB_FREQUENCY_SHARED_BIT,
                .address = gyro_x,
                .type = IIO_ANGL_VEL,
                .modified = 1,
                .channel2 = IIO_MOD_Y,
-               .info_mask = IIO_CHAN_INFO_CALIBBIAS_SEPARATE_BIT |
+               .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT |
+               IIO_CHAN_INFO_CALIBBIAS_SEPARATE_BIT |
                IIO_CHAN_INFO_SCALE_SHARED_BIT |
                IIO_CHAN_INFO_LOW_PASS_FILTER_3DB_FREQUENCY_SHARED_BIT,
                .address = gyro_y,
                .type = IIO_ANGL_VEL,
                .modified = 1,
                .channel2 = IIO_MOD_Z,
-               .info_mask = IIO_CHAN_INFO_CALIBBIAS_SEPARATE_BIT |
+               .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT |
+               IIO_CHAN_INFO_CALIBBIAS_SEPARATE_BIT |
                IIO_CHAN_INFO_SCALE_SHARED_BIT |
                IIO_CHAN_INFO_LOW_PASS_FILTER_3DB_FREQUENCY_SHARED_BIT,
                .address = gyro_z,
                .type = IIO_ACCEL,
                .modified = 1,
                .channel2 = IIO_MOD_X,
-               .info_mask = IIO_CHAN_INFO_CALIBBIAS_SEPARATE_BIT |
+               .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT |
+               IIO_CHAN_INFO_CALIBBIAS_SEPARATE_BIT |
                IIO_CHAN_INFO_SCALE_SHARED_BIT |
                IIO_CHAN_INFO_LOW_PASS_FILTER_3DB_FREQUENCY_SHARED_BIT,
                .address = accel_x,
                .type = IIO_ACCEL,
                .modified = 1,
                .channel2 = IIO_MOD_Y,
-               .info_mask = IIO_CHAN_INFO_CALIBBIAS_SEPARATE_BIT |
+               .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT |
+               IIO_CHAN_INFO_CALIBBIAS_SEPARATE_BIT |
                IIO_CHAN_INFO_SCALE_SHARED_BIT |
                IIO_CHAN_INFO_LOW_PASS_FILTER_3DB_FREQUENCY_SHARED_BIT,
                .address = accel_y,
                .type = IIO_ACCEL,
                .modified = 1,
                .channel2 = IIO_MOD_Z,
-               .info_mask = IIO_CHAN_INFO_CALIBBIAS_SEPARATE_BIT |
+               .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT |
+               IIO_CHAN_INFO_CALIBBIAS_SEPARATE_BIT |
                IIO_CHAN_INFO_SCALE_SHARED_BIT |
                IIO_CHAN_INFO_LOW_PASS_FILTER_3DB_FREQUENCY_SHARED_BIT,
                .address = accel_z,
                .type = IIO_TEMP,
                .indexed = 1,
                .channel = 0,
-               .info_mask = IIO_CHAN_INFO_CALIBBIAS_SEPARATE_BIT |
+               .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT |
+               IIO_CHAN_INFO_CALIBBIAS_SEPARATE_BIT |
                IIO_CHAN_INFO_SCALE_SHARED_BIT,
                .address = accel_z,
                .scan_index = ADIS16400_SCAN_ACC_Z,