aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLars-Peter Clausen <lars@metafoo.de>2011-10-26 12:41:35 -0400
committerGreg Kroah-Hartman <gregkh@suse.de>2011-11-26 19:35:04 -0500
commit924f8a21dd13223cc1493a916c6769cf73e0d45e (patch)
tree60ec15425748b95730cb779f618d0ab6d0d0fd78
parent3014cd97e56d312865d670653adec338a8e5fc0e (diff)
staging:iio: Do not use bitmasks for channel info addresses
Currently the iio framework uses bitmasks for the address field of channel info attributes. This is for historical reasons and no longer required since it will only ever query a single info attribute at once. This patch changes the code to use the non-shifted iio_chan_info_enum values for the info attribute address. Signed-off-by: Lars-Peter Clausen <lars@metafoo.de> Signed-off-by: Jonathan Cameron <jic23@cam.ac.uk> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-rw-r--r--drivers/staging/iio/accel/adis16201_core.c10
-rw-r--r--drivers/staging/iio/accel/adis16203_core.c8
-rw-r--r--drivers/staging/iio/accel/adis16204_core.c12
-rw-r--r--drivers/staging/iio/accel/adis16209_core.c10
-rw-r--r--drivers/staging/iio/accel/adis16220_core.c6
-rw-r--r--drivers/staging/iio/accel/adis16240_core.c14
-rw-r--r--drivers/staging/iio/accel/kxsd9.c4
-rw-r--r--drivers/staging/iio/accel/lis3l02dq_core.c10
-rw-r--r--drivers/staging/iio/accel/sca3000_core.c2
-rw-r--r--drivers/staging/iio/adc/ad7192.c6
-rw-r--r--drivers/staging/iio/adc/ad7280a.c2
-rw-r--r--drivers/staging/iio/adc/ad7291.c6
-rw-r--r--drivers/staging/iio/adc/ad7298_core.c4
-rw-r--r--drivers/staging/iio/adc/ad7476_core.c2
-rw-r--r--drivers/staging/iio/adc/ad7606_core.c2
-rw-r--r--drivers/staging/iio/adc/ad7780.c2
-rw-r--r--drivers/staging/iio/adc/ad7793.c6
-rw-r--r--drivers/staging/iio/adc/ad7887_core.c2
-rw-r--r--drivers/staging/iio/adc/ad799x_core.c2
-rw-r--r--drivers/staging/iio/adc/max1363_core.c2
-rw-r--r--drivers/staging/iio/cdc/ad7150.c2
-rw-r--r--drivers/staging/iio/cdc/ad7152.c14
-rw-r--r--drivers/staging/iio/cdc/ad7746.c14
-rw-r--r--drivers/staging/iio/dac/ad5064.c2
-rw-r--r--drivers/staging/iio/dac/ad5360.c14
-rw-r--r--drivers/staging/iio/dac/ad5686.c2
-rw-r--r--drivers/staging/iio/dac/ad5791.c4
-rw-r--r--drivers/staging/iio/gyro/adis16060_core.c4
-rw-r--r--drivers/staging/iio/gyro/adis16260_core.c14
-rw-r--r--drivers/staging/iio/gyro/adxrs450_core.c4
-rw-r--r--drivers/staging/iio/iio.h3
-rw-r--r--drivers/staging/iio/iio_simple_dummy.c12
-rw-r--r--drivers/staging/iio/imu/adis16400_core.c10
-rw-r--r--drivers/staging/iio/industrialio-core.c2
-rw-r--r--drivers/staging/iio/light/isl29018.c4
-rw-r--r--drivers/staging/iio/light/tsl2563.c2
-rw-r--r--drivers/staging/iio/magnetometer/ak8975.c2
-rw-r--r--drivers/staging/iio/magnetometer/hmc5843.c2
38 files changed, 112 insertions, 111 deletions
diff --git a/drivers/staging/iio/accel/adis16201_core.c b/drivers/staging/iio/accel/adis16201_core.c
index 12835193175..f1c06027a42 100644
--- a/drivers/staging/iio/accel/adis16201_core.c
+++ b/drivers/staging/iio/accel/adis16201_core.c
@@ -322,8 +322,8 @@ static int adis16201_read_raw(struct iio_dev *indio_dev,
322 *val = val16; 322 *val = val16;
323 mutex_unlock(&indio_dev->mlock); 323 mutex_unlock(&indio_dev->mlock);
324 return IIO_VAL_INT; 324 return IIO_VAL_INT;
325 case (1 << IIO_CHAN_INFO_SCALE_SEPARATE): 325 case IIO_CHAN_INFO_SCALE_SEPARATE:
326 case (1 << IIO_CHAN_INFO_SCALE_SHARED): 326 case IIO_CHAN_INFO_SCALE_SHARED:
327 switch (chan->type) { 327 switch (chan->type) {
328 case IIO_VOLTAGE: 328 case IIO_VOLTAGE:
329 *val = 0; 329 *val = 0;
@@ -348,10 +348,10 @@ static int adis16201_read_raw(struct iio_dev *indio_dev,
348 return -EINVAL; 348 return -EINVAL;
349 } 349 }
350 break; 350 break;
351 case (1 << IIO_CHAN_INFO_OFFSET_SEPARATE): 351 case IIO_CHAN_INFO_OFFSET_SEPARATE:
352 *val = 25; 352 *val = 25;
353 return IIO_VAL_INT; 353 return IIO_VAL_INT;
354 case (1 << IIO_CHAN_INFO_CALIBBIAS_SEPARATE): 354 case IIO_CHAN_INFO_CALIBBIAS_SEPARATE:
355 switch (chan->type) { 355 switch (chan->type) {
356 case IIO_ACCEL: 356 case IIO_ACCEL:
357 bits = 12; 357 bits = 12;
@@ -388,7 +388,7 @@ static int adis16201_write_raw(struct iio_dev *indio_dev,
388 s16 val16; 388 s16 val16;
389 u8 addr; 389 u8 addr;
390 switch (mask) { 390 switch (mask) {
391 case (1 << IIO_CHAN_INFO_CALIBBIAS_SEPARATE): 391 case IIO_CHAN_INFO_CALIBBIAS_SEPARATE:
392 switch (chan->type) { 392 switch (chan->type) {
393 case IIO_ACCEL: 393 case IIO_ACCEL:
394 bits = 12; 394 bits = 12;
diff --git a/drivers/staging/iio/accel/adis16203_core.c b/drivers/staging/iio/accel/adis16203_core.c
index 5483b59aea3..5bf944b9ae8 100644
--- a/drivers/staging/iio/accel/adis16203_core.c
+++ b/drivers/staging/iio/accel/adis16203_core.c
@@ -329,8 +329,8 @@ static int adis16203_read_raw(struct iio_dev *indio_dev,
329 *val = val16; 329 *val = val16;
330 mutex_unlock(&indio_dev->mlock); 330 mutex_unlock(&indio_dev->mlock);
331 return IIO_VAL_INT; 331 return IIO_VAL_INT;
332 case (1 << IIO_CHAN_INFO_SCALE_SEPARATE): 332 case IIO_CHAN_INFO_SCALE_SEPARATE:
333 case (1 << IIO_CHAN_INFO_SCALE_SHARED): 333 case IIO_CHAN_INFO_SCALE_SHARED:
334 switch (chan->type) { 334 switch (chan->type) {
335 case IIO_VOLTAGE: 335 case IIO_VOLTAGE:
336 *val = 0; 336 *val = 0;
@@ -350,10 +350,10 @@ static int adis16203_read_raw(struct iio_dev *indio_dev,
350 default: 350 default:
351 return -EINVAL; 351 return -EINVAL;
352 } 352 }
353 case (1 << IIO_CHAN_INFO_OFFSET_SEPARATE): 353 case IIO_CHAN_INFO_OFFSET_SEPARATE:
354 *val = 25; 354 *val = 25;
355 return IIO_VAL_INT; 355 return IIO_VAL_INT;
356 case (1 << IIO_CHAN_INFO_CALIBBIAS_SEPARATE): 356 case IIO_CHAN_INFO_CALIBBIAS_SEPARATE:
357 bits = 14; 357 bits = 14;
358 mutex_lock(&indio_dev->mlock); 358 mutex_lock(&indio_dev->mlock);
359 addr = adis16203_addresses[chan->address][1]; 359 addr = adis16203_addresses[chan->address][1];
diff --git a/drivers/staging/iio/accel/adis16204_core.c b/drivers/staging/iio/accel/adis16204_core.c
index 462f215f8c8..068f543c938 100644
--- a/drivers/staging/iio/accel/adis16204_core.c
+++ b/drivers/staging/iio/accel/adis16204_core.c
@@ -366,7 +366,7 @@ static int adis16204_read_raw(struct iio_dev *indio_dev,
366 *val = val16; 366 *val = val16;
367 mutex_unlock(&indio_dev->mlock); 367 mutex_unlock(&indio_dev->mlock);
368 return IIO_VAL_INT; 368 return IIO_VAL_INT;
369 case (1 << IIO_CHAN_INFO_SCALE_SEPARATE): 369 case IIO_CHAN_INFO_SCALE_SEPARATE:
370 switch (chan->type) { 370 switch (chan->type) {
371 case IIO_VOLTAGE: 371 case IIO_VOLTAGE:
372 *val = 0; 372 *val = 0;
@@ -390,12 +390,12 @@ static int adis16204_read_raw(struct iio_dev *indio_dev,
390 return -EINVAL; 390 return -EINVAL;
391 } 391 }
392 break; 392 break;
393 case (1 << IIO_CHAN_INFO_OFFSET_SEPARATE): 393 case IIO_CHAN_INFO_OFFSET_SEPARATE:
394 *val = 25; 394 *val = 25;
395 return IIO_VAL_INT; 395 return IIO_VAL_INT;
396 case (1 << IIO_CHAN_INFO_CALIBBIAS_SEPARATE): 396 case IIO_CHAN_INFO_CALIBBIAS_SEPARATE:
397 case (1 << IIO_CHAN_INFO_PEAK_SEPARATE): 397 case IIO_CHAN_INFO_PEAK_SEPARATE:
398 if (mask == (1 << IIO_CHAN_INFO_CALIBBIAS_SEPARATE)) { 398 if (mask == IIO_CHAN_INFO_CALIBBIAS_SEPARATE) {
399 bits = 12; 399 bits = 12;
400 addrind = 1; 400 addrind = 1;
401 } else { /* PEAK_SEPARATE */ 401 } else { /* PEAK_SEPARATE */
@@ -428,7 +428,7 @@ static int adis16204_write_raw(struct iio_dev *indio_dev,
428 s16 val16; 428 s16 val16;
429 u8 addr; 429 u8 addr;
430 switch (mask) { 430 switch (mask) {
431 case (1 << IIO_CHAN_INFO_CALIBBIAS_SEPARATE): 431 case IIO_CHAN_INFO_CALIBBIAS_SEPARATE:
432 switch (chan->type) { 432 switch (chan->type) {
433 case IIO_ACCEL: 433 case IIO_ACCEL:
434 bits = 12; 434 bits = 12;
diff --git a/drivers/staging/iio/accel/adis16209_core.c b/drivers/staging/iio/accel/adis16209_core.c
index 827499f70af..57540f1058a 100644
--- a/drivers/staging/iio/accel/adis16209_core.c
+++ b/drivers/staging/iio/accel/adis16209_core.c
@@ -304,7 +304,7 @@ static int adis16209_write_raw(struct iio_dev *indio_dev,
304 s16 val16; 304 s16 val16;
305 u8 addr; 305 u8 addr;
306 switch (mask) { 306 switch (mask) {
307 case (1 << IIO_CHAN_INFO_CALIBBIAS_SEPARATE): 307 case IIO_CHAN_INFO_CALIBBIAS_SEPARATE:
308 switch (chan->type) { 308 switch (chan->type) {
309 case IIO_ACCEL: 309 case IIO_ACCEL:
310 case IIO_INCLI: 310 case IIO_INCLI:
@@ -355,8 +355,8 @@ static int adis16209_read_raw(struct iio_dev *indio_dev,
355 *val = val16; 355 *val = val16;
356 mutex_unlock(&indio_dev->mlock); 356 mutex_unlock(&indio_dev->mlock);
357 return IIO_VAL_INT; 357 return IIO_VAL_INT;
358 case (1 << IIO_CHAN_INFO_SCALE_SEPARATE): 358 case IIO_CHAN_INFO_SCALE_SEPARATE:
359 case (1 << IIO_CHAN_INFO_SCALE_SHARED): 359 case IIO_CHAN_INFO_SCALE_SHARED:
360 switch (chan->type) { 360 switch (chan->type) {
361 case IIO_VOLTAGE: 361 case IIO_VOLTAGE:
362 *val = 0; 362 *val = 0;
@@ -381,10 +381,10 @@ static int adis16209_read_raw(struct iio_dev *indio_dev,
381 return -EINVAL; 381 return -EINVAL;
382 } 382 }
383 break; 383 break;
384 case (1 << IIO_CHAN_INFO_OFFSET_SEPARATE): 384 case IIO_CHAN_INFO_OFFSET_SEPARATE:
385 *val = 25; 385 *val = 25;
386 return IIO_VAL_INT; 386 return IIO_VAL_INT;
387 case (1 << IIO_CHAN_INFO_CALIBBIAS_SEPARATE): 387 case IIO_CHAN_INFO_CALIBBIAS_SEPARATE:
388 switch (chan->type) { 388 switch (chan->type) {
389 case IIO_ACCEL: 389 case IIO_ACCEL:
390 bits = 14; 390 bits = 14;
diff --git a/drivers/staging/iio/accel/adis16220_core.c b/drivers/staging/iio/accel/adis16220_core.c
index 6d4503de192..284f81078d4 100644
--- a/drivers/staging/iio/accel/adis16220_core.c
+++ b/drivers/staging/iio/accel/adis16220_core.c
@@ -510,17 +510,17 @@ static int adis16220_read_raw(struct iio_dev *indio_dev,
510 case 0: 510 case 0:
511 addrind = 0; 511 addrind = 0;
512 break; 512 break;
513 case (1 << IIO_CHAN_INFO_OFFSET_SEPARATE): 513 case IIO_CHAN_INFO_OFFSET_SEPARATE:
514 if (chan->type == IIO_TEMP) { 514 if (chan->type == IIO_TEMP) {
515 *val = 25; 515 *val = 25;
516 return IIO_VAL_INT; 516 return IIO_VAL_INT;
517 } 517 }
518 addrind = 1; 518 addrind = 1;
519 break; 519 break;
520 case (1 << IIO_CHAN_INFO_PEAK_SEPARATE): 520 case IIO_CHAN_INFO_PEAK_SEPARATE:
521 addrind = 2; 521 addrind = 2;
522 break; 522 break;
523 case (1 << IIO_CHAN_INFO_SCALE_SEPARATE): 523 case IIO_CHAN_INFO_SCALE_SEPARATE:
524 *val = 0; 524 *val = 0;
525 switch (chan->type) { 525 switch (chan->type) {
526 case IIO_TEMP: 526 case IIO_TEMP:
diff --git a/drivers/staging/iio/accel/adis16240_core.c b/drivers/staging/iio/accel/adis16240_core.c
index 8123fe3bd22..482a762ef1b 100644
--- a/drivers/staging/iio/accel/adis16240_core.c
+++ b/drivers/staging/iio/accel/adis16240_core.c
@@ -389,8 +389,8 @@ static int adis16240_read_raw(struct iio_dev *indio_dev,
389 *val = val16; 389 *val = val16;
390 mutex_unlock(&indio_dev->mlock); 390 mutex_unlock(&indio_dev->mlock);
391 return IIO_VAL_INT; 391 return IIO_VAL_INT;
392 case (1 << IIO_CHAN_INFO_SCALE_SEPARATE): 392 case IIO_CHAN_INFO_SCALE_SEPARATE:
393 case (1 << IIO_CHAN_INFO_SCALE_SHARED): 393 case IIO_CHAN_INFO_SCALE_SHARED:
394 switch (chan->type) { 394 switch (chan->type) {
395 case IIO_VOLTAGE: 395 case IIO_VOLTAGE:
396 *val = 0; 396 *val = 0;
@@ -411,14 +411,14 @@ static int adis16240_read_raw(struct iio_dev *indio_dev,
411 return -EINVAL; 411 return -EINVAL;
412 } 412 }
413 break; 413 break;
414 case (1 << IIO_CHAN_INFO_PEAK_SCALE_SHARED): 414 case IIO_CHAN_INFO_PEAK_SCALE_SHARED:
415 *val = 6; 415 *val = 6;
416 *val2 = 629295; 416 *val2 = 629295;
417 return IIO_VAL_INT_PLUS_MICRO; 417 return IIO_VAL_INT_PLUS_MICRO;
418 case (1 << IIO_CHAN_INFO_OFFSET_SEPARATE): 418 case IIO_CHAN_INFO_OFFSET_SEPARATE:
419 *val = 25; 419 *val = 25;
420 return IIO_VAL_INT; 420 return IIO_VAL_INT;
421 case (1 << IIO_CHAN_INFO_CALIBBIAS_SEPARATE): 421 case IIO_CHAN_INFO_CALIBBIAS_SEPARATE:
422 bits = 10; 422 bits = 10;
423 mutex_lock(&indio_dev->mlock); 423 mutex_lock(&indio_dev->mlock);
424 addr = adis16240_addresses[chan->address][1]; 424 addr = adis16240_addresses[chan->address][1];
@@ -432,7 +432,7 @@ static int adis16240_read_raw(struct iio_dev *indio_dev,
432 *val = val16; 432 *val = val16;
433 mutex_unlock(&indio_dev->mlock); 433 mutex_unlock(&indio_dev->mlock);
434 return IIO_VAL_INT; 434 return IIO_VAL_INT;
435 case (1 << IIO_CHAN_INFO_PEAK_SEPARATE): 435 case IIO_CHAN_INFO_PEAK_SEPARATE:
436 bits = 10; 436 bits = 10;
437 mutex_lock(&indio_dev->mlock); 437 mutex_lock(&indio_dev->mlock);
438 addr = adis16240_addresses[chan->address][2]; 438 addr = adis16240_addresses[chan->address][2];
@@ -460,7 +460,7 @@ static int adis16240_write_raw(struct iio_dev *indio_dev,
460 s16 val16; 460 s16 val16;
461 u8 addr; 461 u8 addr;
462 switch (mask) { 462 switch (mask) {
463 case (1 << IIO_CHAN_INFO_CALIBBIAS_SEPARATE): 463 case IIO_CHAN_INFO_CALIBBIAS_SEPARATE:
464 val16 = val & ((1 << bits) - 1); 464 val16 = val & ((1 << bits) - 1);
465 addr = adis16240_addresses[chan->address][1]; 465 addr = adis16240_addresses[chan->address][1];
466 return adis16240_spi_write_reg_16(indio_dev, addr, val16); 466 return adis16240_spi_write_reg_16(indio_dev, addr, val16);
diff --git a/drivers/staging/iio/accel/kxsd9.c b/drivers/staging/iio/accel/kxsd9.c
index 5238503f680..0ea0b5ccd59 100644
--- a/drivers/staging/iio/accel/kxsd9.c
+++ b/drivers/staging/iio/accel/kxsd9.c
@@ -140,7 +140,7 @@ static int kxsd9_write_raw(struct iio_dev *indio_dev,
140{ 140{
141 int ret = -EINVAL; 141 int ret = -EINVAL;
142 142
143 if (mask == (1 << IIO_CHAN_INFO_SCALE_SHARED)) { 143 if (mask == IIO_CHAN_INFO_SCALE_SHARED) {
144 /* Check no integer component */ 144 /* Check no integer component */
145 if (val) 145 if (val)
146 return -EINVAL; 146 return -EINVAL;
@@ -164,7 +164,7 @@ static int kxsd9_read_raw(struct iio_dev *indio_dev,
164 goto error_ret; 164 goto error_ret;
165 *val = ret; 165 *val = ret;
166 break; 166 break;
167 case (1 << IIO_CHAN_INFO_SCALE_SHARED): 167 case IIO_CHAN_INFO_SCALE_SHARED:
168 ret = spi_w8r8(st->us, KXSD9_READ(KXSD9_REG_CTRL_C)); 168 ret = spi_w8r8(st->us, KXSD9_READ(KXSD9_REG_CTRL_C));
169 if (ret) 169 if (ret)
170 goto error_ret; 170 goto error_ret;
diff --git a/drivers/staging/iio/accel/lis3l02dq_core.c b/drivers/staging/iio/accel/lis3l02dq_core.c
index 358a9f6cbb0..d7706ebe809 100644
--- a/drivers/staging/iio/accel/lis3l02dq_core.c
+++ b/drivers/staging/iio/accel/lis3l02dq_core.c
@@ -227,14 +227,14 @@ static int lis3l02dq_write_raw(struct iio_dev *indio_dev,
227 u8 uval; 227 u8 uval;
228 s8 sval; 228 s8 sval;
229 switch (mask) { 229 switch (mask) {
230 case (1 << IIO_CHAN_INFO_CALIBBIAS_SEPARATE): 230 case IIO_CHAN_INFO_CALIBBIAS_SEPARATE:
231 if (val > 255 || val < -256) 231 if (val > 255 || val < -256)
232 return -EINVAL; 232 return -EINVAL;
233 sval = val; 233 sval = val;
234 reg = lis3l02dq_axis_map[LIS3L02DQ_BIAS][chan->address]; 234 reg = lis3l02dq_axis_map[LIS3L02DQ_BIAS][chan->address];
235 ret = lis3l02dq_spi_write_reg_8(indio_dev, reg, sval); 235 ret = lis3l02dq_spi_write_reg_8(indio_dev, reg, sval);
236 break; 236 break;
237 case (1 << IIO_CHAN_INFO_CALIBSCALE_SEPARATE): 237 case IIO_CHAN_INFO_CALIBSCALE_SEPARATE:
238 if (val & ~0xFF) 238 if (val & ~0xFF)
239 return -EINVAL; 239 return -EINVAL;
240 uval = val; 240 uval = val;
@@ -272,11 +272,11 @@ static int lis3l02dq_read_raw(struct iio_dev *indio_dev,
272 } 272 }
273 mutex_unlock(&indio_dev->mlock); 273 mutex_unlock(&indio_dev->mlock);
274 return IIO_VAL_INT; 274 return IIO_VAL_INT;
275 case (1 << IIO_CHAN_INFO_SCALE_SHARED): 275 case IIO_CHAN_INFO_SCALE_SHARED:
276 *val = 0; 276 *val = 0;
277 *val2 = 9580; 277 *val2 = 9580;
278 return IIO_VAL_INT_PLUS_MICRO; 278 return IIO_VAL_INT_PLUS_MICRO;
279 case (1 << IIO_CHAN_INFO_CALIBSCALE_SEPARATE): 279 case IIO_CHAN_INFO_CALIBSCALE_SEPARATE:
280 reg = lis3l02dq_axis_map[LIS3L02DQ_GAIN][chan->address]; 280 reg = lis3l02dq_axis_map[LIS3L02DQ_GAIN][chan->address];
281 ret = lis3l02dq_spi_read_reg_8(indio_dev, reg, &utemp); 281 ret = lis3l02dq_spi_read_reg_8(indio_dev, reg, &utemp);
282 if (ret) 282 if (ret)
@@ -285,7 +285,7 @@ static int lis3l02dq_read_raw(struct iio_dev *indio_dev,
285 *val = utemp; 285 *val = utemp;
286 return IIO_VAL_INT; 286 return IIO_VAL_INT;
287 287
288 case (1 << IIO_CHAN_INFO_CALIBBIAS_SEPARATE): 288 case IIO_CHAN_INFO_CALIBBIAS_SEPARATE:
289 reg = lis3l02dq_axis_map[LIS3L02DQ_BIAS][chan->address]; 289 reg = lis3l02dq_axis_map[LIS3L02DQ_BIAS][chan->address];
290 ret = lis3l02dq_spi_read_reg_8(indio_dev, reg, (u8 *)&stemp); 290 ret = lis3l02dq_spi_read_reg_8(indio_dev, reg, (u8 *)&stemp);
291 /* to match with what previous code does */ 291 /* to match with what previous code does */
diff --git a/drivers/staging/iio/accel/sca3000_core.c b/drivers/staging/iio/accel/sca3000_core.c
index 8a46983275b..1586963f565 100644
--- a/drivers/staging/iio/accel/sca3000_core.c
+++ b/drivers/staging/iio/accel/sca3000_core.c
@@ -475,7 +475,7 @@ static int sca3000_read_raw(struct iio_dev *indio_dev,
475 (sizeof(*val)*8 - 13); 475 (sizeof(*val)*8 - 13);
476 mutex_unlock(&st->lock); 476 mutex_unlock(&st->lock);
477 return IIO_VAL_INT; 477 return IIO_VAL_INT;
478 case (1 << IIO_CHAN_INFO_SCALE_SHARED): 478 case IIO_CHAN_INFO_SCALE_SHARED:
479 *val = 0; 479 *val = 0;
480 if (chan->type == IIO_ACCEL) 480 if (chan->type == IIO_ACCEL)
481 *val2 = st->info->scale; 481 *val2 = st->info->scale;
diff --git a/drivers/staging/iio/adc/ad7192.c b/drivers/staging/iio/adc/ad7192.c
index 39ba05db2c0..9416cedcddc 100644
--- a/drivers/staging/iio/adc/ad7192.c
+++ b/drivers/staging/iio/adc/ad7192.c
@@ -901,7 +901,7 @@ static int ad7192_read_raw(struct iio_dev *indio_dev,
901 } 901 }
902 return IIO_VAL_INT; 902 return IIO_VAL_INT;
903 903
904 case (1 << IIO_CHAN_INFO_SCALE_SHARED): 904 case IIO_CHAN_INFO_SCALE_SHARED:
905 mutex_lock(&indio_dev->mlock); 905 mutex_lock(&indio_dev->mlock);
906 *val = st->scale_avail[AD7192_CONF_GAIN(st->conf)][0]; 906 *val = st->scale_avail[AD7192_CONF_GAIN(st->conf)][0];
907 *val2 = st->scale_avail[AD7192_CONF_GAIN(st->conf)][1]; 907 *val2 = st->scale_avail[AD7192_CONF_GAIN(st->conf)][1];
@@ -909,7 +909,7 @@ static int ad7192_read_raw(struct iio_dev *indio_dev,
909 909
910 return IIO_VAL_INT_PLUS_NANO; 910 return IIO_VAL_INT_PLUS_NANO;
911 911
912 case (1 << IIO_CHAN_INFO_SCALE_SEPARATE): 912 case IIO_CHAN_INFO_SCALE_SEPARATE:
913 *val = 1000; 913 *val = 1000;
914 914
915 return IIO_VAL_INT; 915 return IIO_VAL_INT;
@@ -935,7 +935,7 @@ static int ad7192_write_raw(struct iio_dev *indio_dev,
935 } 935 }
936 936
937 switch (mask) { 937 switch (mask) {
938 case (1 << IIO_CHAN_INFO_SCALE_SHARED): 938 case IIO_CHAN_INFO_SCALE_SHARED:
939 ret = -EINVAL; 939 ret = -EINVAL;
940 for (i = 0; i < ARRAY_SIZE(st->scale_avail); i++) 940 for (i = 0; i < ARRAY_SIZE(st->scale_avail); i++)
941 if (val2 == st->scale_avail[i][1]) { 941 if (val2 == st->scale_avail[i][1]) {
diff --git a/drivers/staging/iio/adc/ad7280a.c b/drivers/staging/iio/adc/ad7280a.c
index 8f4fac1ce7a..7fb60c5a80e 100644
--- a/drivers/staging/iio/adc/ad7280a.c
+++ b/drivers/staging/iio/adc/ad7280a.c
@@ -803,7 +803,7 @@ static int ad7280_read_raw(struct iio_dev *indio_dev,
803 *val = ret; 803 *val = ret;
804 804
805 return IIO_VAL_INT; 805 return IIO_VAL_INT;
806 case (1 << IIO_CHAN_INFO_SCALE_SHARED): 806 case IIO_CHAN_INFO_SCALE_SHARED:
807 if ((chan->address & 0xFF) <= AD7280A_CELL_VOLTAGE_6) 807 if ((chan->address & 0xFF) <= AD7280A_CELL_VOLTAGE_6)
808 scale_uv = (4000 * 1000) >> AD7280A_BITS; 808 scale_uv = (4000 * 1000) >> AD7280A_BITS;
809 else 809 else
diff --git a/drivers/staging/iio/adc/ad7291.c b/drivers/staging/iio/adc/ad7291.c
index e5f352bc436..bedd91ad3fd 100644
--- a/drivers/staging/iio/adc/ad7291.c
+++ b/drivers/staging/iio/adc/ad7291.c
@@ -501,7 +501,7 @@ static int ad7291_read_raw(struct iio_dev *indio_dev,
501 default: 501 default:
502 return -EINVAL; 502 return -EINVAL;
503 } 503 }
504 case (1 << IIO_CHAN_INFO_AVERAGE_RAW_SEPARATE): 504 case IIO_CHAN_INFO_AVERAGE_RAW_SEPARATE:
505 ret = i2c_smbus_read_word_data(chip->client, 505 ret = i2c_smbus_read_word_data(chip->client,
506 AD7291_T_AVERAGE); 506 AD7291_T_AVERAGE);
507 if (ret < 0) 507 if (ret < 0)
@@ -510,12 +510,12 @@ static int ad7291_read_raw(struct iio_dev *indio_dev,
510 AD7291_VALUE_MASK) << 4) >> 4; 510 AD7291_VALUE_MASK) << 4) >> 4;
511 *val = signval; 511 *val = signval;
512 return IIO_VAL_INT; 512 return IIO_VAL_INT;
513 case (1 << IIO_CHAN_INFO_SCALE_SHARED): 513 case IIO_CHAN_INFO_SCALE_SHARED:
514 scale_uv = (chip->int_vref_mv * 1000) >> AD7291_BITS; 514 scale_uv = (chip->int_vref_mv * 1000) >> AD7291_BITS;
515 *val = scale_uv / 1000; 515 *val = scale_uv / 1000;
516 *val2 = (scale_uv % 1000) * 1000; 516 *val2 = (scale_uv % 1000) * 1000;
517 return IIO_VAL_INT_PLUS_MICRO; 517 return IIO_VAL_INT_PLUS_MICRO;
518 case (1 << IIO_CHAN_INFO_SCALE_SEPARATE): 518 case IIO_CHAN_INFO_SCALE_SEPARATE:
519 /* 519 /*
520 * One LSB of the ADC corresponds to 0.25 deg C. 520 * One LSB of the ADC corresponds to 0.25 deg C.
521 * The temperature reading is in 12-bit twos complement format 521 * The temperature reading is in 12-bit twos complement format
diff --git a/drivers/staging/iio/adc/ad7298_core.c b/drivers/staging/iio/adc/ad7298_core.c
index 445b07116d7..2e3b0d979fc 100644
--- a/drivers/staging/iio/adc/ad7298_core.c
+++ b/drivers/staging/iio/adc/ad7298_core.c
@@ -143,12 +143,12 @@ static int ad7298_read_raw(struct iio_dev *indio_dev,
143 *val = ret & RES_MASK(AD7298_BITS); 143 *val = ret & RES_MASK(AD7298_BITS);
144 144
145 return IIO_VAL_INT; 145 return IIO_VAL_INT;
146 case (1 << IIO_CHAN_INFO_SCALE_SHARED): 146 case IIO_CHAN_INFO_SCALE_SHARED:
147 scale_uv = (st->int_vref_mv * 1000) >> AD7298_BITS; 147 scale_uv = (st->int_vref_mv * 1000) >> AD7298_BITS;
148 *val = scale_uv / 1000; 148 *val = scale_uv / 1000;
149 *val2 = (scale_uv % 1000) * 1000; 149 *val2 = (scale_uv % 1000) * 1000;
150 return IIO_VAL_INT_PLUS_MICRO; 150 return IIO_VAL_INT_PLUS_MICRO;
151 case (1 << IIO_CHAN_INFO_SCALE_SEPARATE): 151 case IIO_CHAN_INFO_SCALE_SEPARATE:
152 *val = 1; 152 *val = 1;
153 *val2 = 0; 153 *val2 = 0;
154 return IIO_VAL_INT_PLUS_MICRO; 154 return IIO_VAL_INT_PLUS_MICRO;
diff --git a/drivers/staging/iio/adc/ad7476_core.c b/drivers/staging/iio/adc/ad7476_core.c
index 13473133bbe..163a2547a6f 100644
--- a/drivers/staging/iio/adc/ad7476_core.c
+++ b/drivers/staging/iio/adc/ad7476_core.c
@@ -56,7 +56,7 @@ static int ad7476_read_raw(struct iio_dev *indio_dev,
56 *val = (ret >> st->chip_info->channel[0].scan_type.shift) & 56 *val = (ret >> st->chip_info->channel[0].scan_type.shift) &
57 RES_MASK(st->chip_info->channel[0].scan_type.realbits); 57 RES_MASK(st->chip_info->channel[0].scan_type.realbits);
58 return IIO_VAL_INT; 58 return IIO_VAL_INT;
59 case (1 << IIO_CHAN_INFO_SCALE_SHARED): 59 case IIO_CHAN_INFO_SCALE_SHARED:
60 scale_uv = (st->int_vref_mv * 1000) 60 scale_uv = (st->int_vref_mv * 1000)
61 >> st->chip_info->channel[0].scan_type.realbits; 61 >> st->chip_info->channel[0].scan_type.realbits;
62 *val = scale_uv/1000; 62 *val = scale_uv/1000;
diff --git a/drivers/staging/iio/adc/ad7606_core.c b/drivers/staging/iio/adc/ad7606_core.c
index 53174831663..d58a0e3eee9 100644
--- a/drivers/staging/iio/adc/ad7606_core.c
+++ b/drivers/staging/iio/adc/ad7606_core.c
@@ -100,7 +100,7 @@ static int ad7606_read_raw(struct iio_dev *indio_dev,
100 return ret; 100 return ret;
101 *val = (short) ret; 101 *val = (short) ret;
102 return IIO_VAL_INT; 102 return IIO_VAL_INT;
103 case (1 << IIO_CHAN_INFO_SCALE_SHARED): 103 case IIO_CHAN_INFO_SCALE_SHARED:
104 scale_uv = (st->range * 1000 * 2) 104 scale_uv = (st->range * 1000 * 2)
105 >> st->chip_info->channels[0].scan_type.realbits; 105 >> st->chip_info->channels[0].scan_type.realbits;
106 *val = scale_uv / 1000; 106 *val = scale_uv / 1000;
diff --git a/drivers/staging/iio/adc/ad7780.c b/drivers/staging/iio/adc/ad7780.c
index 7a579a1fd69..b06f9ad48b9 100644
--- a/drivers/staging/iio/adc/ad7780.c
+++ b/drivers/staging/iio/adc/ad7780.c
@@ -114,7 +114,7 @@ static int ad7780_read_raw(struct iio_dev *indio_dev,
114 *val *= 128; 114 *val *= 128;
115 115
116 return IIO_VAL_INT; 116 return IIO_VAL_INT;
117 case (1 << IIO_CHAN_INFO_SCALE_SHARED): 117 case IIO_CHAN_INFO_SCALE_SHARED:
118 scale_uv = (st->int_vref_mv * 100000) 118 scale_uv = (st->int_vref_mv * 100000)
119 >> (channel.scan_type.realbits - 1); 119 >> (channel.scan_type.realbits - 1);
120 *val = scale_uv / 100000; 120 *val = scale_uv / 100000;
diff --git a/drivers/staging/iio/adc/ad7793.c b/drivers/staging/iio/adc/ad7793.c
index 17fde6669ef..c3fdfedfc99 100644
--- a/drivers/staging/iio/adc/ad7793.c
+++ b/drivers/staging/iio/adc/ad7793.c
@@ -667,13 +667,13 @@ static int ad7793_read_raw(struct iio_dev *indio_dev,
667 667
668 return IIO_VAL_INT; 668 return IIO_VAL_INT;
669 669
670 case (1 << IIO_CHAN_INFO_SCALE_SHARED): 670 case IIO_CHAN_INFO_SCALE_SHARED:
671 *val = st->scale_avail[(st->conf >> 8) & 0x7][0]; 671 *val = st->scale_avail[(st->conf >> 8) & 0x7][0];
672 *val2 = st->scale_avail[(st->conf >> 8) & 0x7][1]; 672 *val2 = st->scale_avail[(st->conf >> 8) & 0x7][1];
673 673
674 return IIO_VAL_INT_PLUS_NANO; 674 return IIO_VAL_INT_PLUS_NANO;
675 675
676 case (1 << IIO_CHAN_INFO_SCALE_SEPARATE): 676 case IIO_CHAN_INFO_SCALE_SEPARATE:
677 switch (chan->type) { 677 switch (chan->type) {
678 case IIO_VOLTAGE: 678 case IIO_VOLTAGE:
679 /* 1170mV / 2^23 * 6 */ 679 /* 1170mV / 2^23 * 6 */
@@ -716,7 +716,7 @@ static int ad7793_write_raw(struct iio_dev *indio_dev,
716 } 716 }
717 717
718 switch (mask) { 718 switch (mask) {
719 case (1 << IIO_CHAN_INFO_SCALE_SHARED): 719 case IIO_CHAN_INFO_SCALE_SHARED:
720 ret = -EINVAL; 720 ret = -EINVAL;
721 for (i = 0; i < ARRAY_SIZE(st->scale_avail); i++) 721 for (i = 0; i < ARRAY_SIZE(st->scale_avail); i++)
722 if (val2 == st->scale_avail[i][1]) { 722 if (val2 == st->scale_avail[i][1]) {
diff --git a/drivers/staging/iio/adc/ad7887_core.c b/drivers/staging/iio/adc/ad7887_core.c
index a7baa9bb0ea..245c9438359 100644
--- a/drivers/staging/iio/adc/ad7887_core.c
+++ b/drivers/staging/iio/adc/ad7887_core.c
@@ -55,7 +55,7 @@ static int ad7887_read_raw(struct iio_dev *indio_dev,
55 *val = (ret >> st->chip_info->channel[0].scan_type.shift) & 55 *val = (ret >> st->chip_info->channel[0].scan_type.shift) &
56 RES_MASK(st->chip_info->channel[0].scan_type.realbits); 56 RES_MASK(st->chip_info->channel[0].scan_type.realbits);
57 return IIO_VAL_INT; 57 return IIO_VAL_INT;
58 case (1 << IIO_CHAN_INFO_SCALE_SHARED): 58 case IIO_CHAN_INFO_SCALE_SHARED:
59 scale_uv = (st->int_vref_mv * 1000) 59 scale_uv = (st->int_vref_mv * 1000)
60 >> st->chip_info->channel[0].scan_type.realbits; 60 >> st->chip_info->channel[0].scan_type.realbits;
61 *val = scale_uv/1000; 61 *val = scale_uv/1000;
diff --git a/drivers/staging/iio/adc/ad799x_core.c b/drivers/staging/iio/adc/ad799x_core.c
index 64ac3166673..60a48a284dd 100644
--- a/drivers/staging/iio/adc/ad799x_core.c
+++ b/drivers/staging/iio/adc/ad799x_core.c
@@ -162,7 +162,7 @@ static int ad799x_read_raw(struct iio_dev *indio_dev,
162 *val = (ret >> chan->scan_type.shift) & 162 *val = (ret >> chan->scan_type.shift) &
163 RES_MASK(chan->scan_type.realbits); 163 RES_MASK(chan->scan_type.realbits);
164 return IIO_VAL_INT; 164 return IIO_VAL_INT;
165 case (1 << IIO_CHAN_INFO_SCALE_SHARED): 165 case IIO_CHAN_INFO_SCALE_SHARED:
166 scale_uv = (st->int_vref_mv * 1000) >> chan->scan_type.realbits; 166 scale_uv = (st->int_vref_mv * 1000) >> chan->scan_type.realbits;
167 *val = scale_uv / 1000; 167 *val = scale_uv / 1000;
168 *val2 = (scale_uv % 1000) * 1000; 168 *val2 = (scale_uv % 1000) * 1000;
diff --git a/drivers/staging/iio/adc/max1363_core.c b/drivers/staging/iio/adc/max1363_core.c
index 73b209f23c7..6b05e573afc 100644
--- a/drivers/staging/iio/adc/max1363_core.c
+++ b/drivers/staging/iio/adc/max1363_core.c
@@ -261,7 +261,7 @@ static int max1363_read_raw(struct iio_dev *indio_dev,
261 if (ret < 0) 261 if (ret < 0)
262 return ret; 262 return ret;
263 return IIO_VAL_INT; 263 return IIO_VAL_INT;
264 case (1 << IIO_CHAN_INFO_SCALE_SHARED): 264 case IIO_CHAN_INFO_SCALE_SHARED:
265 if ((1 << (st->chip_info->bits + 1)) > 265 if ((1 << (st->chip_info->bits + 1)) >
266 st->chip_info->int_vref_mv) { 266 st->chip_info->int_vref_mv) {
267 *val = 0; 267 *val = 0;
diff --git a/drivers/staging/iio/cdc/ad7150.c b/drivers/staging/iio/cdc/ad7150.c
index abe65096c11..10737fae25e 100644
--- a/drivers/staging/iio/cdc/ad7150.c
+++ b/drivers/staging/iio/cdc/ad7150.c
@@ -111,7 +111,7 @@ static int ad7150_read_raw(struct iio_dev *indio_dev,
111 return ret; 111 return ret;
112 *val = swab16(ret); 112 *val = swab16(ret);
113 return IIO_VAL_INT; 113 return IIO_VAL_INT;
114 case (1 << IIO_CHAN_INFO_AVERAGE_RAW_SEPARATE): 114 case IIO_CHAN_INFO_AVERAGE_RAW_SEPARATE:
115 ret = i2c_smbus_read_word_data(chip->client, 115 ret = i2c_smbus_read_word_data(chip->client,
116 ad7150_addresses[chan->channel][1]); 116 ad7150_addresses[chan->channel][1]);
117 if (ret < 0) 117 if (ret < 0)
diff --git a/drivers/staging/iio/cdc/ad7152.c b/drivers/staging/iio/cdc/ad7152.c
index 662584d72a7..e5ca683a7af 100644
--- a/drivers/staging/iio/cdc/ad7152.c
+++ b/drivers/staging/iio/cdc/ad7152.c
@@ -259,7 +259,7 @@ static int ad7152_write_raw(struct iio_dev *indio_dev,
259 mutex_lock(&indio_dev->mlock); 259 mutex_lock(&indio_dev->mlock);
260 260
261 switch (mask) { 261 switch (mask) {
262 case (1 << IIO_CHAN_INFO_CALIBSCALE_SEPARATE): 262 case IIO_CHAN_INFO_CALIBSCALE_SEPARATE:
263 if (val != 1) { 263 if (val != 1) {
264 ret = -EINVAL; 264 ret = -EINVAL;
265 goto out; 265 goto out;
@@ -276,7 +276,7 @@ static int ad7152_write_raw(struct iio_dev *indio_dev,
276 ret = 0; 276 ret = 0;
277 break; 277 break;
278 278
279 case (1 << IIO_CHAN_INFO_CALIBBIAS_SEPARATE): 279 case IIO_CHAN_INFO_CALIBBIAS_SEPARATE:
280 if ((val < 0) | (val > 0xFFFF)) { 280 if ((val < 0) | (val > 0xFFFF)) {
281 ret = -EINVAL; 281 ret = -EINVAL;
282 goto out; 282 goto out;
@@ -289,7 +289,7 @@ static int ad7152_write_raw(struct iio_dev *indio_dev,
289 289
290 ret = 0; 290 ret = 0;
291 break; 291 break;
292 case (1 << IIO_CHAN_INFO_SCALE_SEPARATE): 292 case IIO_CHAN_INFO_SCALE_SEPARATE:
293 if (val != 0) { 293 if (val != 0) {
294 ret = -EINVAL; 294 ret = -EINVAL;
295 goto out; 295 goto out;
@@ -372,7 +372,7 @@ static int ad7152_read_raw(struct iio_dev *indio_dev,
372 372
373 ret = IIO_VAL_INT; 373 ret = IIO_VAL_INT;
374 break; 374 break;
375 case (1 << IIO_CHAN_INFO_CALIBSCALE_SEPARATE): 375 case IIO_CHAN_INFO_CALIBSCALE_SEPARATE:
376 376
377 ret = i2c_smbus_read_word_data(chip->client, 377 ret = i2c_smbus_read_word_data(chip->client,
378 ad7152_addresses[chan->channel][AD7152_GAIN]); 378 ad7152_addresses[chan->channel][AD7152_GAIN]);
@@ -384,7 +384,7 @@ static int ad7152_read_raw(struct iio_dev *indio_dev,
384 384
385 ret = IIO_VAL_INT_PLUS_MICRO; 385 ret = IIO_VAL_INT_PLUS_MICRO;
386 break; 386 break;
387 case (1 << IIO_CHAN_INFO_CALIBBIAS_SEPARATE): 387 case IIO_CHAN_INFO_CALIBBIAS_SEPARATE:
388 ret = i2c_smbus_read_word_data(chip->client, 388 ret = i2c_smbus_read_word_data(chip->client,
389 ad7152_addresses[chan->channel][AD7152_OFFS]); 389 ad7152_addresses[chan->channel][AD7152_OFFS]);
390 if (ret < 0) 390 if (ret < 0)
@@ -393,7 +393,7 @@ static int ad7152_read_raw(struct iio_dev *indio_dev,
393 393
394 ret = IIO_VAL_INT; 394 ret = IIO_VAL_INT;
395 break; 395 break;
396 case (1 << IIO_CHAN_INFO_SCALE_SEPARATE): 396 case IIO_CHAN_INFO_SCALE_SEPARATE:
397 ret = i2c_smbus_read_byte_data(chip->client, 397 ret = i2c_smbus_read_byte_data(chip->client,
398 ad7152_addresses[chan->channel][AD7152_SETUP]); 398 ad7152_addresses[chan->channel][AD7152_SETUP]);
399 if (ret < 0) 399 if (ret < 0)
@@ -416,7 +416,7 @@ static int ad7152_write_raw_get_fmt(struct iio_dev *indio_dev,
416 long mask) 416 long mask)
417{ 417{
418 switch (mask) { 418 switch (mask) {
419 case (1 << IIO_CHAN_INFO_SCALE_SEPARATE): 419 case IIO_CHAN_INFO_SCALE_SEPARATE:
420 return IIO_VAL_INT_PLUS_NANO; 420 return IIO_VAL_INT_PLUS_NANO;
421 default: 421 default:
422 return IIO_VAL_INT_PLUS_MICRO; 422 return IIO_VAL_INT_PLUS_MICRO;
diff --git a/drivers/staging/iio/cdc/ad7746.c b/drivers/staging/iio/cdc/ad7746.c
index 2867943309c..5deaf857d23 100644
--- a/drivers/staging/iio/cdc/ad7746.c
+++ b/drivers/staging/iio/cdc/ad7746.c
@@ -477,7 +477,7 @@ static int ad7746_write_raw(struct iio_dev *indio_dev,
477 mutex_lock(&indio_dev->mlock); 477 mutex_lock(&indio_dev->mlock);
478 478
479 switch (mask) { 479 switch (mask) {
480 case (1 << IIO_CHAN_INFO_CALIBSCALE_SEPARATE): 480 case IIO_CHAN_INFO_CALIBSCALE_SEPARATE:
481 if (val != 1) { 481 if (val != 1) {
482 ret = -EINVAL; 482 ret = -EINVAL;
483 goto out; 483 goto out;
@@ -503,7 +503,7 @@ static int ad7746_write_raw(struct iio_dev *indio_dev,
503 503
504 ret = 0; 504 ret = 0;
505 break; 505 break;
506 case (1 << IIO_CHAN_INFO_CALIBBIAS_SHARED): 506 case IIO_CHAN_INFO_CALIBBIAS_SHARED:
507 if ((val < 0) | (val > 0xFFFF)) { 507 if ((val < 0) | (val > 0xFFFF)) {
508 ret = -EINVAL; 508 ret = -EINVAL;
509 goto out; 509 goto out;
@@ -515,7 +515,7 @@ static int ad7746_write_raw(struct iio_dev *indio_dev,
515 515
516 ret = 0; 516 ret = 0;
517 break; 517 break;
518 case (1 << IIO_CHAN_INFO_OFFSET_SEPARATE): 518 case IIO_CHAN_INFO_OFFSET_SEPARATE:
519 if ((val < 0) | (val > 43008000)) { /* 21pF */ 519 if ((val < 0) | (val > 43008000)) { /* 21pF */
520 ret = -EINVAL; 520 ret = -EINVAL;
521 goto out; 521 goto out;
@@ -612,7 +612,7 @@ static int ad7746_read_raw(struct iio_dev *indio_dev,
612 612
613 ret = IIO_VAL_INT; 613 ret = IIO_VAL_INT;
614 break; 614 break;
615 case (1 << IIO_CHAN_INFO_CALIBSCALE_SEPARATE): 615 case IIO_CHAN_INFO_CALIBSCALE_SEPARATE:
616 switch (chan->type) { 616 switch (chan->type) {
617 case IIO_CAPACITANCE: 617 case IIO_CAPACITANCE:
618 reg = AD7746_REG_CAP_GAINH; 618 reg = AD7746_REG_CAP_GAINH;
@@ -634,7 +634,7 @@ static int ad7746_read_raw(struct iio_dev *indio_dev,
634 634
635 ret = IIO_VAL_INT_PLUS_MICRO; 635 ret = IIO_VAL_INT_PLUS_MICRO;
636 break; 636 break;
637 case (1 << IIO_CHAN_INFO_CALIBBIAS_SHARED): 637 case IIO_CHAN_INFO_CALIBBIAS_SHARED:
638 ret = i2c_smbus_read_word_data(chip->client, 638 ret = i2c_smbus_read_word_data(chip->client,
639 AD7746_REG_CAP_OFFH); 639 AD7746_REG_CAP_OFFH);
640 if (ret < 0) 640 if (ret < 0)
@@ -643,13 +643,13 @@ static int ad7746_read_raw(struct iio_dev *indio_dev,
643 643
644 ret = IIO_VAL_INT; 644 ret = IIO_VAL_INT;
645 break; 645 break;
646 case (1 << IIO_CHAN_INFO_OFFSET_SEPARATE): 646 case IIO_CHAN_INFO_OFFSET_SEPARATE:
647 *val = AD7746_CAPDAC_DACP(chip->capdac[chan->channel] 647 *val = AD7746_CAPDAC_DACP(chip->capdac[chan->channel]
648 [chan->differential]) * 338646; 648 [chan->differential]) * 338646;
649 649
650 ret = IIO_VAL_INT; 650 ret = IIO_VAL_INT;
651 break; 651 break;
652 case (1 << IIO_CHAN_INFO_SCALE_SHARED): 652 case IIO_CHAN_INFO_SCALE_SHARED:
653 switch (chan->type) { 653 switch (chan->type) {
654 case IIO_CAPACITANCE: 654 case IIO_CAPACITANCE:
655 /* 8.192pf / 2^24 */ 655 /* 8.192pf / 2^24 */
diff --git a/drivers/staging/iio/dac/ad5064.c b/drivers/staging/iio/dac/ad5064.c
index 24279f2ae41..1c25403620f 100644
--- a/drivers/staging/iio/dac/ad5064.c
+++ b/drivers/staging/iio/dac/ad5064.c
@@ -287,7 +287,7 @@ static int ad5064_read_raw(struct iio_dev *indio_dev,
287 case 0: 287 case 0:
288 *val = st->dac_cache[chan->channel]; 288 *val = st->dac_cache[chan->channel];
289 return IIO_VAL_INT; 289 return IIO_VAL_INT;
290 case (1 << IIO_CHAN_INFO_SCALE_SEPARATE): 290 case IIO_CHAN_INFO_SCALE_SEPARATE:
291 vref = st->chip_info->shared_vref ? 0 : chan->channel; 291 vref = st->chip_info->shared_vref ? 0 : chan->channel;
292 scale_uv = regulator_get_voltage(st->vref_reg[vref].consumer); 292 scale_uv = regulator_get_voltage(st->vref_reg[vref].consumer);
293 if (scale_uv < 0) 293 if (scale_uv < 0)
diff --git a/drivers/staging/iio/dac/ad5360.c b/drivers/staging/iio/dac/ad5360.c
index 72d0f3f0d6a..7df19586d18 100644
--- a/drivers/staging/iio/dac/ad5360.c
+++ b/drivers/staging/iio/dac/ad5360.c
@@ -326,21 +326,21 @@ static int ad5360_write_raw(struct iio_dev *indio_dev,
326 return ad5360_write(indio_dev, AD5360_CMD_WRITE_DATA, 326 return ad5360_write(indio_dev, AD5360_CMD_WRITE_DATA,
327 chan->address, val, chan->scan_type.shift); 327 chan->address, val, chan->scan_type.shift);
328 328
329 case (1 << IIO_CHAN_INFO_CALIBBIAS_SEPARATE): 329 case IIO_CHAN_INFO_CALIBBIAS_SEPARATE:
330 if (val >= max_val || val < 0) 330 if (val >= max_val || val < 0)
331 return -EINVAL; 331 return -EINVAL;
332 332
333 return ad5360_write(indio_dev, AD5360_CMD_WRITE_OFFSET, 333 return ad5360_write(indio_dev, AD5360_CMD_WRITE_OFFSET,
334 chan->address, val, chan->scan_type.shift); 334 chan->address, val, chan->scan_type.shift);
335 335
336 case (1 << IIO_CHAN_INFO_CALIBSCALE_SEPARATE): 336 case IIO_CHAN_INFO_CALIBSCALE_SEPARATE:
337 if (val >= max_val || val < 0) 337 if (val >= max_val || val < 0)
338 return -EINVAL; 338 return -EINVAL;
339 339
340 return ad5360_write(indio_dev, AD5360_CMD_WRITE_GAIN, 340 return ad5360_write(indio_dev, AD5360_CMD_WRITE_GAIN,
341 chan->address, val, chan->scan_type.shift); 341 chan->address, val, chan->scan_type.shift);
342 342
343 case (1 << IIO_CHAN_INFO_OFFSET_SEPARATE): 343 case IIO_CHAN_INFO_OFFSET_SEPARATE:
344 if (val <= -max_val || val > 0) 344 if (val <= -max_val || val > 0)
345 return -EINVAL; 345 return -EINVAL;
346 346
@@ -383,7 +383,7 @@ static int ad5360_read_raw(struct iio_dev *indio_dev,
383 return ret; 383 return ret;
384 *val = ret >> chan->scan_type.shift; 384 *val = ret >> chan->scan_type.shift;
385 return IIO_VAL_INT; 385 return IIO_VAL_INT;
386 case (1 << IIO_CHAN_INFO_SCALE_SEPARATE): 386 case IIO_CHAN_INFO_SCALE_SEPARATE:
387 /* vout = 4 * vref * dac_code */ 387 /* vout = 4 * vref * dac_code */
388 scale_uv = ad5360_get_channel_vref(st, chan->channel) * 4 * 100; 388 scale_uv = ad5360_get_channel_vref(st, chan->channel) * 4 * 100;
389 if (scale_uv < 0) 389 if (scale_uv < 0)
@@ -393,21 +393,21 @@ static int ad5360_read_raw(struct iio_dev *indio_dev,
393 *val = scale_uv / 100000; 393 *val = scale_uv / 100000;
394 *val2 = (scale_uv % 100000) * 10; 394 *val2 = (scale_uv % 100000) * 10;
395 return IIO_VAL_INT_PLUS_MICRO; 395 return IIO_VAL_INT_PLUS_MICRO;
396 case (1 << IIO_CHAN_INFO_CALIBBIAS_SEPARATE): 396 case IIO_CHAN_INFO_CALIBBIAS_SEPARATE:
397 ret = ad5360_read(indio_dev, AD5360_READBACK_OFFSET, 397 ret = ad5360_read(indio_dev, AD5360_READBACK_OFFSET,
398 chan->address); 398 chan->address);
399 if (ret < 0) 399 if (ret < 0)
400 return ret; 400 return ret;
401 *val = ret; 401 *val = ret;
402 return IIO_VAL_INT; 402 return IIO_VAL_INT;
403 case (1 << IIO_CHAN_INFO_CALIBSCALE_SEPARATE): 403 case IIO_CHAN_INFO_CALIBSCALE_SEPARATE:
404 ret = ad5360_read(indio_dev, AD5360_READBACK_GAIN, 404 ret = ad5360_read(indio_dev, AD5360_READBACK_GAIN,
405 chan->address); 405 chan->address);
406 if (ret < 0) 406 if (ret < 0)
407 return ret; 407 return ret;
408 *val = ret; 408 *val = ret;
409 return IIO_VAL_INT; 409 return IIO_VAL_INT;
410 case (1 << IIO_CHAN_INFO_OFFSET_SEPARATE): 410 case IIO_CHAN_INFO_OFFSET_SEPARATE:
411 ofs_index = ad5360_get_channel_vref_index(st, chan->channel); 411 ofs_index = ad5360_get_channel_vref_index(st, chan->channel);
412 ret = ad5360_read(indio_dev, AD5360_READBACK_SF, 412 ret = ad5360_read(indio_dev, AD5360_READBACK_SF,
413 AD5360_REG_SF_OFS(ofs_index)); 413 AD5360_REG_SF_OFS(ofs_index));
diff --git a/drivers/staging/iio/dac/ad5686.c b/drivers/staging/iio/dac/ad5686.c
index 974c6f5b60c..f2332b3f24a 100644
--- a/drivers/staging/iio/dac/ad5686.c
+++ b/drivers/staging/iio/dac/ad5686.c
@@ -306,7 +306,7 @@ static int ad5686_read_raw(struct iio_dev *indio_dev,
306 *val = ret; 306 *val = ret;
307 return IIO_VAL_INT; 307 return IIO_VAL_INT;
308 break; 308 break;
309 case (1 << IIO_CHAN_INFO_SCALE_SHARED): 309 case IIO_CHAN_INFO_SCALE_SHARED:
310 scale_uv = (st->vref_mv * 100000) 310 scale_uv = (st->vref_mv * 100000)
311 >> (chan->scan_type.realbits); 311 >> (chan->scan_type.realbits);
312 *val = scale_uv / 100000; 312 *val = scale_uv / 100000;
diff --git a/drivers/staging/iio/dac/ad5791.c b/drivers/staging/iio/dac/ad5791.c
index 6fbca8d9615..d3b3b71c87c 100644
--- a/drivers/staging/iio/dac/ad5791.c
+++ b/drivers/staging/iio/dac/ad5791.c
@@ -237,11 +237,11 @@ static int ad5791_read_raw(struct iio_dev *indio_dev,
237 *val &= AD5791_DAC_MASK; 237 *val &= AD5791_DAC_MASK;
238 *val >>= chan->scan_type.shift; 238 *val >>= chan->scan_type.shift;
239 return IIO_VAL_INT; 239 return IIO_VAL_INT;
240 case (1 << IIO_CHAN_INFO_SCALE_SHARED): 240 case IIO_CHAN_INFO_SCALE_SHARED:
241 *val = 0; 241 *val = 0;
242 *val2 = (((u64)st->vref_mv) * 1000000ULL) >> chan->scan_type.realbits; 242 *val2 = (((u64)st->vref_mv) * 1000000ULL) >> chan->scan_type.realbits;
243 return IIO_VAL_INT_PLUS_MICRO; 243 return IIO_VAL_INT_PLUS_MICRO;
244 case (1 << IIO_CHAN_INFO_OFFSET_SHARED): 244 case IIO_CHAN_INFO_OFFSET_SHARED:
245 val64 = (((u64)st->vref_neg_mv) << chan->scan_type.realbits); 245 val64 = (((u64)st->vref_neg_mv) << chan->scan_type.realbits);
246 do_div(val64, st->vref_mv); 246 do_div(val64, st->vref_mv);
247 *val = -val64; 247 *val = -val64;
diff --git a/drivers/staging/iio/gyro/adis16060_core.c b/drivers/staging/iio/gyro/adis16060_core.c
index ff1b5a82b3d..d83c640f4e6 100644
--- a/drivers/staging/iio/gyro/adis16060_core.c
+++ b/drivers/staging/iio/gyro/adis16060_core.c
@@ -98,11 +98,11 @@ static int adis16060_read_raw(struct iio_dev *indio_dev,
98 mutex_unlock(&indio_dev->mlock); 98 mutex_unlock(&indio_dev->mlock);
99 *val = tval; 99 *val = tval;
100 return IIO_VAL_INT; 100 return IIO_VAL_INT;
101 case (1 << IIO_CHAN_INFO_OFFSET_SEPARATE): 101 case IIO_CHAN_INFO_OFFSET_SEPARATE:
102 *val = -7; 102 *val = -7;
103 *val2 = 461117; 103 *val2 = 461117;
104 return IIO_VAL_INT_PLUS_MICRO; 104 return IIO_VAL_INT_PLUS_MICRO;
105 case (1 << IIO_CHAN_INFO_SCALE_SEPARATE): 105 case IIO_CHAN_INFO_SCALE_SEPARATE:
106 *val = 0; 106 *val = 0;
107 *val2 = 34000; 107 *val2 = 34000;
108 return IIO_VAL_INT_PLUS_MICRO; 108 return IIO_VAL_INT_PLUS_MICRO;
diff --git a/drivers/staging/iio/gyro/adis16260_core.c b/drivers/staging/iio/gyro/adis16260_core.c
index 40da95554fa..4f5a7cb3f7e 100644
--- a/drivers/staging/iio/gyro/adis16260_core.c
+++ b/drivers/staging/iio/gyro/adis16260_core.c
@@ -464,8 +464,8 @@ static int adis16260_read_raw(struct iio_dev *indio_dev,
464 *val = val16; 464 *val = val16;
465 mutex_unlock(&indio_dev->mlock); 465 mutex_unlock(&indio_dev->mlock);
466 return IIO_VAL_INT; 466 return IIO_VAL_INT;
467 case (1 << IIO_CHAN_INFO_SCALE_SEPARATE): 467 case IIO_CHAN_INFO_SCALE_SEPARATE:
468 case (1 << IIO_CHAN_INFO_SCALE_SHARED): 468 case IIO_CHAN_INFO_SCALE_SHARED:
469 switch (chan->type) { 469 switch (chan->type) {
470 case IIO_ANGL_VEL: 470 case IIO_ANGL_VEL:
471 *val = 0; 471 *val = 0;
@@ -489,10 +489,10 @@ static int adis16260_read_raw(struct iio_dev *indio_dev,
489 return -EINVAL; 489 return -EINVAL;
490 } 490 }
491 break; 491 break;
492 case (1 << IIO_CHAN_INFO_OFFSET_SEPARATE): 492 case IIO_CHAN_INFO_OFFSET_SEPARATE:
493 *val = 25; 493 *val = 25;
494 return IIO_VAL_INT; 494 return IIO_VAL_INT;
495 case (1 << IIO_CHAN_INFO_CALIBBIAS_SEPARATE): 495 case IIO_CHAN_INFO_CALIBBIAS_SEPARATE:
496 switch (chan->type) { 496 switch (chan->type) {
497 case IIO_ANGL_VEL: 497 case IIO_ANGL_VEL:
498 bits = 12; 498 bits = 12;
@@ -512,7 +512,7 @@ static int adis16260_read_raw(struct iio_dev *indio_dev,
512 *val = val16; 512 *val = val16;
513 mutex_unlock(&indio_dev->mlock); 513 mutex_unlock(&indio_dev->mlock);
514 return IIO_VAL_INT; 514 return IIO_VAL_INT;
515 case (1 << IIO_CHAN_INFO_CALIBSCALE_SEPARATE): 515 case IIO_CHAN_INFO_CALIBSCALE_SEPARATE:
516 switch (chan->type) { 516 switch (chan->type) {
517 case IIO_ANGL_VEL: 517 case IIO_ANGL_VEL:
518 bits = 12; 518 bits = 12;
@@ -544,11 +544,11 @@ static int adis16260_write_raw(struct iio_dev *indio_dev,
544 s16 val16; 544 s16 val16;
545 u8 addr; 545 u8 addr;
546 switch (mask) { 546 switch (mask) {
547 case (1 << IIO_CHAN_INFO_CALIBBIAS_SEPARATE): 547 case IIO_CHAN_INFO_CALIBBIAS_SEPARATE:
548 val16 = val & ((1 << bits) - 1); 548 val16 = val & ((1 << bits) - 1);
549 addr = adis16260_addresses[chan->address][1]; 549 addr = adis16260_addresses[chan->address][1];
550 return adis16260_spi_write_reg_16(indio_dev, addr, val16); 550 return adis16260_spi_write_reg_16(indio_dev, addr, val16);
551 case (1 << IIO_CHAN_INFO_CALIBSCALE_SEPARATE): 551 case IIO_CHAN_INFO_CALIBSCALE_SEPARATE:
552 val16 = val & ((1 << bits) - 1); 552 val16 = val & ((1 << bits) - 1);
553 addr = adis16260_addresses[chan->address][2]; 553 addr = adis16260_addresses[chan->address][2];
554 return adis16260_spi_write_reg_16(indio_dev, addr, val16); 554 return adis16260_spi_write_reg_16(indio_dev, addr, val16);
diff --git a/drivers/staging/iio/gyro/adxrs450_core.c b/drivers/staging/iio/gyro/adxrs450_core.c
index 3c3ef796d48..18406c7f960 100644
--- a/drivers/staging/iio/gyro/adxrs450_core.c
+++ b/drivers/staging/iio/gyro/adxrs450_core.c
@@ -243,7 +243,7 @@ static int adxrs450_write_raw(struct iio_dev *indio_dev,
243{ 243{
244 int ret; 244 int ret;
245 switch (mask) { 245 switch (mask) {
246 case (1 << IIO_CHAN_INFO_CALIBBIAS_SEPARATE): 246 case IIO_CHAN_INFO_CALIBBIAS_SEPARATE:
247 ret = adxrs450_spi_write_reg_16(indio_dev, 247 ret = adxrs450_spi_write_reg_16(indio_dev,
248 ADXRS450_DNC1, 248 ADXRS450_DNC1,
249 val & 0x3FF); 249 val & 0x3FF);
@@ -287,7 +287,7 @@ static int adxrs450_read_raw(struct iio_dev *indio_dev,
287 break; 287 break;
288 } 288 }
289 break; 289 break;
290 case (1 << IIO_CHAN_INFO_QUADRATURE_CORRECTION_RAW_SEPARATE): 290 case IIO_CHAN_INFO_QUADRATURE_CORRECTION_RAW_SEPARATE:
291 ret = adxrs450_spi_read_reg_16(indio_dev, ADXRS450_QUAD1, &t); 291 ret = adxrs450_spi_read_reg_16(indio_dev, ADXRS450_QUAD1, &t);
292 if (ret) 292 if (ret)
293 break; 293 break;
diff --git a/drivers/staging/iio/iio.h b/drivers/staging/iio/iio.h
index cf95f74dc9d..4fb4cc42399 100644
--- a/drivers/staging/iio/iio.h
+++ b/drivers/staging/iio/iio.h
@@ -26,7 +26,8 @@ enum iio_data_type {
26 26
27/* Could add the raw attributes as well - allowing buffer only devices */ 27/* Could add the raw attributes as well - allowing buffer only devices */
28enum iio_chan_info_enum { 28enum iio_chan_info_enum {
29 IIO_CHAN_INFO_SCALE_SHARED, 29 /* 0 is reserverd for raw attributes */
30 IIO_CHAN_INFO_SCALE_SHARED = 2,
30 IIO_CHAN_INFO_SCALE_SEPARATE, 31 IIO_CHAN_INFO_SCALE_SEPARATE,
31 IIO_CHAN_INFO_OFFSET_SHARED, 32 IIO_CHAN_INFO_OFFSET_SHARED,
32 IIO_CHAN_INFO_OFFSET_SEPARATE, 33 IIO_CHAN_INFO_OFFSET_SEPARATE,
diff --git a/drivers/staging/iio/iio_simple_dummy.c b/drivers/staging/iio/iio_simple_dummy.c
index 06c022e2094..2196ff19f7b 100644
--- a/drivers/staging/iio/iio_simple_dummy.c
+++ b/drivers/staging/iio/iio_simple_dummy.c
@@ -229,29 +229,29 @@ static int iio_dummy_read_raw(struct iio_dev *indio_dev,
229 break; 229 break;
230 } 230 }
231 break; 231 break;
232 case (1 << IIO_CHAN_INFO_OFFSET_SEPARATE): 232 case IIO_CHAN_INFO_OFFSET_SEPARATE:
233 /* only single ended adc -> 7 */ 233 /* only single ended adc -> 7 */
234 *val = 7; 234 *val = 7;
235 ret = IIO_VAL_INT; 235 ret = IIO_VAL_INT;
236 break; 236 break;
237 case (1 << IIO_CHAN_INFO_SCALE_SEPARATE): 237 case IIO_CHAN_INFO_SCALE_SEPARATE:
238 /* only single ended adc -> 0.001333 */ 238 /* only single ended adc -> 0.001333 */
239 *val = 0; 239 *val = 0;
240 *val2 = 1333; 240 *val2 = 1333;
241 ret = IIO_VAL_INT_PLUS_MICRO; 241 ret = IIO_VAL_INT_PLUS_MICRO;
242 break; 242 break;
243 case (1 << IIO_CHAN_INFO_SCALE_SHARED): 243 case IIO_CHAN_INFO_SCALE_SHARED:
244 /* all differential adc channels -> 0.000001344 */ 244 /* all differential adc channels -> 0.000001344 */
245 *val = 0; 245 *val = 0;
246 *val2 = 1344; 246 *val2 = 1344;
247 ret = IIO_VAL_INT_PLUS_NANO; 247 ret = IIO_VAL_INT_PLUS_NANO;
248 break; 248 break;
249 case (1 << IIO_CHAN_INFO_CALIBBIAS_SEPARATE): 249 case IIO_CHAN_INFO_CALIBBIAS_SEPARATE:
250 /* only the acceleration axis - read from cache */ 250 /* only the acceleration axis - read from cache */
251 *val = st->accel_calibbias; 251 *val = st->accel_calibbias;
252 ret = IIO_VAL_INT; 252 ret = IIO_VAL_INT;
253 break; 253 break;
254 case (1 << IIO_CHAN_INFO_CALIBSCALE_SEPARATE): 254 case IIO_CHAN_INFO_CALIBSCALE_SEPARATE:
255 *val = st->accel_calibscale->val; 255 *val = st->accel_calibscale->val;
256 *val2 = st->accel_calibscale->val2; 256 *val2 = st->accel_calibscale->val2;
257 ret = IIO_VAL_INT_PLUS_MICRO; 257 ret = IIO_VAL_INT_PLUS_MICRO;
@@ -296,7 +296,7 @@ static int iio_dummy_write_raw(struct iio_dev *indio_dev,
296 st->dac_val = val; 296 st->dac_val = val;
297 mutex_unlock(&st->lock); 297 mutex_unlock(&st->lock);
298 return 0; 298 return 0;
299 case (1 << IIO_CHAN_INFO_CALIBBIAS_SEPARATE): 299 case IIO_CHAN_INFO_CALIBBIAS_SEPARATE:
300 mutex_lock(&st->lock); 300 mutex_lock(&st->lock);
301 /* Compare against table - hard matching here */ 301 /* Compare against table - hard matching here */
302 for (i = 0; i < ARRAY_SIZE(dummy_scales); i++) 302 for (i = 0; i < ARRAY_SIZE(dummy_scales); i++)
diff --git a/drivers/staging/iio/imu/adis16400_core.c b/drivers/staging/iio/imu/adis16400_core.c
index e6df4921b55..0018272625c 100644
--- a/drivers/staging/iio/imu/adis16400_core.c
+++ b/drivers/staging/iio/imu/adis16400_core.c
@@ -464,7 +464,7 @@ static int adis16400_write_raw(struct iio_dev *indio_dev,
464 int ret; 464 int ret;
465 465
466 switch (mask) { 466 switch (mask) {
467 case (1 << IIO_CHAN_INFO_CALIBBIAS_SEPARATE): 467 case IIO_CHAN_INFO_CALIBBIAS_SEPARATE:
468 mutex_lock(&indio_dev->mlock); 468 mutex_lock(&indio_dev->mlock);
469 ret = adis16400_spi_write_reg_16(indio_dev, 469 ret = adis16400_spi_write_reg_16(indio_dev,
470 adis16400_addresses[chan->address][1], 470 adis16400_addresses[chan->address][1],
@@ -504,8 +504,8 @@ static int adis16400_read_raw(struct iio_dev *indio_dev,
504 *val = val16; 504 *val = val16;
505 mutex_unlock(&indio_dev->mlock); 505 mutex_unlock(&indio_dev->mlock);
506 return IIO_VAL_INT; 506 return IIO_VAL_INT;
507 case (1 << IIO_CHAN_INFO_SCALE_SHARED): 507 case IIO_CHAN_INFO_SCALE_SHARED:
508 case (1 << IIO_CHAN_INFO_SCALE_SEPARATE): 508 case IIO_CHAN_INFO_SCALE_SEPARATE:
509 switch (chan->type) { 509 switch (chan->type) {
510 case IIO_ANGL_VEL: 510 case IIO_ANGL_VEL:
511 *val = 0; 511 *val = 0;
@@ -533,7 +533,7 @@ static int adis16400_read_raw(struct iio_dev *indio_dev,
533 default: 533 default:
534 return -EINVAL; 534 return -EINVAL;
535 } 535 }
536 case (1 << IIO_CHAN_INFO_CALIBBIAS_SEPARATE): 536 case IIO_CHAN_INFO_CALIBBIAS_SEPARATE:
537 mutex_lock(&indio_dev->mlock); 537 mutex_lock(&indio_dev->mlock);
538 ret = adis16400_spi_read_reg_16(indio_dev, 538 ret = adis16400_spi_read_reg_16(indio_dev,
539 adis16400_addresses[chan->address][1], 539 adis16400_addresses[chan->address][1],
@@ -544,7 +544,7 @@ static int adis16400_read_raw(struct iio_dev *indio_dev,
544 val16 = ((val16 & 0xFFF) << 4) >> 4; 544 val16 = ((val16 & 0xFFF) << 4) >> 4;
545 *val = val16; 545 *val = val16;
546 return IIO_VAL_INT; 546 return IIO_VAL_INT;
547 case (1 << IIO_CHAN_INFO_OFFSET_SEPARATE): 547 case IIO_CHAN_INFO_OFFSET_SEPARATE:
548 /* currently only temperature */ 548 /* currently only temperature */
549 *val = 198; 549 *val = 198;
550 *val2 = 160000; 550 *val2 = 160000;
diff --git a/drivers/staging/iio/industrialio-core.c b/drivers/staging/iio/industrialio-core.c
index 1c53b9acae8..63681a61d5c 100644
--- a/drivers/staging/iio/industrialio-core.c
+++ b/drivers/staging/iio/industrialio-core.c
@@ -603,7 +603,7 @@ static int iio_device_add_channel_sysfs(struct iio_dev *indio_dev,
603 chan, 603 chan,
604 &iio_read_channel_info, 604 &iio_read_channel_info,
605 &iio_write_channel_info, 605 &iio_write_channel_info,
606 (1 << i), 606 i,
607 !(i%2), 607 !(i%2),
608 &indio_dev->dev, 608 &indio_dev->dev,
609 &indio_dev->channel_attr_list); 609 &indio_dev->channel_attr_list);
diff --git a/drivers/staging/iio/light/isl29018.c b/drivers/staging/iio/light/isl29018.c
index 9dc9e635839..bed18a74d30 100644
--- a/drivers/staging/iio/light/isl29018.c
+++ b/drivers/staging/iio/light/isl29018.c
@@ -362,7 +362,7 @@ static int isl29018_write_raw(struct iio_dev *indio_dev,
362 int ret = -EINVAL; 362 int ret = -EINVAL;
363 363
364 mutex_lock(&chip->lock); 364 mutex_lock(&chip->lock);
365 if (mask == (1 << IIO_CHAN_INFO_CALIBSCALE_SEPARATE) && 365 if (mask == IIO_CHAN_INFO_CALIBSCALE_SEPARATE &&
366 chan->type == IIO_LIGHT) { 366 chan->type == IIO_LIGHT) {
367 chip->lux_scale = val; 367 chip->lux_scale = val;
368 ret = 0; 368 ret = 0;
@@ -402,7 +402,7 @@ static int isl29018_read_raw(struct iio_dev *indio_dev,
402 if (!ret) 402 if (!ret)
403 ret = IIO_VAL_INT; 403 ret = IIO_VAL_INT;
404 break; 404 break;
405 case (1 << IIO_CHAN_INFO_CALIBSCALE_SEPARATE): 405 case IIO_CHAN_INFO_CALIBSCALE_SEPARATE:
406 if (chan->type == IIO_LIGHT) { 406 if (chan->type == IIO_LIGHT) {
407 *val = chip->lux_scale; 407 *val = chip->lux_scale;
408 ret = IIO_VAL_INT; 408 ret = IIO_VAL_INT;
diff --git a/drivers/staging/iio/light/tsl2563.c b/drivers/staging/iio/light/tsl2563.c
index 32dfce0a644..45d04a1b194 100644
--- a/drivers/staging/iio/light/tsl2563.c
+++ b/drivers/staging/iio/light/tsl2563.c
@@ -513,7 +513,7 @@ static int tsl2563_read_raw(struct iio_dev *indio_dev,
513 } 513 }
514 break; 514 break;
515 515
516 case (1 << IIO_CHAN_INFO_CALIBSCALE_SEPARATE): 516 case IIO_CHAN_INFO_CALIBSCALE_SEPARATE:
517 if (chan->channel == 0) 517 if (chan->channel == 0)
518 *val = calib_to_sysfs(chip->calib0); 518 *val = calib_to_sysfs(chip->calib0);
519 else 519 else
diff --git a/drivers/staging/iio/magnetometer/ak8975.c b/drivers/staging/iio/magnetometer/ak8975.c
index 8b017127fd4..b7d8cbb58c3 100644
--- a/drivers/staging/iio/magnetometer/ak8975.c
+++ b/drivers/staging/iio/magnetometer/ak8975.c
@@ -431,7 +431,7 @@ static int ak8975_read_raw(struct iio_dev *indio_dev,
431 switch (mask) { 431 switch (mask) {
432 case 0: 432 case 0:
433 return ak8975_read_axis(indio_dev, chan->address, val); 433 return ak8975_read_axis(indio_dev, chan->address, val);
434 case (1 << IIO_CHAN_INFO_SCALE_SEPARATE): 434 case IIO_CHAN_INFO_SCALE_SEPARATE:
435 *val = data->raw_to_gauss[chan->address]; 435 *val = data->raw_to_gauss[chan->address];
436 return IIO_VAL_INT; 436 return IIO_VAL_INT;
437 } 437 }
diff --git a/drivers/staging/iio/magnetometer/hmc5843.c b/drivers/staging/iio/magnetometer/hmc5843.c
index fc9ee970888..4a42707a20e 100644
--- a/drivers/staging/iio/magnetometer/hmc5843.c
+++ b/drivers/staging/iio/magnetometer/hmc5843.c
@@ -463,7 +463,7 @@ static int hmc5843_read_raw(struct iio_dev *indio_dev,
463 return hmc5843_read_measurement(indio_dev, 463 return hmc5843_read_measurement(indio_dev,
464 chan->address, 464 chan->address,
465 val); 465 val);
466 case (1 << IIO_CHAN_INFO_SCALE_SHARED): 466 case IIO_CHAN_INFO_SCALE_SHARED:
467 *val = 0; 467 *val = 0;
468 *val2 = hmc5843_regval_to_nanoscale[data->range]; 468 *val2 = hmc5843_regval_to_nanoscale[data->range];
469 return IIO_VAL_INT_PLUS_NANO; 469 return IIO_VAL_INT_PLUS_NANO;