staging:iio:treewide only use shared to decide on interfaces
[firefly-linux-kernel-4.4.55.git] / drivers / staging / iio / iio_simple_dummy.c
index 2196ff19f7b49922be224273eeda991270a25460..228f991d40ecc296137483c697db21d3ee38dadd 100644 (file)
@@ -77,13 +77,13 @@ static struct iio_chan_spec iio_dummy_channels[] = {
                 * Offset for userspace to apply prior to scale
                 * when converting to standard units (microvolts)
                 */
-               (1 << IIO_CHAN_INFO_OFFSET_SEPARATE) |
+               IIO_CHAN_INFO_OFFSET_SEPARATE_BIT |
                /*
                 * in_voltage0_scale
                 * Multipler for userspace to apply post offset
                 * when converting to standard units (microvolts)
                 */
-               (1 << IIO_CHAN_INFO_SCALE_SEPARATE),
+               IIO_CHAN_INFO_SCALE_SEPARATE_BIT,
                /* The ordering of elements in the buffer via an enum */
                .scan_index = voltage0,
                .scan_type = { /* Description of storage in buffer */
@@ -118,7 +118,7 @@ static struct iio_chan_spec iio_dummy_channels[] = {
                 * Shared version of scale - shared by differential
                 * input channels of type IIO_VOLTAGE.
                 */
-               (1 << IIO_CHAN_INFO_SCALE_SHARED),
+               IIO_CHAN_INFO_SCALE_SHARED_BIT,
                .scan_index = diffvoltage1m2,
                .scan_type = { /* Description of storage in buffer */
                        .sign = 's', /* signed */
@@ -135,7 +135,7 @@ static struct iio_chan_spec iio_dummy_channels[] = {
                .channel = 3,
                .channel2 = 4,
                .info_mask =
-               (1 << IIO_CHAN_INFO_SCALE_SHARED),
+               IIO_CHAN_INFO_SCALE_SHARED_BIT,
                .scan_index = diffvoltage3m4,
                .scan_type = {
                        .sign = 's',
@@ -160,7 +160,7 @@ static struct iio_chan_spec iio_dummy_channels[] = {
                 * seeing the readings. Typically part of hardware
                 * calibration.
                 */
-               (1 << IIO_CHAN_INFO_CALIBBIAS_SEPARATE),
+               IIO_CHAN_INFO_CALIBBIAS_SEPARATE_BIT,
                .scan_index = accelx,
                .scan_type = { /* Description of storage in buffer */
                        .sign = 's', /* signed */
@@ -229,29 +229,32 @@ static int iio_dummy_read_raw(struct iio_dev *indio_dev,
                        break;
                }
                break;
-       case IIO_CHAN_INFO_OFFSET_SEPARATE:
+       case IIO_CHAN_INFO_OFFSET:
                /* only single ended adc -> 7 */
                *val = 7;
                ret = IIO_VAL_INT;
                break;
-       case IIO_CHAN_INFO_SCALE_SEPARATE:
-               /* only single ended adc -> 0.001333 */
-               *val = 0;
-               *val2 = 1333;
-               ret = IIO_VAL_INT_PLUS_MICRO;
-               break;
-       case IIO_CHAN_INFO_SCALE_SHARED:
-               /* all differential adc channels -> 0.000001344 */
-               *val = 0;
-               *val2 = 1344;
-               ret = IIO_VAL_INT_PLUS_NANO;
+       case IIO_CHAN_INFO_SCALE:
+               switch (chan->differential) {
+               case 0:
+                       /* only single ended adc -> 0.001333 */
+                       *val = 0;
+                       *val2 = 1333;
+                       ret = IIO_VAL_INT_PLUS_MICRO;
+                       break;
+               case 1:
+                       /* all differential adc channels -> 0.000001344 */
+                       *val = 0;
+                       *val2 = 1344;
+                       ret = IIO_VAL_INT_PLUS_NANO;
+               }
                break;
-       case IIO_CHAN_INFO_CALIBBIAS_SEPARATE:
+       case IIO_CHAN_INFO_CALIBBIAS:
                /* only the acceleration axis - read from cache */
                *val = st->accel_calibbias;
                ret = IIO_VAL_INT;
                break;
-       case IIO_CHAN_INFO_CALIBSCALE_SEPARATE:
+       case IIO_CHAN_INFO_CALIBSCALE:
                *val = st->accel_calibscale->val;
                *val2 = st->accel_calibscale->val2;
                ret = IIO_VAL_INT_PLUS_MICRO;
@@ -296,7 +299,7 @@ static int iio_dummy_write_raw(struct iio_dev *indio_dev,
                st->dac_val = val;
                mutex_unlock(&st->lock);
                return 0;
-       case IIO_CHAN_INFO_CALIBBIAS_SEPARATE:
+       case IIO_CHAN_INFO_CALIBBIAS:
                mutex_lock(&st->lock);
                /* Compare against table - hard matching here */
                for (i = 0; i < ARRAY_SIZE(dummy_scales); i++)