aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/staging/iio/accel/adis16201_core.c33
-rw-r--r--drivers/staging/iio/accel/adis16203_core.c21
-rw-r--r--drivers/staging/iio/accel/adis16204_core.c32
-rw-r--r--drivers/staging/iio/accel/adis16209_core.c29
-rw-r--r--drivers/staging/iio/accel/adis16220_core.c22
-rw-r--r--drivers/staging/iio/accel/adis16240_core.c29
-rw-r--r--drivers/staging/iio/accel/kxsd9.c6
-rw-r--r--drivers/staging/iio/accel/lis3l02dq_core.c16
-rw-r--r--drivers/staging/iio/accel/sca3000_core.c4
-rw-r--r--drivers/staging/iio/adc/ad7192.c34
-rw-r--r--drivers/staging/iio/adc/ad7280a.c6
-rw-r--r--drivers/staging/iio/adc/ad7291.c38
-rw-r--r--drivers/staging/iio/adc/ad7298_core.c41
-rw-r--r--drivers/staging/iio/adc/ad7476_core.c18
-rw-r--r--drivers/staging/iio/adc/ad7606_core.c2
-rw-r--r--drivers/staging/iio/adc/ad7780.c6
-rw-r--r--drivers/staging/iio/adc/ad7793.c50
-rw-r--r--drivers/staging/iio/adc/ad7887_core.c6
-rw-r--r--drivers/staging/iio/adc/ad799x_core.c2
-rw-r--r--drivers/staging/iio/adc/max1363_core.c4
-rw-r--r--drivers/staging/iio/cdc/ad7150.c6
-rw-r--r--drivers/staging/iio/cdc/ad7152.c38
-rw-r--r--drivers/staging/iio/cdc/ad7746.c50
-rw-r--r--drivers/staging/iio/dac/ad5064.c4
-rw-r--r--drivers/staging/iio/dac/ad5360.c22
-rw-r--r--drivers/staging/iio/dac/ad5686.c4
-rw-r--r--drivers/staging/iio/dac/ad5791.c8
-rw-r--r--drivers/staging/iio/gyro/adis16060_core.c8
-rw-r--r--drivers/staging/iio/gyro/adis16260_core.c27
-rw-r--r--drivers/staging/iio/gyro/adxrs450_core.c8
-rw-r--r--drivers/staging/iio/iio.h62
-rw-r--r--drivers/staging/iio/iio_simple_dummy.c43
-rw-r--r--drivers/staging/iio/impedance-analyzer/ad5933.c4
-rw-r--r--drivers/staging/iio/imu/adis16400_core.c143
-rw-r--r--drivers/staging/iio/industrialio-core.c19
-rw-r--r--drivers/staging/iio/light/isl29018.c7
-rw-r--r--drivers/staging/iio/light/tsl2563.c6
-rw-r--r--drivers/staging/iio/magnetometer/ak8975.c4
-rw-r--r--drivers/staging/iio/magnetometer/hmc5843.c4
-rw-r--r--drivers/staging/iio/meter/ade7758_core.c30
40 files changed, 468 insertions, 428 deletions
diff --git a/drivers/staging/iio/accel/adis16201_core.c b/drivers/staging/iio/accel/adis16201_core.c
index f1c06027a42..d3d877fc5dc 100644
--- a/drivers/staging/iio/accel/adis16201_core.c
+++ b/drivers/staging/iio/accel/adis16201_core.c
@@ -322,8 +322,7 @@ 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 IIO_CHAN_INFO_SCALE_SEPARATE: 325 case IIO_CHAN_INFO_SCALE:
326 case IIO_CHAN_INFO_SCALE_SHARED:
327 switch (chan->type) { 326 switch (chan->type) {
328 case IIO_VOLTAGE: 327 case IIO_VOLTAGE:
329 *val = 0; 328 *val = 0;
@@ -348,10 +347,10 @@ static int adis16201_read_raw(struct iio_dev *indio_dev,
348 return -EINVAL; 347 return -EINVAL;
349 } 348 }
350 break; 349 break;
351 case IIO_CHAN_INFO_OFFSET_SEPARATE: 350 case IIO_CHAN_INFO_OFFSET:
352 *val = 25; 351 *val = 25;
353 return IIO_VAL_INT; 352 return IIO_VAL_INT;
354 case IIO_CHAN_INFO_CALIBBIAS_SEPARATE: 353 case IIO_CHAN_INFO_CALIBBIAS:
355 switch (chan->type) { 354 switch (chan->type) {
356 case IIO_ACCEL: 355 case IIO_ACCEL:
357 bits = 12; 356 bits = 12;
@@ -388,7 +387,7 @@ static int adis16201_write_raw(struct iio_dev *indio_dev,
388 s16 val16; 387 s16 val16;
389 u8 addr; 388 u8 addr;
390 switch (mask) { 389 switch (mask) {
391 case IIO_CHAN_INFO_CALIBBIAS_SEPARATE: 390 case IIO_CHAN_INFO_CALIBBIAS:
392 switch (chan->type) { 391 switch (chan->type) {
393 case IIO_ACCEL: 392 case IIO_ACCEL:
394 bits = 12; 393 bits = 12;
@@ -408,36 +407,36 @@ static int adis16201_write_raw(struct iio_dev *indio_dev,
408 407
409static struct iio_chan_spec adis16201_channels[] = { 408static struct iio_chan_spec adis16201_channels[] = {
410 IIO_CHAN(IIO_VOLTAGE, 0, 1, 0, "supply", 0, 0, 409 IIO_CHAN(IIO_VOLTAGE, 0, 1, 0, "supply", 0, 0,
411 (1 << IIO_CHAN_INFO_SCALE_SEPARATE), 410 IIO_CHAN_INFO_SCALE_SEPARATE_BIT,
412 in_supply, ADIS16201_SCAN_SUPPLY, 411 in_supply, ADIS16201_SCAN_SUPPLY,
413 IIO_ST('u', 12, 16, 0), 0), 412 IIO_ST('u', 12, 16, 0), 0),
414 IIO_CHAN(IIO_TEMP, 0, 1, 0, NULL, 0, 0, 413 IIO_CHAN(IIO_TEMP, 0, 1, 0, NULL, 0, 0,
415 (1 << IIO_CHAN_INFO_SCALE_SEPARATE) | 414 IIO_CHAN_INFO_SCALE_SEPARATE_BIT |
416 (1 << IIO_CHAN_INFO_OFFSET_SEPARATE), 415 IIO_CHAN_INFO_OFFSET_SEPARATE_BIT,
417 temp, ADIS16201_SCAN_TEMP, 416 temp, ADIS16201_SCAN_TEMP,
418 IIO_ST('u', 12, 16, 0), 0), 417 IIO_ST('u', 12, 16, 0), 0),
419 IIO_CHAN(IIO_ACCEL, 1, 0, 0, NULL, 0, IIO_MOD_X, 418 IIO_CHAN(IIO_ACCEL, 1, 0, 0, NULL, 0, IIO_MOD_X,
420 (1 << IIO_CHAN_INFO_SCALE_SHARED) | 419 IIO_CHAN_INFO_SCALE_SHARED_BIT |
421 (1 << IIO_CHAN_INFO_CALIBBIAS_SEPARATE), 420 IIO_CHAN_INFO_CALIBBIAS_SEPARATE_BIT,
422 accel_x, ADIS16201_SCAN_ACC_X, 421 accel_x, ADIS16201_SCAN_ACC_X,
423 IIO_ST('s', 14, 16, 0), 0), 422 IIO_ST('s', 14, 16, 0), 0),
424 IIO_CHAN(IIO_ACCEL, 1, 0, 0, NULL, 0, IIO_MOD_Y, 423 IIO_CHAN(IIO_ACCEL, 1, 0, 0, NULL, 0, IIO_MOD_Y,
425 (1 << IIO_CHAN_INFO_SCALE_SHARED) | 424 IIO_CHAN_INFO_SCALE_SHARED_BIT |
426 (1 << IIO_CHAN_INFO_CALIBBIAS_SEPARATE), 425 IIO_CHAN_INFO_CALIBBIAS_SEPARATE_BIT,
427 accel_y, ADIS16201_SCAN_ACC_Y, 426 accel_y, ADIS16201_SCAN_ACC_Y,
428 IIO_ST('s', 14, 16, 0), 0), 427 IIO_ST('s', 14, 16, 0), 0),
429 IIO_CHAN(IIO_VOLTAGE, 0, 1, 0, NULL, 1, 0, 428 IIO_CHAN(IIO_VOLTAGE, 0, 1, 0, NULL, 1, 0,
430 (1 << IIO_CHAN_INFO_SCALE_SEPARATE), 429 IIO_CHAN_INFO_SCALE_SEPARATE_BIT,
431 in_aux, ADIS16201_SCAN_AUX_ADC, 430 in_aux, ADIS16201_SCAN_AUX_ADC,
432 IIO_ST('u', 12, 16, 0), 0), 431 IIO_ST('u', 12, 16, 0), 0),
433 IIO_CHAN(IIO_INCLI, 1, 0, 0, NULL, 0, IIO_MOD_X, 432 IIO_CHAN(IIO_INCLI, 1, 0, 0, NULL, 0, IIO_MOD_X,
434 (1 << IIO_CHAN_INFO_SCALE_SHARED) | 433 IIO_CHAN_INFO_SCALE_SHARED_BIT |
435 (1 << IIO_CHAN_INFO_CALIBBIAS_SEPARATE), 434 IIO_CHAN_INFO_CALIBBIAS_SEPARATE_BIT,
436 incli_x, ADIS16201_SCAN_INCLI_X, 435 incli_x, ADIS16201_SCAN_INCLI_X,
437 IIO_ST('s', 14, 16, 0), 0), 436 IIO_ST('s', 14, 16, 0), 0),
438 IIO_CHAN(IIO_INCLI, 1, 0, 0, NULL, 0, IIO_MOD_Y, 437 IIO_CHAN(IIO_INCLI, 1, 0, 0, NULL, 0, IIO_MOD_Y,
439 (1 << IIO_CHAN_INFO_SCALE_SHARED) | 438 IIO_CHAN_INFO_SCALE_SHARED_BIT |
440 (1 << IIO_CHAN_INFO_CALIBBIAS_SEPARATE), 439 IIO_CHAN_INFO_CALIBBIAS_SEPARATE_BIT,
441 incli_y, ADIS16201_SCAN_INCLI_Y, 440 incli_y, ADIS16201_SCAN_INCLI_Y,
442 IIO_ST('s', 14, 16, 0), 0), 441 IIO_ST('s', 14, 16, 0), 0),
443 IIO_CHAN_SOFT_TIMESTAMP(7) 442 IIO_CHAN_SOFT_TIMESTAMP(7)
diff --git a/drivers/staging/iio/accel/adis16203_core.c b/drivers/staging/iio/accel/adis16203_core.c
index 5bf944b9ae8..bdc44feaa12 100644
--- a/drivers/staging/iio/accel/adis16203_core.c
+++ b/drivers/staging/iio/accel/adis16203_core.c
@@ -329,8 +329,7 @@ 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 IIO_CHAN_INFO_SCALE_SEPARATE: 332 case IIO_CHAN_INFO_SCALE:
333 case IIO_CHAN_INFO_SCALE_SHARED:
334 switch (chan->type) { 333 switch (chan->type) {
335 case IIO_VOLTAGE: 334 case IIO_VOLTAGE:
336 *val = 0; 335 *val = 0;
@@ -350,10 +349,10 @@ static int adis16203_read_raw(struct iio_dev *indio_dev,
350 default: 349 default:
351 return -EINVAL; 350 return -EINVAL;
352 } 351 }
353 case IIO_CHAN_INFO_OFFSET_SEPARATE: 352 case IIO_CHAN_INFO_OFFSET:
354 *val = 25; 353 *val = 25;
355 return IIO_VAL_INT; 354 return IIO_VAL_INT;
356 case IIO_CHAN_INFO_CALIBBIAS_SEPARATE: 355 case IIO_CHAN_INFO_CALIBBIAS:
357 bits = 14; 356 bits = 14;
358 mutex_lock(&indio_dev->mlock); 357 mutex_lock(&indio_dev->mlock);
359 addr = adis16203_addresses[chan->address][1]; 358 addr = adis16203_addresses[chan->address][1];
@@ -374,26 +373,26 @@ static int adis16203_read_raw(struct iio_dev *indio_dev,
374 373
375static struct iio_chan_spec adis16203_channels[] = { 374static struct iio_chan_spec adis16203_channels[] = {
376 IIO_CHAN(IIO_VOLTAGE, 0, 1, 0, "supply", 0, 0, 375 IIO_CHAN(IIO_VOLTAGE, 0, 1, 0, "supply", 0, 0,
377 (1 << IIO_CHAN_INFO_SCALE_SEPARATE), 376 IIO_CHAN_INFO_SCALE_SEPARATE_BIT,
378 in_supply, ADIS16203_SCAN_SUPPLY, 377 in_supply, ADIS16203_SCAN_SUPPLY,
379 IIO_ST('u', 12, 16, 0), 0), 378 IIO_ST('u', 12, 16, 0), 0),
380 IIO_CHAN(IIO_VOLTAGE, 0, 1, 0, NULL, 1, 0, 379 IIO_CHAN(IIO_VOLTAGE, 0, 1, 0, NULL, 1, 0,
381 (1 << IIO_CHAN_INFO_SCALE_SEPARATE), 380 IIO_CHAN_INFO_SCALE_SEPARATE_BIT,
382 in_aux, ADIS16203_SCAN_AUX_ADC, 381 in_aux, ADIS16203_SCAN_AUX_ADC,
383 IIO_ST('u', 12, 16, 0), 0), 382 IIO_ST('u', 12, 16, 0), 0),
384 IIO_CHAN(IIO_INCLI, 1, 0, 0, NULL, 0, IIO_MOD_X, 383 IIO_CHAN(IIO_INCLI, 1, 0, 0, NULL, 0, IIO_MOD_X,
385 (1 << IIO_CHAN_INFO_SCALE_SHARED) | 384 IIO_CHAN_INFO_SCALE_SHARED_BIT |
386 (1 << IIO_CHAN_INFO_CALIBBIAS_SEPARATE), 385 IIO_CHAN_INFO_CALIBBIAS_SEPARATE_BIT,
387 incli_x, ADIS16203_SCAN_INCLI_X, 386 incli_x, ADIS16203_SCAN_INCLI_X,
388 IIO_ST('s', 14, 16, 0), 0), 387 IIO_ST('s', 14, 16, 0), 0),
389 /* Fixme: Not what it appears to be - see data sheet */ 388 /* Fixme: Not what it appears to be - see data sheet */
390 IIO_CHAN(IIO_INCLI, 1, 0, 0, NULL, 0, IIO_MOD_Y, 389 IIO_CHAN(IIO_INCLI, 1, 0, 0, NULL, 0, IIO_MOD_Y,
391 (1 << IIO_CHAN_INFO_SCALE_SHARED), 390 IIO_CHAN_INFO_SCALE_SHARED_BIT,
392 incli_y, ADIS16203_SCAN_INCLI_Y, 391 incli_y, ADIS16203_SCAN_INCLI_Y,
393 IIO_ST('s', 14, 16, 0), 0), 392 IIO_ST('s', 14, 16, 0), 0),
394 IIO_CHAN(IIO_TEMP, 0, 1, 0, NULL, 0, 0, 393 IIO_CHAN(IIO_TEMP, 0, 1, 0, NULL, 0, 0,
395 (1 << IIO_CHAN_INFO_SCALE_SEPARATE) | 394 IIO_CHAN_INFO_SCALE_SEPARATE_BIT |
396 (1 << IIO_CHAN_INFO_OFFSET_SEPARATE), 395 IIO_CHAN_INFO_OFFSET_SEPARATE_BIT,
397 temp, ADIS16203_SCAN_TEMP, 396 temp, ADIS16203_SCAN_TEMP,
398 IIO_ST('u', 12, 16, 0), 0), 397 IIO_ST('u', 12, 16, 0), 0),
399 IIO_CHAN_SOFT_TIMESTAMP(5), 398 IIO_CHAN_SOFT_TIMESTAMP(5),
diff --git a/drivers/staging/iio/accel/adis16204_core.c b/drivers/staging/iio/accel/adis16204_core.c
index 068f543c938..96d8c7b3722 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 IIO_CHAN_INFO_SCALE_SEPARATE: 369 case IIO_CHAN_INFO_SCALE:
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 IIO_CHAN_INFO_OFFSET_SEPARATE: 393 case IIO_CHAN_INFO_OFFSET:
394 *val = 25; 394 *val = 25;
395 return IIO_VAL_INT; 395 return IIO_VAL_INT;
396 case IIO_CHAN_INFO_CALIBBIAS_SEPARATE: 396 case IIO_CHAN_INFO_CALIBBIAS:
397 case IIO_CHAN_INFO_PEAK_SEPARATE: 397 case IIO_CHAN_INFO_PEAK:
398 if (mask == IIO_CHAN_INFO_CALIBBIAS_SEPARATE) { 398 if (mask == IIO_CHAN_INFO_CALIBBIAS) {
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 IIO_CHAN_INFO_CALIBBIAS_SEPARATE: 431 case IIO_CHAN_INFO_CALIBBIAS:
432 switch (chan->type) { 432 switch (chan->type) {
433 case IIO_ACCEL: 433 case IIO_ACCEL:
434 bits = 12; 434 bits = 12;
@@ -445,28 +445,28 @@ static int adis16204_write_raw(struct iio_dev *indio_dev,
445 445
446static struct iio_chan_spec adis16204_channels[] = { 446static struct iio_chan_spec adis16204_channels[] = {
447 IIO_CHAN(IIO_VOLTAGE, 0, 0, 0, "supply", 0, 0, 447 IIO_CHAN(IIO_VOLTAGE, 0, 0, 0, "supply", 0, 0,
448 (1 << IIO_CHAN_INFO_SCALE_SEPARATE), 448 IIO_CHAN_INFO_SCALE_SEPARATE_BIT,
449 in_supply, ADIS16204_SCAN_SUPPLY, 449 in_supply, ADIS16204_SCAN_SUPPLY,
450 IIO_ST('u', 12, 16, 0), 0), 450 IIO_ST('u', 12, 16, 0), 0),
451 IIO_CHAN(IIO_VOLTAGE, 0, 1, 0, NULL, 1, 0, 451 IIO_CHAN(IIO_VOLTAGE, 0, 1, 0, NULL, 1, 0,
452 (1 << IIO_CHAN_INFO_SCALE_SEPARATE), 452 IIO_CHAN_INFO_SCALE_SEPARATE_BIT,
453 in_aux, ADIS16204_SCAN_AUX_ADC, 453 in_aux, ADIS16204_SCAN_AUX_ADC,
454 IIO_ST('u', 12, 16, 0), 0), 454 IIO_ST('u', 12, 16, 0), 0),
455 IIO_CHAN(IIO_TEMP, 0, 1, 0, NULL, 0, 0, 455 IIO_CHAN(IIO_TEMP, 0, 1, 0, NULL, 0, 0,
456 (1 << IIO_CHAN_INFO_SCALE_SEPARATE) | 456 IIO_CHAN_INFO_SCALE_SEPARATE_BIT |
457 (1 << IIO_CHAN_INFO_OFFSET_SEPARATE), 457 IIO_CHAN_INFO_OFFSET_SEPARATE_BIT,
458 temp, ADIS16204_SCAN_TEMP, 458 temp, ADIS16204_SCAN_TEMP,
459 IIO_ST('u', 12, 16, 0), 0), 459 IIO_ST('u', 12, 16, 0), 0),
460 IIO_CHAN(IIO_ACCEL, 1, 0, 0, NULL, 0, IIO_MOD_X, 460 IIO_CHAN(IIO_ACCEL, 1, 0, 0, NULL, 0, IIO_MOD_X,
461 (1 << IIO_CHAN_INFO_SCALE_SEPARATE) | 461 IIO_CHAN_INFO_SCALE_SEPARATE_BIT |
462 (1 << IIO_CHAN_INFO_CALIBBIAS_SEPARATE) | 462 IIO_CHAN_INFO_CALIBBIAS_SEPARATE_BIT |
463 (1 << IIO_CHAN_INFO_PEAK_SEPARATE), 463 IIO_CHAN_INFO_PEAK_SEPARATE_BIT,
464 accel_x, ADIS16204_SCAN_ACC_X, 464 accel_x, ADIS16204_SCAN_ACC_X,
465 IIO_ST('s', 14, 16, 0), 0), 465 IIO_ST('s', 14, 16, 0), 0),
466 IIO_CHAN(IIO_ACCEL, 1, 0, 0, NULL, 0, IIO_MOD_Y, 466 IIO_CHAN(IIO_ACCEL, 1, 0, 0, NULL, 0, IIO_MOD_Y,
467 (1 << IIO_CHAN_INFO_SCALE_SEPARATE) | 467 IIO_CHAN_INFO_SCALE_SEPARATE_BIT |
468 (1 << IIO_CHAN_INFO_CALIBBIAS_SEPARATE) | 468 IIO_CHAN_INFO_CALIBBIAS_SEPARATE_BIT |
469 (1 << IIO_CHAN_INFO_PEAK_SEPARATE), 469 IIO_CHAN_INFO_PEAK_SEPARATE_BIT,
470 accel_y, ADIS16204_SCAN_ACC_Y, 470 accel_y, ADIS16204_SCAN_ACC_Y,
471 IIO_ST('s', 14, 16, 0), 0), 471 IIO_ST('s', 14, 16, 0), 0),
472 IIO_CHAN_SOFT_TIMESTAMP(5), 472 IIO_CHAN_SOFT_TIMESTAMP(5),
diff --git a/drivers/staging/iio/accel/adis16209_core.c b/drivers/staging/iio/accel/adis16209_core.c
index 57540f1058a..62e6bd8101c 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 IIO_CHAN_INFO_CALIBBIAS_SEPARATE: 307 case IIO_CHAN_INFO_CALIBBIAS:
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,7 @@ 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 IIO_CHAN_INFO_SCALE_SEPARATE: 358 case IIO_CHAN_INFO_SCALE:
359 case IIO_CHAN_INFO_SCALE_SHARED:
360 switch (chan->type) { 359 switch (chan->type) {
361 case IIO_VOLTAGE: 360 case IIO_VOLTAGE:
362 *val = 0; 361 *val = 0;
@@ -381,10 +380,10 @@ static int adis16209_read_raw(struct iio_dev *indio_dev,
381 return -EINVAL; 380 return -EINVAL;
382 } 381 }
383 break; 382 break;
384 case IIO_CHAN_INFO_OFFSET_SEPARATE: 383 case IIO_CHAN_INFO_OFFSET:
385 *val = 25; 384 *val = 25;
386 return IIO_VAL_INT; 385 return IIO_VAL_INT;
387 case IIO_CHAN_INFO_CALIBBIAS_SEPARATE: 386 case IIO_CHAN_INFO_CALIBBIAS:
388 switch (chan->type) { 387 switch (chan->type) {
389 case IIO_ACCEL: 388 case IIO_ACCEL:
390 bits = 14; 389 bits = 14;
@@ -410,34 +409,34 @@ static int adis16209_read_raw(struct iio_dev *indio_dev,
410 409
411static struct iio_chan_spec adis16209_channels[] = { 410static struct iio_chan_spec adis16209_channels[] = {
412 IIO_CHAN(IIO_VOLTAGE, 0, 1, 0, NULL, 0, 0, 411 IIO_CHAN(IIO_VOLTAGE, 0, 1, 0, NULL, 0, 0,
413 (1 << IIO_CHAN_INFO_SCALE_SEPARATE), 412 IIO_CHAN_INFO_SCALE_SEPARATE_BIT,
414 in_supply, ADIS16209_SCAN_SUPPLY, 413 in_supply, ADIS16209_SCAN_SUPPLY,
415 IIO_ST('u', 14, 16, 0), 0), 414 IIO_ST('u', 14, 16, 0), 0),
416 IIO_CHAN(IIO_TEMP, 0, 1, 0, NULL, 0, 0, 415 IIO_CHAN(IIO_TEMP, 0, 1, 0, NULL, 0, 0,
417 (1 << IIO_CHAN_INFO_SCALE_SEPARATE) | 416 IIO_CHAN_INFO_SCALE_SEPARATE_BIT |
418 (1 << IIO_CHAN_INFO_OFFSET_SEPARATE), 417 IIO_CHAN_INFO_OFFSET_SEPARATE_BIT,
419 temp, ADIS16209_SCAN_TEMP, 418 temp, ADIS16209_SCAN_TEMP,
420 IIO_ST('u', 12, 16, 0), 0), 419 IIO_ST('u', 12, 16, 0), 0),
421 IIO_CHAN(IIO_ACCEL, 1, 0, 0, NULL, 0, IIO_MOD_X, 420 IIO_CHAN(IIO_ACCEL, 1, 0, 0, NULL, 0, IIO_MOD_X,
422 (1 << IIO_CHAN_INFO_SCALE_SHARED) | 421 IIO_CHAN_INFO_SCALE_SHARED_BIT |
423 (1 << IIO_CHAN_INFO_CALIBBIAS_SEPARATE), 422 IIO_CHAN_INFO_CALIBBIAS_SEPARATE_BIT,
424 accel_x, ADIS16209_SCAN_ACC_X, 423 accel_x, ADIS16209_SCAN_ACC_X,
425 IIO_ST('s', 14, 16, 0), 0), 424 IIO_ST('s', 14, 16, 0), 0),
426 IIO_CHAN(IIO_ACCEL, 1, 0, 0, NULL, 0, IIO_MOD_Y, 425 IIO_CHAN(IIO_ACCEL, 1, 0, 0, NULL, 0, IIO_MOD_Y,
427 (1 << IIO_CHAN_INFO_SCALE_SHARED) | 426 IIO_CHAN_INFO_SCALE_SHARED_BIT |
428 (1 << IIO_CHAN_INFO_CALIBBIAS_SEPARATE), 427 IIO_CHAN_INFO_CALIBBIAS_SEPARATE_BIT,
429 accel_y, ADIS16209_SCAN_ACC_Y, 428 accel_y, ADIS16209_SCAN_ACC_Y,
430 IIO_ST('s', 14, 16, 0), 0), 429 IIO_ST('s', 14, 16, 0), 0),
431 IIO_CHAN(IIO_VOLTAGE, 0, 1, 0, NULL, 1, 0, 430 IIO_CHAN(IIO_VOLTAGE, 0, 1, 0, NULL, 1, 0,
432 (1 << IIO_CHAN_INFO_SCALE_SEPARATE), 431 IIO_CHAN_INFO_SCALE_SEPARATE_BIT,
433 in_aux, ADIS16209_SCAN_AUX_ADC, 432 in_aux, ADIS16209_SCAN_AUX_ADC,
434 IIO_ST('u', 12, 16, 0), 0), 433 IIO_ST('u', 12, 16, 0), 0),
435 IIO_CHAN(IIO_INCLI, 1, 0, 0, NULL, 0, IIO_MOD_X, 434 IIO_CHAN(IIO_INCLI, 1, 0, 0, NULL, 0, IIO_MOD_X,
436 (1 << IIO_CHAN_INFO_SCALE_SHARED), 435 IIO_CHAN_INFO_SCALE_SHARED_BIT,
437 incli_x, ADIS16209_SCAN_INCLI_X, 436 incli_x, ADIS16209_SCAN_INCLI_X,
438 IIO_ST('s', 14, 16, 0), 0), 437 IIO_ST('s', 14, 16, 0), 0),
439 IIO_CHAN(IIO_INCLI, 1, 0, 0, NULL, 0, IIO_MOD_Y, 438 IIO_CHAN(IIO_INCLI, 1, 0, 0, NULL, 0, IIO_MOD_Y,
440 (1 << IIO_CHAN_INFO_SCALE_SHARED), 439 IIO_CHAN_INFO_SCALE_SHARED_BIT,
441 incli_y, ADIS16209_SCAN_INCLI_Y, 440 incli_y, ADIS16209_SCAN_INCLI_Y,
442 IIO_ST('s', 14, 16, 0), 0), 441 IIO_ST('s', 14, 16, 0), 0),
443 IIO_CHAN(IIO_ROT, 0, 1, 0, NULL, 0, IIO_MOD_X, 442 IIO_CHAN(IIO_ROT, 0, 1, 0, NULL, 0, IIO_MOD_X,
diff --git a/drivers/staging/iio/accel/adis16220_core.c b/drivers/staging/iio/accel/adis16220_core.c
index 284f81078d4..ca18f729b5c 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 IIO_CHAN_INFO_OFFSET_SEPARATE: 513 case IIO_CHAN_INFO_OFFSET:
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 IIO_CHAN_INFO_PEAK_SEPARATE: 520 case IIO_CHAN_INFO_PEAK:
521 addrind = 2; 521 addrind = 2;
522 break; 522 break;
523 case IIO_CHAN_INFO_SCALE_SEPARATE: 523 case IIO_CHAN_INFO_SCALE:
524 *val = 0; 524 *val = 0;
525 switch (chan->type) { 525 switch (chan->type) {
526 case IIO_TEMP: 526 case IIO_TEMP:
@@ -575,27 +575,27 @@ static const struct iio_chan_spec adis16220_channels[] = {
575 .indexed = 1, 575 .indexed = 1,
576 .channel = 0, 576 .channel = 0,
577 .extend_name = "supply", 577 .extend_name = "supply",
578 .info_mask = (1 << IIO_CHAN_INFO_SCALE_SEPARATE), 578 .info_mask = IIO_CHAN_INFO_SCALE_SEPARATE_BIT,
579 .address = in_supply, 579 .address = in_supply,
580 }, { 580 }, {
581 .type = IIO_ACCEL, 581 .type = IIO_ACCEL,
582 .info_mask = (1 << IIO_CHAN_INFO_OFFSET_SEPARATE) | 582 .info_mask = IIO_CHAN_INFO_OFFSET_SEPARATE_BIT |
583 (1 << IIO_CHAN_INFO_SCALE_SEPARATE) | 583 IIO_CHAN_INFO_SCALE_SEPARATE_BIT |
584 (1 << IIO_CHAN_INFO_PEAK_SEPARATE), 584 IIO_CHAN_INFO_PEAK_SEPARATE_BIT,
585 .address = accel, 585 .address = accel,
586 }, { 586 }, {
587 .type = IIO_TEMP, 587 .type = IIO_TEMP,
588 .indexed = 1, 588 .indexed = 1,
589 .channel = 0, 589 .channel = 0,
590 .info_mask = (1 << IIO_CHAN_INFO_OFFSET_SEPARATE) | 590 .info_mask = IIO_CHAN_INFO_OFFSET_SEPARATE_BIT |
591 (1 << IIO_CHAN_INFO_SCALE_SEPARATE), 591 IIO_CHAN_INFO_SCALE_SEPARATE_BIT,
592 .address = temp, 592 .address = temp,
593 }, { 593 }, {
594 .type = IIO_VOLTAGE, 594 .type = IIO_VOLTAGE,
595 .indexed = 1, 595 .indexed = 1,
596 .channel = 1, 596 .channel = 1,
597 .info_mask = (1 << IIO_CHAN_INFO_OFFSET_SEPARATE) | 597 .info_mask = IIO_CHAN_INFO_OFFSET_SEPARATE_BIT |
598 (1 << IIO_CHAN_INFO_SCALE_SEPARATE), 598 IIO_CHAN_INFO_SCALE_SEPARATE_BIT,
599 .address = in_1, 599 .address = in_1,
600 }, { 600 }, {
601 .type = IIO_VOLTAGE, 601 .type = IIO_VOLTAGE,
diff --git a/drivers/staging/iio/accel/adis16240_core.c b/drivers/staging/iio/accel/adis16240_core.c
index 482a762ef1b..134839360d3 100644
--- a/drivers/staging/iio/accel/adis16240_core.c
+++ b/drivers/staging/iio/accel/adis16240_core.c
@@ -389,8 +389,7 @@ 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 IIO_CHAN_INFO_SCALE_SEPARATE: 392 case IIO_CHAN_INFO_SCALE:
393 case IIO_CHAN_INFO_SCALE_SHARED:
394 switch (chan->type) { 393 switch (chan->type) {
395 case IIO_VOLTAGE: 394 case IIO_VOLTAGE:
396 *val = 0; 395 *val = 0;
@@ -411,14 +410,14 @@ static int adis16240_read_raw(struct iio_dev *indio_dev,
411 return -EINVAL; 410 return -EINVAL;
412 } 411 }
413 break; 412 break;
414 case IIO_CHAN_INFO_PEAK_SCALE_SHARED: 413 case IIO_CHAN_INFO_PEAK_SCALE:
415 *val = 6; 414 *val = 6;
416 *val2 = 629295; 415 *val2 = 629295;
417 return IIO_VAL_INT_PLUS_MICRO; 416 return IIO_VAL_INT_PLUS_MICRO;
418 case IIO_CHAN_INFO_OFFSET_SEPARATE: 417 case IIO_CHAN_INFO_OFFSET:
419 *val = 25; 418 *val = 25;
420 return IIO_VAL_INT; 419 return IIO_VAL_INT;
421 case IIO_CHAN_INFO_CALIBBIAS_SEPARATE: 420 case IIO_CHAN_INFO_CALIBBIAS:
422 bits = 10; 421 bits = 10;
423 mutex_lock(&indio_dev->mlock); 422 mutex_lock(&indio_dev->mlock);
424 addr = adis16240_addresses[chan->address][1]; 423 addr = adis16240_addresses[chan->address][1];
@@ -432,7 +431,7 @@ static int adis16240_read_raw(struct iio_dev *indio_dev,
432 *val = val16; 431 *val = val16;
433 mutex_unlock(&indio_dev->mlock); 432 mutex_unlock(&indio_dev->mlock);
434 return IIO_VAL_INT; 433 return IIO_VAL_INT;
435 case IIO_CHAN_INFO_PEAK_SEPARATE: 434 case IIO_CHAN_INFO_PEAK:
436 bits = 10; 435 bits = 10;
437 mutex_lock(&indio_dev->mlock); 436 mutex_lock(&indio_dev->mlock);
438 addr = adis16240_addresses[chan->address][2]; 437 addr = adis16240_addresses[chan->address][2];
@@ -460,7 +459,7 @@ static int adis16240_write_raw(struct iio_dev *indio_dev,
460 s16 val16; 459 s16 val16;
461 u8 addr; 460 u8 addr;
462 switch (mask) { 461 switch (mask) {
463 case IIO_CHAN_INFO_CALIBBIAS_SEPARATE: 462 case IIO_CHAN_INFO_CALIBBIAS:
464 val16 = val & ((1 << bits) - 1); 463 val16 = val & ((1 << bits) - 1);
465 addr = adis16240_addresses[chan->address][1]; 464 addr = adis16240_addresses[chan->address][1];
466 return adis16240_spi_write_reg_16(indio_dev, addr, val16); 465 return adis16240_spi_write_reg_16(indio_dev, addr, val16);
@@ -470,7 +469,7 @@ static int adis16240_write_raw(struct iio_dev *indio_dev,
470 469
471static struct iio_chan_spec adis16240_channels[] = { 470static struct iio_chan_spec adis16240_channels[] = {
472 IIO_CHAN(IIO_VOLTAGE, 0, 1, 0, "supply", 0, 0, 471 IIO_CHAN(IIO_VOLTAGE, 0, 1, 0, "supply", 0, 0,
473 (1 << IIO_CHAN_INFO_SCALE_SEPARATE), 472 IIO_CHAN_INFO_SCALE_SEPARATE_BIT,
474 in_supply, ADIS16240_SCAN_SUPPLY, 473 in_supply, ADIS16240_SCAN_SUPPLY,
475 IIO_ST('u', 10, 16, 0), 0), 474 IIO_ST('u', 10, 16, 0), 0),
476 IIO_CHAN(IIO_VOLTAGE, 0, 1, 0, NULL, 1, 0, 475 IIO_CHAN(IIO_VOLTAGE, 0, 1, 0, NULL, 1, 0,
@@ -478,22 +477,22 @@ static struct iio_chan_spec adis16240_channels[] = {
478 in_aux, ADIS16240_SCAN_AUX_ADC, 477 in_aux, ADIS16240_SCAN_AUX_ADC,
479 IIO_ST('u', 10, 16, 0), 0), 478 IIO_ST('u', 10, 16, 0), 0),
480 IIO_CHAN(IIO_ACCEL, 1, 0, 0, NULL, 0, IIO_MOD_X, 479 IIO_CHAN(IIO_ACCEL, 1, 0, 0, NULL, 0, IIO_MOD_X,
481 (1 << IIO_CHAN_INFO_SCALE_SHARED) | 480 IIO_CHAN_INFO_SCALE_SHARED_BIT |
482 (1 << IIO_CHAN_INFO_CALIBBIAS_SEPARATE), 481 IIO_CHAN_INFO_CALIBBIAS_SEPARATE_BIT,
483 accel_x, ADIS16240_SCAN_ACC_X, 482 accel_x, ADIS16240_SCAN_ACC_X,
484 IIO_ST('s', 10, 16, 0), 0), 483 IIO_ST('s', 10, 16, 0), 0),
485 IIO_CHAN(IIO_ACCEL, 1, 0, 0, NULL, 0, IIO_MOD_Y, 484 IIO_CHAN(IIO_ACCEL, 1, 0, 0, NULL, 0, IIO_MOD_Y,
486 (1 << IIO_CHAN_INFO_SCALE_SHARED) | 485 IIO_CHAN_INFO_SCALE_SHARED_BIT |
487 (1 << IIO_CHAN_INFO_CALIBBIAS_SEPARATE), 486 IIO_CHAN_INFO_CALIBBIAS_SEPARATE_BIT,
488 accel_y, ADIS16240_SCAN_ACC_Y, 487 accel_y, ADIS16240_SCAN_ACC_Y,
489 IIO_ST('s', 10, 16, 0), 0), 488 IIO_ST('s', 10, 16, 0), 0),
490 IIO_CHAN(IIO_ACCEL, 1, 0, 0, NULL, 0, IIO_MOD_Z, 489 IIO_CHAN(IIO_ACCEL, 1, 0, 0, NULL, 0, IIO_MOD_Z,
491 (1 << IIO_CHAN_INFO_SCALE_SHARED) | 490 IIO_CHAN_INFO_SCALE_SHARED_BIT |
492 (1 << IIO_CHAN_INFO_CALIBBIAS_SEPARATE), 491 IIO_CHAN_INFO_CALIBBIAS_SEPARATE_BIT,
493 accel_z, ADIS16240_SCAN_ACC_Z, 492 accel_z, ADIS16240_SCAN_ACC_Z,
494 IIO_ST('s', 10, 16, 0), 0), 493 IIO_ST('s', 10, 16, 0), 0),
495 IIO_CHAN(IIO_TEMP, 0, 1, 0, NULL, 0, 0, 494 IIO_CHAN(IIO_TEMP, 0, 1, 0, NULL, 0, 0,
496 (1 << IIO_CHAN_INFO_SCALE_SEPARATE), 495 IIO_CHAN_INFO_SCALE_SEPARATE_BIT,
497 temp, ADIS16240_SCAN_TEMP, 496 temp, ADIS16240_SCAN_TEMP,
498 IIO_ST('u', 10, 16, 0), 0), 497 IIO_ST('u', 10, 16, 0), 0),
499 IIO_CHAN_SOFT_TIMESTAMP(6) 498 IIO_CHAN_SOFT_TIMESTAMP(6)
diff --git a/drivers/staging/iio/accel/kxsd9.c b/drivers/staging/iio/accel/kxsd9.c
index 0ea0b5ccd59..abb6071e1c5 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 == IIO_CHAN_INFO_SCALE_SHARED) { 143 if (mask == IIO_CHAN_INFO_SCALE) {
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 IIO_CHAN_INFO_SCALE_SHARED: 167 case IIO_CHAN_INFO_SCALE:
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;
@@ -181,7 +181,7 @@ error_ret:
181 .type = IIO_ACCEL, \ 181 .type = IIO_ACCEL, \
182 .modified = 1, \ 182 .modified = 1, \
183 .channel2 = IIO_MOD_##axis, \ 183 .channel2 = IIO_MOD_##axis, \
184 .info_mask = 1 << IIO_CHAN_INFO_SCALE_SHARED, \ 184 .info_mask = IIO_CHAN_INFO_SCALE_SHARED_BIT, \
185 .address = KXSD9_REG_##axis, \ 185 .address = KXSD9_REG_##axis, \
186 } 186 }
187 187
diff --git a/drivers/staging/iio/accel/lis3l02dq_core.c b/drivers/staging/iio/accel/lis3l02dq_core.c
index d7706ebe809..6d715a6e420 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 IIO_CHAN_INFO_CALIBBIAS_SEPARATE: 230 case IIO_CHAN_INFO_CALIBBIAS:
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 IIO_CHAN_INFO_CALIBSCALE_SEPARATE: 237 case IIO_CHAN_INFO_CALIBSCALE:
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 IIO_CHAN_INFO_SCALE_SHARED: 275 case IIO_CHAN_INFO_SCALE:
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 IIO_CHAN_INFO_CALIBSCALE_SEPARATE: 279 case IIO_CHAN_INFO_CALIBSCALE:
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 IIO_CHAN_INFO_CALIBBIAS_SEPARATE: 288 case IIO_CHAN_INFO_CALIBBIAS:
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 */
@@ -516,9 +516,9 @@ static irqreturn_t lis3l02dq_event_handler(int irq, void *private)
516} 516}
517 517
518#define LIS3L02DQ_INFO_MASK \ 518#define LIS3L02DQ_INFO_MASK \
519 ((1 << IIO_CHAN_INFO_SCALE_SHARED) | \ 519 (IIO_CHAN_INFO_SCALE_SHARED_BIT | \
520 (1 << IIO_CHAN_INFO_CALIBSCALE_SEPARATE) | \ 520 IIO_CHAN_INFO_CALIBSCALE_SEPARATE_BIT | \
521 (1 << IIO_CHAN_INFO_CALIBBIAS_SEPARATE)) 521 IIO_CHAN_INFO_CALIBBIAS_SEPARATE_BIT)
522 522
523#define LIS3L02DQ_EVENT_MASK \ 523#define LIS3L02DQ_EVENT_MASK \
524 (IIO_EV_BIT(IIO_EV_TYPE_THRESH, IIO_EV_DIR_RISING) | \ 524 (IIO_EV_BIT(IIO_EV_TYPE_THRESH, IIO_EV_DIR_RISING) | \
diff --git a/drivers/staging/iio/accel/sca3000_core.c b/drivers/staging/iio/accel/sca3000_core.c
index 1586963f565..021a08ffb6c 100644
--- a/drivers/staging/iio/accel/sca3000_core.c
+++ b/drivers/staging/iio/accel/sca3000_core.c
@@ -425,7 +425,7 @@ static IIO_DEVICE_ATTR(measurement_mode, S_IRUGO | S_IWUSR,
425static IIO_DEVICE_ATTR(revision, S_IRUGO, sca3000_show_rev, NULL, 0); 425static IIO_DEVICE_ATTR(revision, S_IRUGO, sca3000_show_rev, NULL, 0);
426 426
427#define SCA3000_INFO_MASK \ 427#define SCA3000_INFO_MASK \
428 (1 << IIO_CHAN_INFO_SCALE_SHARED) 428 IIO_CHAN_INFO_SCALE_SHARED_BIT
429#define SCA3000_EVENT_MASK \ 429#define SCA3000_EVENT_MASK \
430 (IIO_EV_BIT(IIO_EV_TYPE_MAG, IIO_EV_DIR_RISING)) 430 (IIO_EV_BIT(IIO_EV_TYPE_MAG, IIO_EV_DIR_RISING))
431 431
@@ -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 IIO_CHAN_INFO_SCALE_SHARED: 478 case IIO_CHAN_INFO_SCALE:
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 9416cedcddc..4e643de45f6 100644
--- a/drivers/staging/iio/adc/ad7192.c
+++ b/drivers/staging/iio/adc/ad7192.c
@@ -901,18 +901,20 @@ 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 IIO_CHAN_INFO_SCALE_SHARED: 904 case IIO_CHAN_INFO_SCALE:
905 mutex_lock(&indio_dev->mlock); 905 switch (chan->type) {
906 *val = st->scale_avail[AD7192_CONF_GAIN(st->conf)][0]; 906 case IIO_VOLTAGE:
907 *val2 = st->scale_avail[AD7192_CONF_GAIN(st->conf)][1]; 907 mutex_lock(&indio_dev->mlock);
908 mutex_unlock(&indio_dev->mlock); 908 *val = st->scale_avail[AD7192_CONF_GAIN(st->conf)][0];
909 909 *val2 = st->scale_avail[AD7192_CONF_GAIN(st->conf)][1];
910 return IIO_VAL_INT_PLUS_NANO; 910 mutex_unlock(&indio_dev->mlock);
911 911 return IIO_VAL_INT_PLUS_NANO;
912 case IIO_CHAN_INFO_SCALE_SEPARATE: 912 case IIO_TEMP:
913 *val = 1000; 913 *val = 1000;
914 914 return IIO_VAL_INT;
915 return IIO_VAL_INT; 915 default:
916 return -EINVAL;
917 }
916 } 918 }
917 919
918 return -EINVAL; 920 return -EINVAL;
@@ -935,7 +937,7 @@ static int ad7192_write_raw(struct iio_dev *indio_dev,
935 } 937 }
936 938
937 switch (mask) { 939 switch (mask) {
938 case IIO_CHAN_INFO_SCALE_SHARED: 940 case IIO_CHAN_INFO_SCALE:
939 ret = -EINVAL; 941 ret = -EINVAL;
940 for (i = 0; i < ARRAY_SIZE(st->scale_avail); i++) 942 for (i = 0; i < ARRAY_SIZE(st->scale_avail); i++)
941 if (val2 == st->scale_avail[i][1]) { 943 if (val2 == st->scale_avail[i][1]) {
@@ -992,7 +994,7 @@ static const struct iio_info ad7192_info = {
992 .extend_name = _name, \ 994 .extend_name = _name, \
993 .channel = _chan, \ 995 .channel = _chan, \
994 .channel2 = _chan2, \ 996 .channel2 = _chan2, \
995 .info_mask = (1 << IIO_CHAN_INFO_SCALE_SHARED), \ 997 .info_mask = IIO_CHAN_INFO_SCALE_SHARED_BIT, \
996 .address = _address, \ 998 .address = _address, \
997 .scan_index = _si, \ 999 .scan_index = _si, \
998 .scan_type = IIO_ST('s', 24, 32, 0)} 1000 .scan_type = IIO_ST('s', 24, 32, 0)}
@@ -1001,7 +1003,7 @@ static const struct iio_info ad7192_info = {
1001 { .type = IIO_VOLTAGE, \ 1003 { .type = IIO_VOLTAGE, \
1002 .indexed = 1, \ 1004 .indexed = 1, \
1003 .channel = _chan, \ 1005 .channel = _chan, \
1004 .info_mask = (1 << IIO_CHAN_INFO_SCALE_SHARED), \ 1006 .info_mask = IIO_CHAN_INFO_SCALE_SHARED_BIT, \
1005 .address = _address, \ 1007 .address = _address, \
1006 .scan_index = _si, \ 1008 .scan_index = _si, \
1007 .scan_type = IIO_ST('s', 24, 32, 0)} 1009 .scan_type = IIO_ST('s', 24, 32, 0)}
@@ -1010,7 +1012,7 @@ static const struct iio_info ad7192_info = {
1010 { .type = IIO_TEMP, \ 1012 { .type = IIO_TEMP, \
1011 .indexed = 1, \ 1013 .indexed = 1, \
1012 .channel = _chan, \ 1014 .channel = _chan, \
1013 .info_mask = (1 << IIO_CHAN_INFO_SCALE_SEPARATE), \ 1015 .info_mask = IIO_CHAN_INFO_SCALE_SEPARATE_BIT, \
1014 .address = _address, \ 1016 .address = _address, \
1015 .scan_index = _si, \ 1017 .scan_index = _si, \
1016 .scan_type = IIO_ST('s', 24, 32, 0)} 1018 .scan_type = IIO_ST('s', 24, 32, 0)}
diff --git a/drivers/staging/iio/adc/ad7280a.c b/drivers/staging/iio/adc/ad7280a.c
index 7fb60c5a80e..cd3397f95f8 100644
--- a/drivers/staging/iio/adc/ad7280a.c
+++ b/drivers/staging/iio/adc/ad7280a.c
@@ -508,7 +508,7 @@ static int ad7280_channel_init(struct ad7280_state *st)
508 } 508 }
509 st->channels[cnt].indexed = 1; 509 st->channels[cnt].indexed = 1;
510 st->channels[cnt].info_mask = 510 st->channels[cnt].info_mask =
511 (1 << IIO_CHAN_INFO_SCALE_SHARED); 511 IIO_CHAN_INFO_SCALE_SHARED_BIT;
512 st->channels[cnt].address = 512 st->channels[cnt].address =
513 AD7280A_DEVADDR(dev) << 8 | ch; 513 AD7280A_DEVADDR(dev) << 8 | ch;
514 st->channels[cnt].scan_index = cnt; 514 st->channels[cnt].scan_index = cnt;
@@ -524,7 +524,7 @@ static int ad7280_channel_init(struct ad7280_state *st)
524 st->channels[cnt].channel2 = dev * 6; 524 st->channels[cnt].channel2 = dev * 6;
525 st->channels[cnt].address = AD7280A_ALL_CELLS; 525 st->channels[cnt].address = AD7280A_ALL_CELLS;
526 st->channels[cnt].indexed = 1; 526 st->channels[cnt].indexed = 1;
527 st->channels[cnt].info_mask = (1 << IIO_CHAN_INFO_SCALE_SHARED); 527 st->channels[cnt].info_mask = IIO_CHAN_INFO_SCALE_SHARED_BIT;
528 st->channels[cnt].scan_index = cnt; 528 st->channels[cnt].scan_index = cnt;
529 st->channels[cnt].scan_type.sign = 'u'; 529 st->channels[cnt].scan_type.sign = 'u';
530 st->channels[cnt].scan_type.realbits = 32; 530 st->channels[cnt].scan_type.realbits = 32;
@@ -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 IIO_CHAN_INFO_SCALE_SHARED: 806 case IIO_CHAN_INFO_SCALE:
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 bedd91ad3fd..c4977a78b42 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 IIO_CHAN_INFO_AVERAGE_RAW_SEPARATE: 504 case IIO_CHAN_INFO_AVERAGE_RAW:
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,18 +510,24 @@ 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 IIO_CHAN_INFO_SCALE_SHARED: 513 case IIO_CHAN_INFO_SCALE:
514 scale_uv = (chip->int_vref_mv * 1000) >> AD7291_BITS; 514 switch (chan->type) {
515 *val = scale_uv / 1000; 515 case IIO_VOLTAGE:
516 *val2 = (scale_uv % 1000) * 1000; 516 scale_uv = (chip->int_vref_mv * 1000) >> AD7291_BITS;
517 return IIO_VAL_INT_PLUS_MICRO; 517 *val = scale_uv / 1000;
518 case IIO_CHAN_INFO_SCALE_SEPARATE: 518 *val2 = (scale_uv % 1000) * 1000;
519 /* 519 return IIO_VAL_INT_PLUS_MICRO;
520 * One LSB of the ADC corresponds to 0.25 deg C. 520 case IIO_TEMP:
521 * The temperature reading is in 12-bit twos complement format 521 /*
522 */ 522 * One LSB of the ADC corresponds to 0.25 deg C.
523 *val = 250; 523 * The temperature reading is in 12-bit twos
524 return IIO_VAL_INT; 524 * complement format
525 */
526 *val = 250;
527 return IIO_VAL_INT;
528 default:
529 return -EINVAL;
530 }
525 default: 531 default:
526 return -EINVAL; 532 return -EINVAL;
527 } 533 }
@@ -530,7 +536,7 @@ static int ad7291_read_raw(struct iio_dev *indio_dev,
530#define AD7291_VOLTAGE_CHAN(_chan) \ 536#define AD7291_VOLTAGE_CHAN(_chan) \
531{ \ 537{ \
532 .type = IIO_VOLTAGE, \ 538 .type = IIO_VOLTAGE, \
533 .info_mask = (1 << IIO_CHAN_INFO_SCALE_SHARED), \ 539 .info_mask = IIO_CHAN_INFO_SCALE_SHARED_BIT, \
534 .indexed = 1, \ 540 .indexed = 1, \
535 .channel = _chan, \ 541 .channel = _chan, \
536 .event_mask = IIO_EV_BIT(IIO_EV_TYPE_THRESH, IIO_EV_DIR_RISING)|\ 542 .event_mask = IIO_EV_BIT(IIO_EV_TYPE_THRESH, IIO_EV_DIR_RISING)|\
@@ -548,8 +554,8 @@ static const struct iio_chan_spec ad7291_channels[] = {
548 AD7291_VOLTAGE_CHAN(7), 554 AD7291_VOLTAGE_CHAN(7),
549 { 555 {
550 .type = IIO_TEMP, 556 .type = IIO_TEMP,
551 .info_mask = (1 << IIO_CHAN_INFO_AVERAGE_RAW_SEPARATE) | 557 .info_mask = IIO_CHAN_INFO_AVERAGE_RAW_SEPARATE_BIT |
552 (1 << IIO_CHAN_INFO_SCALE_SEPARATE), 558 IIO_CHAN_INFO_SCALE_SEPARATE_BIT,
553 .indexed = 1, 559 .indexed = 1,
554 .channel = 0, 560 .channel = 0,
555 .event_mask = 561 .event_mask =
diff --git a/drivers/staging/iio/adc/ad7298_core.c b/drivers/staging/iio/adc/ad7298_core.c
index 2e3b0d979fc..0be71dfcf11 100644
--- a/drivers/staging/iio/adc/ad7298_core.c
+++ b/drivers/staging/iio/adc/ad7298_core.c
@@ -24,31 +24,31 @@
24 24
25static struct iio_chan_spec ad7298_channels[] = { 25static struct iio_chan_spec ad7298_channels[] = {
26 IIO_CHAN(IIO_TEMP, 0, 1, 0, NULL, 0, 0, 26 IIO_CHAN(IIO_TEMP, 0, 1, 0, NULL, 0, 0,
27 (1 << IIO_CHAN_INFO_SCALE_SEPARATE), 27 IIO_CHAN_INFO_SCALE_SEPARATE_BIT,
28 9, AD7298_CH_TEMP, IIO_ST('s', 32, 32, 0), 0), 28 9, AD7298_CH_TEMP, IIO_ST('s', 32, 32, 0), 0),
29 IIO_CHAN(IIO_VOLTAGE, 0, 1, 0, NULL, 0, 0, 29 IIO_CHAN(IIO_VOLTAGE, 0, 1, 0, NULL, 0, 0,
30 (1 << IIO_CHAN_INFO_SCALE_SHARED), 30 IIO_CHAN_INFO_SCALE_SHARED_BIT,
31 0, 0, IIO_ST('u', 12, 16, 0), 0), 31 0, 0, IIO_ST('u', 12, 16, 0), 0),
32 IIO_CHAN(IIO_VOLTAGE, 0, 1, 0, NULL, 1, 0, 32 IIO_CHAN(IIO_VOLTAGE, 0, 1, 0, NULL, 1, 0,
33 (1 << IIO_CHAN_INFO_SCALE_SHARED), 33 IIO_CHAN_INFO_SCALE_SHARED_BIT,
34 1, 1, IIO_ST('u', 12, 16, 0), 0), 34 1, 1, IIO_ST('u', 12, 16, 0), 0),
35 IIO_CHAN(IIO_VOLTAGE, 0, 1, 0, NULL, 2, 0, 35 IIO_CHAN(IIO_VOLTAGE, 0, 1, 0, NULL, 2, 0,
36 (1 << IIO_CHAN_INFO_SCALE_SHARED), 36 IIO_CHAN_INFO_SCALE_SHARED_BIT,
37 2, 2, IIO_ST('u', 12, 16, 0), 0), 37 2, 2, IIO_ST('u', 12, 16, 0), 0),
38 IIO_CHAN(IIO_VOLTAGE, 0, 1, 0, NULL, 3, 0, 38 IIO_CHAN(IIO_VOLTAGE, 0, 1, 0, NULL, 3, 0,
39 (1 << IIO_CHAN_INFO_SCALE_SHARED), 39 IIO_CHAN_INFO_SCALE_SHARED_BIT,
40 3, 3, IIO_ST('u', 12, 16, 0), 0), 40 3, 3, IIO_ST('u', 12, 16, 0), 0),
41 IIO_CHAN(IIO_VOLTAGE, 0, 1, 0, NULL, 4, 0, 41 IIO_CHAN(IIO_VOLTAGE, 0, 1, 0, NULL, 4, 0,
42 (1 << IIO_CHAN_INFO_SCALE_SHARED), 42 IIO_CHAN_INFO_SCALE_SHARED_BIT,
43 4, 4, IIO_ST('u', 12, 16, 0), 0), 43 4, 4, IIO_ST('u', 12, 16, 0), 0),
44 IIO_CHAN(IIO_VOLTAGE, 0, 1, 0, NULL, 5, 0, 44 IIO_CHAN(IIO_VOLTAGE, 0, 1, 0, NULL, 5, 0,
45 (1 << IIO_CHAN_INFO_SCALE_SHARED), 45 IIO_CHAN_INFO_SCALE_SHARED_BIT,
46 5, 5, IIO_ST('u', 12, 16, 0), 0), 46 5, 5, IIO_ST('u', 12, 16, 0), 0),
47 IIO_CHAN(IIO_VOLTAGE, 0, 1, 0, NULL, 6, 0, 47 IIO_CHAN(IIO_VOLTAGE, 0, 1, 0, NULL, 6, 0,
48 (1 << IIO_CHAN_INFO_SCALE_SHARED), 48 IIO_CHAN_INFO_SCALE_SHARED_BIT,
49 6, 6, IIO_ST('u', 12, 16, 0), 0), 49 6, 6, IIO_ST('u', 12, 16, 0), 0),
50 IIO_CHAN(IIO_VOLTAGE, 0, 1, 0, NULL, 7, 0, 50 IIO_CHAN(IIO_VOLTAGE, 0, 1, 0, NULL, 7, 0,
51 (1 << IIO_CHAN_INFO_SCALE_SHARED), 51 IIO_CHAN_INFO_SCALE_SHARED_BIT,
52 7, 7, IIO_ST('u', 12, 16, 0), 0), 52 7, 7, IIO_ST('u', 12, 16, 0), 0),
53 IIO_CHAN_SOFT_TIMESTAMP(8), 53 IIO_CHAN_SOFT_TIMESTAMP(8),
54}; 54};
@@ -143,15 +143,20 @@ 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 IIO_CHAN_INFO_SCALE_SHARED: 146 case IIO_CHAN_INFO_SCALE:
147 scale_uv = (st->int_vref_mv * 1000) >> AD7298_BITS; 147 switch (chan->type) {
148 *val = scale_uv / 1000; 148 case IIO_VOLTAGE:
149 *val2 = (scale_uv % 1000) * 1000; 149 scale_uv = (st->int_vref_mv * 1000) >> AD7298_BITS;
150 return IIO_VAL_INT_PLUS_MICRO; 150 *val = scale_uv / 1000;
151 case IIO_CHAN_INFO_SCALE_SEPARATE: 151 *val2 = (scale_uv % 1000) * 1000;
152 *val = 1; 152 return IIO_VAL_INT_PLUS_MICRO;
153 *val2 = 0; 153 case IIO_TEMP:
154 return IIO_VAL_INT_PLUS_MICRO; 154 *val = 1;
155 *val2 = 0;
156 return IIO_VAL_INT_PLUS_MICRO;
157 default:
158 return -EINVAL;
159 }
155 } 160 }
156 return -EINVAL; 161 return -EINVAL;
157} 162}
diff --git a/drivers/staging/iio/adc/ad7476_core.c b/drivers/staging/iio/adc/ad7476_core.c
index 163a2547a6f..a06ae9eec93 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 IIO_CHAN_INFO_SCALE_SHARED: 59 case IIO_CHAN_INFO_SCALE:
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;
@@ -69,49 +69,49 @@ static int ad7476_read_raw(struct iio_dev *indio_dev,
69static const struct ad7476_chip_info ad7476_chip_info_tbl[] = { 69static const struct ad7476_chip_info ad7476_chip_info_tbl[] = {
70 [ID_AD7466] = { 70 [ID_AD7466] = {
71 .channel[0] = IIO_CHAN(IIO_VOLTAGE, 0, 1, 0, NULL, 0, 0, 71 .channel[0] = IIO_CHAN(IIO_VOLTAGE, 0, 1, 0, NULL, 0, 0,
72 (1 << IIO_CHAN_INFO_SCALE_SHARED), 72 IIO_CHAN_INFO_SCALE_SHARED_BIT,
73 0, 0, IIO_ST('u', 12, 16, 0), 0), 73 0, 0, IIO_ST('u', 12, 16, 0), 0),
74 .channel[1] = IIO_CHAN_SOFT_TIMESTAMP(1), 74 .channel[1] = IIO_CHAN_SOFT_TIMESTAMP(1),
75 }, 75 },
76 [ID_AD7467] = { 76 [ID_AD7467] = {
77 .channel[0] = IIO_CHAN(IIO_VOLTAGE, 0, 1, 0, NULL, 0, 0, 77 .channel[0] = IIO_CHAN(IIO_VOLTAGE, 0, 1, 0, NULL, 0, 0,
78 (1 << IIO_CHAN_INFO_SCALE_SHARED), 78 IIO_CHAN_INFO_SCALE_SHARED_BIT,
79 0, 0, IIO_ST('u', 10, 16, 2), 0), 79 0, 0, IIO_ST('u', 10, 16, 2), 0),
80 .channel[1] = IIO_CHAN_SOFT_TIMESTAMP(1), 80 .channel[1] = IIO_CHAN_SOFT_TIMESTAMP(1),
81 }, 81 },
82 [ID_AD7468] = { 82 [ID_AD7468] = {
83 .channel[0] = IIO_CHAN(IIO_VOLTAGE, 0, 1 , 0, NULL, 0, 0, 83 .channel[0] = IIO_CHAN(IIO_VOLTAGE, 0, 1 , 0, NULL, 0, 0,
84 (1 << IIO_CHAN_INFO_SCALE_SHARED), 84 IIO_CHAN_INFO_SCALE_SHARED_BIT,
85 0, 0, IIO_ST('u', 8, 16, 4), 0), 85 0, 0, IIO_ST('u', 8, 16, 4), 0),
86 .channel[1] = IIO_CHAN_SOFT_TIMESTAMP(1), 86 .channel[1] = IIO_CHAN_SOFT_TIMESTAMP(1),
87 }, 87 },
88 [ID_AD7475] = { 88 [ID_AD7475] = {
89 .channel[0] = IIO_CHAN(IIO_VOLTAGE, 0, 1, 0, NULL, 0, 0, 89 .channel[0] = IIO_CHAN(IIO_VOLTAGE, 0, 1, 0, NULL, 0, 0,
90 (1 << IIO_CHAN_INFO_SCALE_SHARED), 90 IIO_CHAN_INFO_SCALE_SHARED_BIT,
91 0, 0, IIO_ST('u', 12, 16, 0), 0), 91 0, 0, IIO_ST('u', 12, 16, 0), 0),
92 .channel[1] = IIO_CHAN_SOFT_TIMESTAMP(1), 92 .channel[1] = IIO_CHAN_SOFT_TIMESTAMP(1),
93 }, 93 },
94 [ID_AD7476] = { 94 [ID_AD7476] = {
95 .channel[0] = IIO_CHAN(IIO_VOLTAGE, 0, 1, 0, NULL, 0, 0, 95 .channel[0] = IIO_CHAN(IIO_VOLTAGE, 0, 1, 0, NULL, 0, 0,
96 (1 << IIO_CHAN_INFO_SCALE_SHARED), 96 IIO_CHAN_INFO_SCALE_SHARED_BIT,
97 0, 0, IIO_ST('u', 12, 16, 0), 0), 97 0, 0, IIO_ST('u', 12, 16, 0), 0),
98 .channel[1] = IIO_CHAN_SOFT_TIMESTAMP(1), 98 .channel[1] = IIO_CHAN_SOFT_TIMESTAMP(1),
99 }, 99 },
100 [ID_AD7477] = { 100 [ID_AD7477] = {
101 .channel[0] = IIO_CHAN(IIO_VOLTAGE, 0, 1, 0, NULL, 0, 0, 101 .channel[0] = IIO_CHAN(IIO_VOLTAGE, 0, 1, 0, NULL, 0, 0,
102 (1 << IIO_CHAN_INFO_SCALE_SHARED), 102 IIO_CHAN_INFO_SCALE_SHARED_BIT,
103 0, 0, IIO_ST('u', 10, 16, 2), 0), 103 0, 0, IIO_ST('u', 10, 16, 2), 0),
104 .channel[1] = IIO_CHAN_SOFT_TIMESTAMP(1), 104 .channel[1] = IIO_CHAN_SOFT_TIMESTAMP(1),
105 }, 105 },
106 [ID_AD7478] = { 106 [ID_AD7478] = {
107 .channel[0] = IIO_CHAN(IIO_VOLTAGE, 0, 1, 0, NULL, 0, 0, 107 .channel[0] = IIO_CHAN(IIO_VOLTAGE, 0, 1, 0, NULL, 0, 0,
108 (1 << IIO_CHAN_INFO_SCALE_SHARED), 108 IIO_CHAN_INFO_SCALE_SHARED_BIT,
109 0, 0, IIO_ST('u', 8, 16, 4), 0), 109 0, 0, IIO_ST('u', 8, 16, 4), 0),
110 .channel[1] = IIO_CHAN_SOFT_TIMESTAMP(1), 110 .channel[1] = IIO_CHAN_SOFT_TIMESTAMP(1),
111 }, 111 },
112 [ID_AD7495] = { 112 [ID_AD7495] = {
113 .channel[0] = IIO_CHAN(IIO_VOLTAGE, 0, 1, 0, NULL, 0, 0, 113 .channel[0] = IIO_CHAN(IIO_VOLTAGE, 0, 1, 0, NULL, 0, 0,
114 (1 << IIO_CHAN_INFO_SCALE_SHARED), 114 IIO_CHAN_INFO_SCALE_SHARED_BIT,
115 0, 0, IIO_ST('u', 12, 16, 0), 0), 115 0, 0, IIO_ST('u', 12, 16, 0), 0),
116 .channel[1] = IIO_CHAN_SOFT_TIMESTAMP(1), 116 .channel[1] = IIO_CHAN_SOFT_TIMESTAMP(1),
117 .int_vref_mv = 2500, 117 .int_vref_mv = 2500,
diff --git a/drivers/staging/iio/adc/ad7606_core.c b/drivers/staging/iio/adc/ad7606_core.c
index d58a0e3eee9..a8596b856a3 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 IIO_CHAN_INFO_SCALE_SHARED: 103 case IIO_CHAN_INFO_SCALE:
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 b06f9ad48b9..f5f7e76561f 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 IIO_CHAN_INFO_SCALE_SHARED: 117 case IIO_CHAN_INFO_SCALE:
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;
@@ -127,12 +127,12 @@ static int ad7780_read_raw(struct iio_dev *indio_dev,
127static const struct ad7780_chip_info ad7780_chip_info_tbl[] = { 127static const struct ad7780_chip_info ad7780_chip_info_tbl[] = {
128 [ID_AD7780] = { 128 [ID_AD7780] = {
129 .channel = IIO_CHAN(IIO_VOLTAGE, 0, 1, 0, NULL, 0, 0, 129 .channel = IIO_CHAN(IIO_VOLTAGE, 0, 1, 0, NULL, 0, 0,
130 (1 << IIO_CHAN_INFO_SCALE_SHARED), 130 IIO_CHAN_INFO_SCALE_SHARED_BIT,
131 0, 0, IIO_ST('s', 24, 32, 8), 0), 131 0, 0, IIO_ST('s', 24, 32, 8), 0),
132 }, 132 },
133 [ID_AD7781] = { 133 [ID_AD7781] = {
134 .channel = IIO_CHAN(IIO_VOLTAGE, 0, 1, 0, NULL, 0, 0, 134 .channel = IIO_CHAN(IIO_VOLTAGE, 0, 1, 0, NULL, 0, 0,
135 (1 << IIO_CHAN_INFO_SCALE_SHARED), 135 IIO_CHAN_INFO_SCALE_SHARED_BIT,
136 0, 0, IIO_ST('s', 20, 32, 12), 0), 136 0, 0, IIO_ST('s', 20, 32, 12), 0),
137 }, 137 },
138}; 138};
diff --git a/drivers/staging/iio/adc/ad7793.c b/drivers/staging/iio/adc/ad7793.c
index c3fdfedfc99..803c45ff84b 100644
--- a/drivers/staging/iio/adc/ad7793.c
+++ b/drivers/staging/iio/adc/ad7793.c
@@ -667,19 +667,21 @@ 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 IIO_CHAN_INFO_SCALE_SHARED: 670 case IIO_CHAN_INFO_SCALE:
671 *val = st->scale_avail[(st->conf >> 8) & 0x7][0];
672 *val2 = st->scale_avail[(st->conf >> 8) & 0x7][1];
673
674 return IIO_VAL_INT_PLUS_NANO;
675
676 case IIO_CHAN_INFO_SCALE_SEPARATE:
677 switch (chan->type) { 671 switch (chan->type) {
678 case IIO_VOLTAGE: 672 case IIO_VOLTAGE:
679 /* 1170mV / 2^23 * 6 */ 673 if (chan->differential) {
680 scale_uv = (1170ULL * 100000000ULL * 6ULL) 674 *val = st->
681 >> (chan->scan_type.realbits - 675 scale_avail[(st->conf >> 8) & 0x7][0];
682 (unipolar ? 0 : 1)); 676 *val2 = st->
677 scale_avail[(st->conf >> 8) & 0x7][1];
678 return IIO_VAL_INT_PLUS_NANO;
679 } else {
680 /* 1170mV / 2^23 * 6 */
681 scale_uv = (1170ULL * 100000000ULL * 6ULL)
682 >> (chan->scan_type.realbits -
683 (unipolar ? 0 : 1));
684 }
683 break; 685 break;
684 case IIO_TEMP: 686 case IIO_TEMP:
685 /* Always uses unity gain and internal ref */ 687 /* Always uses unity gain and internal ref */
@@ -716,7 +718,7 @@ static int ad7793_write_raw(struct iio_dev *indio_dev,
716 } 718 }
717 719
718 switch (mask) { 720 switch (mask) {
719 case IIO_CHAN_INFO_SCALE_SHARED: 721 case IIO_CHAN_INFO_SCALE:
720 ret = -EINVAL; 722 ret = -EINVAL;
721 for (i = 0; i < ARRAY_SIZE(st->scale_avail); i++) 723 for (i = 0; i < ARRAY_SIZE(st->scale_avail); i++)
722 if (val2 == st->scale_avail[i][1]) { 724 if (val2 == st->scale_avail[i][1]) {
@@ -775,7 +777,7 @@ static const struct ad7793_chip_info ad7793_chip_info_tbl[] = {
775 .channel = 0, 777 .channel = 0,
776 .channel2 = 0, 778 .channel2 = 0,
777 .address = AD7793_CH_AIN1P_AIN1M, 779 .address = AD7793_CH_AIN1P_AIN1M,
778 .info_mask = (1 << IIO_CHAN_INFO_SCALE_SHARED), 780 .info_mask = IIO_CHAN_INFO_SCALE_SHARED_BIT,
779 .scan_index = 0, 781 .scan_index = 0,
780 .scan_type = IIO_ST('s', 24, 32, 0) 782 .scan_type = IIO_ST('s', 24, 32, 0)
781 }, 783 },
@@ -786,7 +788,7 @@ static const struct ad7793_chip_info ad7793_chip_info_tbl[] = {
786 .channel = 1, 788 .channel = 1,
787 .channel2 = 1, 789 .channel2 = 1,
788 .address = AD7793_CH_AIN2P_AIN2M, 790 .address = AD7793_CH_AIN2P_AIN2M,
789 .info_mask = (1 << IIO_CHAN_INFO_SCALE_SHARED), 791 .info_mask = IIO_CHAN_INFO_SCALE_SHARED_BIT,
790 .scan_index = 1, 792 .scan_index = 1,
791 .scan_type = IIO_ST('s', 24, 32, 0) 793 .scan_type = IIO_ST('s', 24, 32, 0)
792 }, 794 },
@@ -797,7 +799,7 @@ static const struct ad7793_chip_info ad7793_chip_info_tbl[] = {
797 .channel = 2, 799 .channel = 2,
798 .channel2 = 2, 800 .channel2 = 2,
799 .address = AD7793_CH_AIN3P_AIN3M, 801 .address = AD7793_CH_AIN3P_AIN3M,
800 .info_mask = (1 << IIO_CHAN_INFO_SCALE_SHARED), 802 .info_mask = IIO_CHAN_INFO_SCALE_SHARED_BIT,
801 .scan_index = 2, 803 .scan_index = 2,
802 .scan_type = IIO_ST('s', 24, 32, 0) 804 .scan_type = IIO_ST('s', 24, 32, 0)
803 }, 805 },
@@ -809,7 +811,7 @@ static const struct ad7793_chip_info ad7793_chip_info_tbl[] = {
809 .channel = 2, 811 .channel = 2,
810 .channel2 = 2, 812 .channel2 = 2,
811 .address = AD7793_CH_AIN1M_AIN1M, 813 .address = AD7793_CH_AIN1M_AIN1M,
812 .info_mask = (1 << IIO_CHAN_INFO_SCALE_SHARED), 814 .info_mask = IIO_CHAN_INFO_SCALE_SHARED_BIT,
813 .scan_index = 2, 815 .scan_index = 2,
814 .scan_type = IIO_ST('s', 24, 32, 0) 816 .scan_type = IIO_ST('s', 24, 32, 0)
815 }, 817 },
@@ -818,7 +820,7 @@ static const struct ad7793_chip_info ad7793_chip_info_tbl[] = {
818 .indexed = 1, 820 .indexed = 1,
819 .channel = 0, 821 .channel = 0,
820 .address = AD7793_CH_TEMP, 822 .address = AD7793_CH_TEMP,
821 .info_mask = (1 << IIO_CHAN_INFO_SCALE_SEPARATE), 823 .info_mask = IIO_CHAN_INFO_SCALE_SEPARATE_BIT,
822 .scan_index = 4, 824 .scan_index = 4,
823 .scan_type = IIO_ST('s', 24, 32, 0), 825 .scan_type = IIO_ST('s', 24, 32, 0),
824 }, 826 },
@@ -828,7 +830,7 @@ static const struct ad7793_chip_info ad7793_chip_info_tbl[] = {
828 .indexed = 1, 830 .indexed = 1,
829 .channel = 4, 831 .channel = 4,
830 .address = AD7793_CH_AVDD_MONITOR, 832 .address = AD7793_CH_AVDD_MONITOR,
831 .info_mask = (1 << IIO_CHAN_INFO_SCALE_SEPARATE), 833 .info_mask = IIO_CHAN_INFO_SCALE_SEPARATE_BIT,
832 .scan_index = 5, 834 .scan_index = 5,
833 .scan_type = IIO_ST('s', 24, 32, 0), 835 .scan_type = IIO_ST('s', 24, 32, 0),
834 }, 836 },
@@ -842,7 +844,7 @@ static const struct ad7793_chip_info ad7793_chip_info_tbl[] = {
842 .channel = 0, 844 .channel = 0,
843 .channel2 = 0, 845 .channel2 = 0,
844 .address = AD7793_CH_AIN1P_AIN1M, 846 .address = AD7793_CH_AIN1P_AIN1M,
845 .info_mask = (1 << IIO_CHAN_INFO_SCALE_SHARED), 847 .info_mask = IIO_CHAN_INFO_SCALE_SHARED_BIT,
846 .scan_index = 0, 848 .scan_index = 0,
847 .scan_type = IIO_ST('s', 16, 32, 0) 849 .scan_type = IIO_ST('s', 16, 32, 0)
848 }, 850 },
@@ -853,7 +855,7 @@ static const struct ad7793_chip_info ad7793_chip_info_tbl[] = {
853 .channel = 1, 855 .channel = 1,
854 .channel2 = 1, 856 .channel2 = 1,
855 .address = AD7793_CH_AIN2P_AIN2M, 857 .address = AD7793_CH_AIN2P_AIN2M,
856 .info_mask = (1 << IIO_CHAN_INFO_SCALE_SHARED), 858 .info_mask = IIO_CHAN_INFO_SCALE_SHARED_BIT,
857 .scan_index = 1, 859 .scan_index = 1,
858 .scan_type = IIO_ST('s', 16, 32, 0) 860 .scan_type = IIO_ST('s', 16, 32, 0)
859 }, 861 },
@@ -864,7 +866,7 @@ static const struct ad7793_chip_info ad7793_chip_info_tbl[] = {
864 .channel = 2, 866 .channel = 2,
865 .channel2 = 2, 867 .channel2 = 2,
866 .address = AD7793_CH_AIN3P_AIN3M, 868 .address = AD7793_CH_AIN3P_AIN3M,
867 .info_mask = (1 << IIO_CHAN_INFO_SCALE_SHARED), 869 .info_mask = IIO_CHAN_INFO_SCALE_SHARED_BIT,
868 .scan_index = 2, 870 .scan_index = 2,
869 .scan_type = IIO_ST('s', 16, 32, 0) 871 .scan_type = IIO_ST('s', 16, 32, 0)
870 }, 872 },
@@ -876,7 +878,7 @@ static const struct ad7793_chip_info ad7793_chip_info_tbl[] = {
876 .channel = 2, 878 .channel = 2,
877 .channel2 = 2, 879 .channel2 = 2,
878 .address = AD7793_CH_AIN1M_AIN1M, 880 .address = AD7793_CH_AIN1M_AIN1M,
879 .info_mask = (1 << IIO_CHAN_INFO_SCALE_SHARED), 881 .info_mask = IIO_CHAN_INFO_SCALE_SHARED_BIT,
880 .scan_index = 2, 882 .scan_index = 2,
881 .scan_type = IIO_ST('s', 16, 32, 0) 883 .scan_type = IIO_ST('s', 16, 32, 0)
882 }, 884 },
@@ -885,7 +887,7 @@ static const struct ad7793_chip_info ad7793_chip_info_tbl[] = {
885 .indexed = 1, 887 .indexed = 1,
886 .channel = 0, 888 .channel = 0,
887 .address = AD7793_CH_TEMP, 889 .address = AD7793_CH_TEMP,
888 .info_mask = (1 << IIO_CHAN_INFO_SCALE_SEPARATE), 890 .info_mask = IIO_CHAN_INFO_SCALE_SEPARATE_BIT,
889 .scan_index = 4, 891 .scan_index = 4,
890 .scan_type = IIO_ST('s', 16, 32, 0), 892 .scan_type = IIO_ST('s', 16, 32, 0),
891 }, 893 },
@@ -895,7 +897,7 @@ static const struct ad7793_chip_info ad7793_chip_info_tbl[] = {
895 .indexed = 1, 897 .indexed = 1,
896 .channel = 4, 898 .channel = 4,
897 .address = AD7793_CH_AVDD_MONITOR, 899 .address = AD7793_CH_AVDD_MONITOR,
898 .info_mask = (1 << IIO_CHAN_INFO_SCALE_SEPARATE), 900 .info_mask = IIO_CHAN_INFO_SCALE_SEPARATE_BIT,
899 .scan_index = 5, 901 .scan_index = 5,
900 .scan_type = IIO_ST('s', 16, 32, 0), 902 .scan_type = IIO_ST('s', 16, 32, 0),
901 }, 903 },
diff --git a/drivers/staging/iio/adc/ad7887_core.c b/drivers/staging/iio/adc/ad7887_core.c
index 245c9438359..baa6e6a8c41 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 IIO_CHAN_INFO_SCALE_SHARED: 58 case IIO_CHAN_INFO_SCALE:
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;
@@ -75,7 +75,7 @@ static const struct ad7887_chip_info ad7887_chip_info_tbl[] = {
75 .type = IIO_VOLTAGE, 75 .type = IIO_VOLTAGE,
76 .indexed = 1, 76 .indexed = 1,
77 .channel = 1, 77 .channel = 1,
78 .info_mask = (1 << IIO_CHAN_INFO_SCALE_SHARED), 78 .info_mask = IIO_CHAN_INFO_SCALE_SHARED_BIT,
79 .address = 1, 79 .address = 1,
80 .scan_index = 1, 80 .scan_index = 1,
81 .scan_type = IIO_ST('u', 12, 16, 0), 81 .scan_type = IIO_ST('u', 12, 16, 0),
@@ -84,7 +84,7 @@ static const struct ad7887_chip_info ad7887_chip_info_tbl[] = {
84 .type = IIO_VOLTAGE, 84 .type = IIO_VOLTAGE,
85 .indexed = 1, 85 .indexed = 1,
86 .channel = 0, 86 .channel = 0,
87 .info_mask = (1 << IIO_CHAN_INFO_SCALE_SHARED), 87 .info_mask = IIO_CHAN_INFO_SCALE_SHARED_BIT,
88 .address = 0, 88 .address = 0,
89 .scan_index = 0, 89 .scan_index = 0,
90 .scan_type = IIO_ST('u', 12, 16, 0), 90 .scan_type = IIO_ST('u', 12, 16, 0),
diff --git a/drivers/staging/iio/adc/ad799x_core.c b/drivers/staging/iio/adc/ad799x_core.c
index 60a48a284dd..cdee9b95465 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 IIO_CHAN_INFO_SCALE_SHARED: 165 case IIO_CHAN_INFO_SCALE:
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 6b05e573afc..c3e28e17838 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 IIO_CHAN_INFO_SCALE_SHARED: 264 case IIO_CHAN_INFO_SCALE:
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;
@@ -289,7 +289,7 @@ static const enum max1363_modes max1363_mode_list[] = {
289#define MAX1363_EV_M \ 289#define MAX1363_EV_M \
290 (IIO_EV_BIT(IIO_EV_TYPE_THRESH, IIO_EV_DIR_RISING) \ 290 (IIO_EV_BIT(IIO_EV_TYPE_THRESH, IIO_EV_DIR_RISING) \
291 | IIO_EV_BIT(IIO_EV_TYPE_THRESH, IIO_EV_DIR_FALLING)) 291 | IIO_EV_BIT(IIO_EV_TYPE_THRESH, IIO_EV_DIR_FALLING))
292#define MAX1363_INFO_MASK (1 << IIO_CHAN_INFO_SCALE_SHARED) 292#define MAX1363_INFO_MASK IIO_CHAN_INFO_SCALE_SHARED_BIT
293#define MAX1363_CHAN_U(num, addr, si, bits, evmask) \ 293#define MAX1363_CHAN_U(num, addr, si, bits, evmask) \
294 { \ 294 { \
295 .type = IIO_VOLTAGE, \ 295 .type = IIO_VOLTAGE, \
diff --git a/drivers/staging/iio/cdc/ad7150.c b/drivers/staging/iio/cdc/ad7150.c
index 10737fae25e..6bcdb147928 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 IIO_CHAN_INFO_AVERAGE_RAW_SEPARATE: 114 case IIO_CHAN_INFO_AVERAGE_RAW:
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)
@@ -429,7 +429,7 @@ static const struct iio_chan_spec ad7150_channels[] = {
429 .type = IIO_CAPACITANCE, 429 .type = IIO_CAPACITANCE,
430 .indexed = 1, 430 .indexed = 1,
431 .channel = 0, 431 .channel = 0,
432 .info_mask = (1 << IIO_CHAN_INFO_AVERAGE_RAW_SEPARATE), 432 .info_mask = IIO_CHAN_INFO_AVERAGE_RAW_SEPARATE_BIT,
433 .event_mask = 433 .event_mask =
434 IIO_EV_BIT(IIO_EV_TYPE_THRESH, IIO_EV_DIR_RISING) | 434 IIO_EV_BIT(IIO_EV_TYPE_THRESH, IIO_EV_DIR_RISING) |
435 IIO_EV_BIT(IIO_EV_TYPE_THRESH, IIO_EV_DIR_FALLING) | 435 IIO_EV_BIT(IIO_EV_TYPE_THRESH, IIO_EV_DIR_FALLING) |
@@ -441,7 +441,7 @@ static const struct iio_chan_spec ad7150_channels[] = {
441 .type = IIO_CAPACITANCE, 441 .type = IIO_CAPACITANCE,
442 .indexed = 1, 442 .indexed = 1,
443 .channel = 1, 443 .channel = 1,
444 .info_mask = (1 << IIO_CHAN_INFO_AVERAGE_RAW_SEPARATE), 444 .info_mask = IIO_CHAN_INFO_AVERAGE_RAW_SEPARATE_BIT,
445 .event_mask = 445 .event_mask =
446 IIO_EV_BIT(IIO_EV_TYPE_THRESH, IIO_EV_DIR_RISING) | 446 IIO_EV_BIT(IIO_EV_TYPE_THRESH, IIO_EV_DIR_RISING) |
447 IIO_EV_BIT(IIO_EV_TYPE_THRESH, IIO_EV_DIR_FALLING) | 447 IIO_EV_BIT(IIO_EV_TYPE_THRESH, IIO_EV_DIR_FALLING) |
diff --git a/drivers/staging/iio/cdc/ad7152.c b/drivers/staging/iio/cdc/ad7152.c
index e5ca683a7af..29b2dc6e4f8 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 IIO_CHAN_INFO_CALIBSCALE_SEPARATE: 262 case IIO_CHAN_INFO_CALIBSCALE:
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 IIO_CHAN_INFO_CALIBBIAS_SEPARATE: 279 case IIO_CHAN_INFO_CALIBBIAS:
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 IIO_CHAN_INFO_SCALE_SEPARATE: 292 case IIO_CHAN_INFO_SCALE:
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 IIO_CHAN_INFO_CALIBSCALE_SEPARATE: 375 case IIO_CHAN_INFO_CALIBSCALE:
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 IIO_CHAN_INFO_CALIBBIAS_SEPARATE: 387 case IIO_CHAN_INFO_CALIBBIAS:
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 IIO_CHAN_INFO_SCALE_SEPARATE: 396 case IIO_CHAN_INFO_SCALE:
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 IIO_CHAN_INFO_SCALE_SEPARATE: 419 case IIO_CHAN_INFO_SCALE:
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;
@@ -436,34 +436,34 @@ static const struct iio_chan_spec ad7152_channels[] = {
436 .type = IIO_CAPACITANCE, 436 .type = IIO_CAPACITANCE,
437 .indexed = 1, 437 .indexed = 1,
438 .channel = 0, 438 .channel = 0,
439 .info_mask = (1 << IIO_CHAN_INFO_CALIBSCALE_SEPARATE) | 439 .info_mask = IIO_CHAN_INFO_CALIBSCALE_SEPARATE_BIT |
440 (1 << IIO_CHAN_INFO_CALIBBIAS_SEPARATE) | 440 IIO_CHAN_INFO_CALIBBIAS_SEPARATE_BIT |
441 (1 << IIO_CHAN_INFO_SCALE_SEPARATE), 441 IIO_CHAN_INFO_SCALE_SEPARATE_BIT,
442 }, { 442 }, {
443 .type = IIO_CAPACITANCE, 443 .type = IIO_CAPACITANCE,
444 .differential = 1, 444 .differential = 1,
445 .indexed = 1, 445 .indexed = 1,
446 .channel = 0, 446 .channel = 0,
447 .channel2 = 2, 447 .channel2 = 2,
448 .info_mask = (1 << IIO_CHAN_INFO_CALIBSCALE_SEPARATE) | 448 .info_mask = IIO_CHAN_INFO_CALIBSCALE_SEPARATE_BIT |
449 (1 << IIO_CHAN_INFO_CALIBBIAS_SEPARATE) | 449 IIO_CHAN_INFO_CALIBBIAS_SEPARATE_BIT |
450 (1 << IIO_CHAN_INFO_SCALE_SEPARATE), 450 IIO_CHAN_INFO_SCALE_SEPARATE_BIT,
451 }, { 451 }, {
452 .type = IIO_CAPACITANCE, 452 .type = IIO_CAPACITANCE,
453 .indexed = 1, 453 .indexed = 1,
454 .channel = 1, 454 .channel = 1,
455 .info_mask = (1 << IIO_CHAN_INFO_CALIBSCALE_SEPARATE) | 455 .info_mask = IIO_CHAN_INFO_CALIBSCALE_SEPARATE_BIT |
456 (1 << IIO_CHAN_INFO_CALIBBIAS_SEPARATE) | 456 IIO_CHAN_INFO_CALIBBIAS_SEPARATE_BIT |
457 (1 << IIO_CHAN_INFO_SCALE_SEPARATE), 457 IIO_CHAN_INFO_SCALE_SEPARATE_BIT,
458 }, { 458 }, {
459 .type = IIO_CAPACITANCE, 459 .type = IIO_CAPACITANCE,
460 .differential = 1, 460 .differential = 1,
461 .indexed = 1, 461 .indexed = 1,
462 .channel = 1, 462 .channel = 1,
463 .channel2 = 3, 463 .channel2 = 3,
464 .info_mask = (1 << IIO_CHAN_INFO_CALIBSCALE_SEPARATE) | 464 .info_mask = IIO_CHAN_INFO_CALIBSCALE_SEPARATE_BIT |
465 (1 << IIO_CHAN_INFO_CALIBBIAS_SEPARATE) | 465 IIO_CHAN_INFO_CALIBBIAS_SEPARATE_BIT |
466 (1 << IIO_CHAN_INFO_SCALE_SEPARATE), 466 IIO_CHAN_INFO_SCALE_SEPARATE_BIT,
467 } 467 }
468}; 468};
469/* 469/*
diff --git a/drivers/staging/iio/cdc/ad7746.c b/drivers/staging/iio/cdc/ad7746.c
index 5deaf857d23..de8f844dc9f 100644
--- a/drivers/staging/iio/cdc/ad7746.c
+++ b/drivers/staging/iio/cdc/ad7746.c
@@ -123,7 +123,7 @@ static const struct iio_chan_spec ad7746_channels[] = {
123 .type = IIO_VOLTAGE, 123 .type = IIO_VOLTAGE,
124 .indexed = 1, 124 .indexed = 1,
125 .channel = 0, 125 .channel = 0,
126 .info_mask = (1 << IIO_CHAN_INFO_SCALE_SHARED), 126 .info_mask = IIO_CHAN_INFO_SCALE_SHARED_BIT,
127 .address = AD7746_REG_VT_DATA_HIGH << 8 | 127 .address = AD7746_REG_VT_DATA_HIGH << 8 |
128 AD7746_VTSETUP_VTMD_EXT_VIN, 128 AD7746_VTSETUP_VTMD_EXT_VIN,
129 }, 129 },
@@ -132,7 +132,7 @@ static const struct iio_chan_spec ad7746_channels[] = {
132 .indexed = 1, 132 .indexed = 1,
133 .channel = 1, 133 .channel = 1,
134 .extend_name = "supply", 134 .extend_name = "supply",
135 .info_mask = (1 << IIO_CHAN_INFO_SCALE_SHARED), 135 .info_mask = IIO_CHAN_INFO_SCALE_SHARED_BIT,
136 .address = AD7746_REG_VT_DATA_HIGH << 8 | 136 .address = AD7746_REG_VT_DATA_HIGH << 8 |
137 AD7746_VTSETUP_VTMD_VDD_MON, 137 AD7746_VTSETUP_VTMD_VDD_MON,
138 }, 138 },
@@ -156,10 +156,10 @@ static const struct iio_chan_spec ad7746_channels[] = {
156 .type = IIO_CAPACITANCE, 156 .type = IIO_CAPACITANCE,
157 .indexed = 1, 157 .indexed = 1,
158 .channel = 0, 158 .channel = 0,
159 .info_mask = (1 << IIO_CHAN_INFO_CALIBSCALE_SEPARATE) | 159 .info_mask = IIO_CHAN_INFO_CALIBSCALE_SEPARATE_BIT |
160 (1 << IIO_CHAN_INFO_CALIBBIAS_SHARED) | 160 IIO_CHAN_INFO_CALIBBIAS_SHARED_BIT |
161 (1 << IIO_CHAN_INFO_OFFSET_SEPARATE) | 161 IIO_CHAN_INFO_OFFSET_SEPARATE_BIT |
162 (1 << IIO_CHAN_INFO_SCALE_SHARED), 162 IIO_CHAN_INFO_SCALE_SHARED_BIT,
163 .address = AD7746_REG_CAP_DATA_HIGH << 8, 163 .address = AD7746_REG_CAP_DATA_HIGH << 8,
164 }, 164 },
165 [CIN1_DIFF] = { 165 [CIN1_DIFF] = {
@@ -168,10 +168,10 @@ static const struct iio_chan_spec ad7746_channels[] = {
168 .indexed = 1, 168 .indexed = 1,
169 .channel = 0, 169 .channel = 0,
170 .channel2 = 2, 170 .channel2 = 2,
171 .info_mask = (1 << IIO_CHAN_INFO_CALIBSCALE_SEPARATE) | 171 .info_mask = IIO_CHAN_INFO_CALIBSCALE_SEPARATE_BIT |
172 (1 << IIO_CHAN_INFO_CALIBBIAS_SHARED) | 172 IIO_CHAN_INFO_CALIBBIAS_SHARED_BIT |
173 (1 << IIO_CHAN_INFO_OFFSET_SEPARATE) | 173 IIO_CHAN_INFO_OFFSET_SEPARATE_BIT |
174 (1 << IIO_CHAN_INFO_SCALE_SHARED), 174 IIO_CHAN_INFO_SCALE_SHARED_BIT,
175 .address = AD7746_REG_CAP_DATA_HIGH << 8 | 175 .address = AD7746_REG_CAP_DATA_HIGH << 8 |
176 AD7746_CAPSETUP_CAPDIFF 176 AD7746_CAPSETUP_CAPDIFF
177 }, 177 },
@@ -179,10 +179,10 @@ static const struct iio_chan_spec ad7746_channels[] = {
179 .type = IIO_CAPACITANCE, 179 .type = IIO_CAPACITANCE,
180 .indexed = 1, 180 .indexed = 1,
181 .channel = 1, 181 .channel = 1,
182 .info_mask = (1 << IIO_CHAN_INFO_CALIBSCALE_SEPARATE) | 182 .info_mask = IIO_CHAN_INFO_CALIBSCALE_SEPARATE_BIT |
183 (1 << IIO_CHAN_INFO_CALIBBIAS_SHARED) | 183 IIO_CHAN_INFO_CALIBBIAS_SHARED_BIT |
184 (1 << IIO_CHAN_INFO_OFFSET_SEPARATE) | 184 IIO_CHAN_INFO_OFFSET_SEPARATE_BIT |
185 (1 << IIO_CHAN_INFO_SCALE_SHARED), 185 IIO_CHAN_INFO_SCALE_SHARED_BIT,
186 .address = AD7746_REG_CAP_DATA_HIGH << 8 | 186 .address = AD7746_REG_CAP_DATA_HIGH << 8 |
187 AD7746_CAPSETUP_CIN2, 187 AD7746_CAPSETUP_CIN2,
188 }, 188 },
@@ -192,10 +192,10 @@ static const struct iio_chan_spec ad7746_channels[] = {
192 .indexed = 1, 192 .indexed = 1,
193 .channel = 1, 193 .channel = 1,
194 .channel2 = 3, 194 .channel2 = 3,
195 .info_mask = (1 << IIO_CHAN_INFO_CALIBSCALE_SEPARATE) | 195 .info_mask = IIO_CHAN_INFO_CALIBSCALE_SEPARATE_BIT |
196 (1 << IIO_CHAN_INFO_CALIBBIAS_SHARED) | 196 IIO_CHAN_INFO_CALIBBIAS_SHARED_BIT |
197 (1 << IIO_CHAN_INFO_OFFSET_SEPARATE) | 197 IIO_CHAN_INFO_OFFSET_SEPARATE_BIT |
198 (1 << IIO_CHAN_INFO_SCALE_SHARED), 198 IIO_CHAN_INFO_SCALE_SHARED_BIT,
199 .address = AD7746_REG_CAP_DATA_HIGH << 8 | 199 .address = AD7746_REG_CAP_DATA_HIGH << 8 |
200 AD7746_CAPSETUP_CAPDIFF | AD7746_CAPSETUP_CIN2, 200 AD7746_CAPSETUP_CAPDIFF | AD7746_CAPSETUP_CIN2,
201 } 201 }
@@ -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 IIO_CHAN_INFO_CALIBSCALE_SEPARATE: 480 case IIO_CHAN_INFO_CALIBSCALE:
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 IIO_CHAN_INFO_CALIBBIAS_SHARED: 506 case IIO_CHAN_INFO_CALIBBIAS:
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 IIO_CHAN_INFO_OFFSET_SEPARATE: 518 case IIO_CHAN_INFO_OFFSET:
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 IIO_CHAN_INFO_CALIBSCALE_SEPARATE: 615 case IIO_CHAN_INFO_CALIBSCALE:
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 IIO_CHAN_INFO_CALIBBIAS_SHARED: 637 case IIO_CHAN_INFO_CALIBBIAS:
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 IIO_CHAN_INFO_OFFSET_SEPARATE: 646 case IIO_CHAN_INFO_OFFSET:
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 IIO_CHAN_INFO_SCALE_SHARED: 652 case IIO_CHAN_INFO_SCALE:
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 1c25403620f..a701063a926 100644
--- a/drivers/staging/iio/dac/ad5064.c
+++ b/drivers/staging/iio/dac/ad5064.c
@@ -91,7 +91,7 @@ enum ad5064_type {
91 .indexed = 1, \ 91 .indexed = 1, \
92 .output = 1, \ 92 .output = 1, \
93 .channel = (chan), \ 93 .channel = (chan), \
94 .info_mask = (1 << IIO_CHAN_INFO_SCALE_SEPARATE), \ 94 .info_mask = IIO_CHAN_INFO_SCALE_SEPARATE_BIT, \
95 .address = AD5064_ADDR_DAC(chan), \ 95 .address = AD5064_ADDR_DAC(chan), \
96 .scan_type = IIO_ST('u', (bits), 16, 20 - (bits)) \ 96 .scan_type = IIO_ST('u', (bits), 16, 20 - (bits)) \
97} 97}
@@ -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 IIO_CHAN_INFO_SCALE_SEPARATE: 290 case IIO_CHAN_INFO_SCALE:
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 7df19586d18..c5bf5827c13 100644
--- a/drivers/staging/iio/dac/ad5360.c
+++ b/drivers/staging/iio/dac/ad5360.c
@@ -103,10 +103,10 @@ enum ad5360_type {
103 .type = IIO_VOLTAGE, \ 103 .type = IIO_VOLTAGE, \
104 .indexed = 1, \ 104 .indexed = 1, \
105 .output = 1, \ 105 .output = 1, \
106 .info_mask = (1 << IIO_CHAN_INFO_SCALE_SEPARATE) | \ 106 .info_mask = IIO_CHAN_INFO_SCALE_SEPARATE_BIT | \
107 (1 << IIO_CHAN_INFO_OFFSET_SEPARATE) | \ 107 IIO_CHAN_INFO_OFFSET_SEPARATE_BIT | \
108 (1 << IIO_CHAN_INFO_CALIBSCALE_SEPARATE) | \ 108 IIO_CHAN_INFO_CALIBSCALE_SEPARATE_BIT | \
109 (1 << IIO_CHAN_INFO_CALIBBIAS_SEPARATE), \ 109 IIO_CHAN_INFO_CALIBBIAS_SEPARATE_BIT, \
110 .scan_type = IIO_ST('u', (bits), 16, 16 - (bits)) \ 110 .scan_type = IIO_ST('u', (bits), 16, 16 - (bits)) \
111} 111}
112 112
@@ -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 IIO_CHAN_INFO_CALIBBIAS_SEPARATE: 329 case IIO_CHAN_INFO_CALIBBIAS:
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 IIO_CHAN_INFO_CALIBSCALE_SEPARATE: 336 case IIO_CHAN_INFO_CALIBSCALE:
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 IIO_CHAN_INFO_OFFSET_SEPARATE: 343 case IIO_CHAN_INFO_OFFSET:
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 IIO_CHAN_INFO_SCALE_SEPARATE: 386 case IIO_CHAN_INFO_SCALE:
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 IIO_CHAN_INFO_CALIBBIAS_SEPARATE: 396 case IIO_CHAN_INFO_CALIBBIAS:
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 IIO_CHAN_INFO_CALIBSCALE_SEPARATE: 403 case IIO_CHAN_INFO_CALIBSCALE:
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 IIO_CHAN_INFO_OFFSET_SEPARATE: 410 case IIO_CHAN_INFO_OFFSET:
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 f2332b3f24a..7eaf594a4f6 100644
--- a/drivers/staging/iio/dac/ad5686.c
+++ b/drivers/staging/iio/dac/ad5686.c
@@ -99,7 +99,7 @@ enum ad5686_supported_device_ids {
99 .indexed = 1, \ 99 .indexed = 1, \
100 .output = 1, \ 100 .output = 1, \
101 .channel = chan, \ 101 .channel = chan, \
102 .info_mask = (1 << IIO_CHAN_INFO_SCALE_SHARED), \ 102 .info_mask = IIO_CHAN_INFO_SCALE_SHARED_BIT, \
103 .address = AD5686_ADDR_DAC(chan), \ 103 .address = AD5686_ADDR_DAC(chan), \
104 .scan_type = IIO_ST('u', bits, 16, shift) \ 104 .scan_type = IIO_ST('u', bits, 16, shift) \
105} 105}
@@ -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 IIO_CHAN_INFO_SCALE_SHARED: 309 case IIO_CHAN_INFO_SCALE:
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 d3b3b71c87c..db0bd1231a3 100644
--- a/drivers/staging/iio/dac/ad5791.c
+++ b/drivers/staging/iio/dac/ad5791.c
@@ -77,8 +77,8 @@ static int ad5791_spi_read(struct spi_device *spi, u8 addr, u32 *val)
77 .indexed = 1, \ 77 .indexed = 1, \
78 .address = AD5791_ADDR_DAC0, \ 78 .address = AD5791_ADDR_DAC0, \
79 .channel = 0, \ 79 .channel = 0, \
80 .info_mask = (1 << IIO_CHAN_INFO_SCALE_SHARED) | \ 80 .info_mask = IIO_CHAN_INFO_SCALE_SHARED_BIT | \
81 (1 << IIO_CHAN_INFO_OFFSET_SHARED), \ 81 IIO_CHAN_INFO_OFFSET_SHARED_BIT, \
82 .scan_type = IIO_ST('u', bits, 24, shift) \ 82 .scan_type = IIO_ST('u', bits, 24, shift) \
83} 83}
84 84
@@ -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 IIO_CHAN_INFO_SCALE_SHARED: 240 case IIO_CHAN_INFO_SCALE:
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 IIO_CHAN_INFO_OFFSET_SHARED: 244 case IIO_CHAN_INFO_OFFSET:
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 d83c640f4e6..c0ca7093e0e 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 IIO_CHAN_INFO_OFFSET_SEPARATE: 101 case IIO_CHAN_INFO_OFFSET:
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 IIO_CHAN_INFO_SCALE_SEPARATE: 105 case IIO_CHAN_INFO_SCALE:
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;
@@ -136,8 +136,8 @@ static const struct iio_chan_spec adis16060_channels[] = {
136 .type = IIO_TEMP, 136 .type = IIO_TEMP,
137 .indexed = 1, 137 .indexed = 1,
138 .channel = 0, 138 .channel = 0,
139 .info_mask = (1 << IIO_CHAN_INFO_OFFSET_SEPARATE) | 139 .info_mask = IIO_CHAN_INFO_OFFSET_SEPARATE_BIT |
140 (1 << IIO_CHAN_INFO_SCALE_SEPARATE), 140 IIO_CHAN_INFO_SCALE_SEPARATE_BIT,
141 .address = ADIS16060_TEMP_OUT, 141 .address = ADIS16060_TEMP_OUT,
142 } 142 }
143}; 143};
diff --git a/drivers/staging/iio/gyro/adis16260_core.c b/drivers/staging/iio/gyro/adis16260_core.c
index 4f5a7cb3f7e..e86ce6a1611 100644
--- a/drivers/staging/iio/gyro/adis16260_core.c
+++ b/drivers/staging/iio/gyro/adis16260_core.c
@@ -390,9 +390,9 @@ enum adis16260_channel {
390#define ADIS16260_GYRO_CHANNEL_SET(axis, mod) \ 390#define ADIS16260_GYRO_CHANNEL_SET(axis, mod) \
391 struct iio_chan_spec adis16260_channels_##axis[] = { \ 391 struct iio_chan_spec adis16260_channels_##axis[] = { \
392 IIO_CHAN(IIO_ANGL_VEL, 1, 0, 0, NULL, 0, mod, \ 392 IIO_CHAN(IIO_ANGL_VEL, 1, 0, 0, NULL, 0, mod, \
393 (1 << IIO_CHAN_INFO_CALIBBIAS_SEPARATE) | \ 393 IIO_CHAN_INFO_CALIBBIAS_SEPARATE_BIT | \
394 (1 << IIO_CHAN_INFO_CALIBSCALE_SEPARATE) | \ 394 IIO_CHAN_INFO_CALIBSCALE_SEPARATE_BIT | \
395 (1 << IIO_CHAN_INFO_SCALE_SEPARATE), \ 395 IIO_CHAN_INFO_SCALE_SEPARATE_BIT, \
396 gyro, ADIS16260_SCAN_GYRO, \ 396 gyro, ADIS16260_SCAN_GYRO, \
397 IIO_ST('s', 14, 16, 0), 0), \ 397 IIO_ST('s', 14, 16, 0), 0), \
398 IIO_CHAN(IIO_ANGL, 1, 0, 0, NULL, 0, mod, \ 398 IIO_CHAN(IIO_ANGL, 1, 0, 0, NULL, 0, mod, \
@@ -400,16 +400,16 @@ enum adis16260_channel {
400 angle, ADIS16260_SCAN_ANGL, \ 400 angle, ADIS16260_SCAN_ANGL, \
401 IIO_ST('u', 14, 16, 0), 0), \ 401 IIO_ST('u', 14, 16, 0), 0), \
402 IIO_CHAN(IIO_TEMP, 0, 1, 0, NULL, 0, 0, \ 402 IIO_CHAN(IIO_TEMP, 0, 1, 0, NULL, 0, 0, \
403 (1 << IIO_CHAN_INFO_OFFSET_SEPARATE) | \ 403 IIO_CHAN_INFO_OFFSET_SEPARATE_BIT | \
404 (1 << IIO_CHAN_INFO_SCALE_SEPARATE), \ 404 IIO_CHAN_INFO_SCALE_SEPARATE_BIT, \
405 temp, ADIS16260_SCAN_TEMP, \ 405 temp, ADIS16260_SCAN_TEMP, \
406 IIO_ST('u', 12, 16, 0), 0), \ 406 IIO_ST('u', 12, 16, 0), 0), \
407 IIO_CHAN(IIO_VOLTAGE, 0, 1, 0, "supply", 0, 0, \ 407 IIO_CHAN(IIO_VOLTAGE, 0, 1, 0, "supply", 0, 0, \
408 (1 << IIO_CHAN_INFO_SCALE_SEPARATE), \ 408 IIO_CHAN_INFO_SCALE_SEPARATE_BIT, \
409 in_supply, ADIS16260_SCAN_SUPPLY, \ 409 in_supply, ADIS16260_SCAN_SUPPLY, \
410 IIO_ST('u', 12, 16, 0), 0), \ 410 IIO_ST('u', 12, 16, 0), 0), \
411 IIO_CHAN(IIO_VOLTAGE, 0, 1, 0, NULL, 1, 0, \ 411 IIO_CHAN(IIO_VOLTAGE, 0, 1, 0, NULL, 1, 0, \
412 (1 << IIO_CHAN_INFO_SCALE_SEPARATE), \ 412 IIO_CHAN_INFO_SCALE_SEPARATE_BIT, \
413 in_aux, ADIS16260_SCAN_AUX_ADC, \ 413 in_aux, ADIS16260_SCAN_AUX_ADC, \
414 IIO_ST('u', 12, 16, 0), 0), \ 414 IIO_ST('u', 12, 16, 0), 0), \
415 IIO_CHAN_SOFT_TIMESTAMP(5) \ 415 IIO_CHAN_SOFT_TIMESTAMP(5) \
@@ -464,8 +464,7 @@ 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 IIO_CHAN_INFO_SCALE_SEPARATE: 467 case IIO_CHAN_INFO_SCALE:
468 case IIO_CHAN_INFO_SCALE_SHARED:
469 switch (chan->type) { 468 switch (chan->type) {
470 case IIO_ANGL_VEL: 469 case IIO_ANGL_VEL:
471 *val = 0; 470 *val = 0;
@@ -489,10 +488,10 @@ static int adis16260_read_raw(struct iio_dev *indio_dev,
489 return -EINVAL; 488 return -EINVAL;
490 } 489 }
491 break; 490 break;
492 case IIO_CHAN_INFO_OFFSET_SEPARATE: 491 case IIO_CHAN_INFO_OFFSET:
493 *val = 25; 492 *val = 25;
494 return IIO_VAL_INT; 493 return IIO_VAL_INT;
495 case IIO_CHAN_INFO_CALIBBIAS_SEPARATE: 494 case IIO_CHAN_INFO_CALIBBIAS:
496 switch (chan->type) { 495 switch (chan->type) {
497 case IIO_ANGL_VEL: 496 case IIO_ANGL_VEL:
498 bits = 12; 497 bits = 12;
@@ -512,7 +511,7 @@ static int adis16260_read_raw(struct iio_dev *indio_dev,
512 *val = val16; 511 *val = val16;
513 mutex_unlock(&indio_dev->mlock); 512 mutex_unlock(&indio_dev->mlock);
514 return IIO_VAL_INT; 513 return IIO_VAL_INT;
515 case IIO_CHAN_INFO_CALIBSCALE_SEPARATE: 514 case IIO_CHAN_INFO_CALIBSCALE:
516 switch (chan->type) { 515 switch (chan->type) {
517 case IIO_ANGL_VEL: 516 case IIO_ANGL_VEL:
518 bits = 12; 517 bits = 12;
@@ -544,11 +543,11 @@ static int adis16260_write_raw(struct iio_dev *indio_dev,
544 s16 val16; 543 s16 val16;
545 u8 addr; 544 u8 addr;
546 switch (mask) { 545 switch (mask) {
547 case IIO_CHAN_INFO_CALIBBIAS_SEPARATE: 546 case IIO_CHAN_INFO_CALIBBIAS:
548 val16 = val & ((1 << bits) - 1); 547 val16 = val & ((1 << bits) - 1);
549 addr = adis16260_addresses[chan->address][1]; 548 addr = adis16260_addresses[chan->address][1];
550 return adis16260_spi_write_reg_16(indio_dev, addr, val16); 549 return adis16260_spi_write_reg_16(indio_dev, addr, val16);
551 case IIO_CHAN_INFO_CALIBSCALE_SEPARATE: 550 case IIO_CHAN_INFO_CALIBSCALE:
552 val16 = val & ((1 << bits) - 1); 551 val16 = val & ((1 << bits) - 1);
553 addr = adis16260_addresses[chan->address][2]; 552 addr = adis16260_addresses[chan->address][2];
554 return adis16260_spi_write_reg_16(indio_dev, addr, val16); 553 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 18406c7f960..40bfb32d6f1 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 IIO_CHAN_INFO_CALIBBIAS_SEPARATE: 246 case IIO_CHAN_INFO_CALIBBIAS:
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 IIO_CHAN_INFO_QUADRATURE_CORRECTION_RAW_SEPARATE: 290 case IIO_CHAN_INFO_QUADRATURE_CORRECTION_RAW:
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;
@@ -307,8 +307,8 @@ static const struct iio_chan_spec adxrs450_channels[] = {
307 .type = IIO_ANGL_VEL, 307 .type = IIO_ANGL_VEL,
308 .modified = 1, 308 .modified = 1,
309 .channel2 = IIO_MOD_Z, 309 .channel2 = IIO_MOD_Z,
310 .info_mask = (1 << IIO_CHAN_INFO_CALIBBIAS_SEPARATE) | 310 .info_mask = IIO_CHAN_INFO_CALIBBIAS_SEPARATE_BIT |
311 (1 << IIO_CHAN_INFO_QUADRATURE_CORRECTION_RAW_SEPARATE) 311 IIO_CHAN_INFO_QUADRATURE_CORRECTION_RAW_SEPARATE_BIT,
312 }, { 312 }, {
313 .type = IIO_TEMP, 313 .type = IIO_TEMP,
314 .indexed = 1, 314 .indexed = 1,
diff --git a/drivers/staging/iio/iio.h b/drivers/staging/iio/iio.h
index 4fb4cc42399..66c2604c92c 100644
--- a/drivers/staging/iio/iio.h
+++ b/drivers/staging/iio/iio.h
@@ -27,24 +27,54 @@ enum iio_data_type {
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 /* 0 is reserverd for raw attributes */ 29 /* 0 is reserverd for raw attributes */
30 IIO_CHAN_INFO_SCALE_SHARED = 2, 30 IIO_CHAN_INFO_SCALE = 1,
31 IIO_CHAN_INFO_SCALE_SEPARATE, 31 IIO_CHAN_INFO_OFFSET,
32 IIO_CHAN_INFO_OFFSET_SHARED, 32 IIO_CHAN_INFO_CALIBSCALE,
33 IIO_CHAN_INFO_OFFSET_SEPARATE, 33 IIO_CHAN_INFO_CALIBBIAS,
34 IIO_CHAN_INFO_CALIBSCALE_SHARED, 34 IIO_CHAN_INFO_PEAK,
35 IIO_CHAN_INFO_CALIBSCALE_SEPARATE, 35 IIO_CHAN_INFO_PEAK_SCALE,
36 IIO_CHAN_INFO_CALIBBIAS_SHARED, 36 IIO_CHAN_INFO_QUADRATURE_CORRECTION_RAW,
37 IIO_CHAN_INFO_CALIBBIAS_SEPARATE, 37 IIO_CHAN_INFO_AVERAGE_RAW,
38 IIO_CHAN_INFO_PEAK_SHARED,
39 IIO_CHAN_INFO_PEAK_SEPARATE,
40 IIO_CHAN_INFO_PEAK_SCALE_SHARED,
41 IIO_CHAN_INFO_PEAK_SCALE_SEPARATE,
42 IIO_CHAN_INFO_QUADRATURE_CORRECTION_RAW_SHARED,
43 IIO_CHAN_INFO_QUADRATURE_CORRECTION_RAW_SEPARATE,
44 IIO_CHAN_INFO_AVERAGE_RAW_SHARED,
45 IIO_CHAN_INFO_AVERAGE_RAW_SEPARATE,
46}; 38};
47 39
40#define IIO_CHAN_INFO_SHARED_BIT(type) BIT(type*2)
41#define IIO_CHAN_INFO_SEPARATE_BIT(type) BIT(type*2 + 1)
42
43#define IIO_CHAN_INFO_SCALE_SEPARATE_BIT \
44 IIO_CHAN_INFO_SEPARATE_BIT(IIO_CHAN_INFO_SCALE)
45#define IIO_CHAN_INFO_SCALE_SHARED_BIT \
46 IIO_CHAN_INFO_SHARED_BIT(IIO_CHAN_INFO_SCALE)
47#define IIO_CHAN_INFO_OFFSET_SEPARATE_BIT \
48 IIO_CHAN_INFO_SEPARATE_BIT(IIO_CHAN_INFO_OFFSET)
49#define IIO_CHAN_INFO_OFFSET_SHARED_BIT \
50 IIO_CHAN_INFO_SHARED_BIT(IIO_CHAN_INFO_OFFSET)
51#define IIO_CHAN_INFO_CALIBSCALE_SEPARATE_BIT \
52 IIO_CHAN_INFO_SEPARATE_BIT(IIO_CHAN_INFO_CALIBSCALE)
53#define IIO_CHAN_INFO_CALIBSCALE_SHARED_BIT \
54 IIO_CHAN_INFO_SHARED_BIT(IIO_CHAN_INFO_CALIBSCALE)
55#define IIO_CHAN_INFO_CALIBBIAS_SEPARATE_BIT \
56 IIO_CHAN_INFO_SEPARATE_BIT(IIO_CHAN_INFO_CALIBBIAS)
57#define IIO_CHAN_INFO_CALIBBIAS_SHARED_BIT \
58 IIO_CHAN_INFO_SHARED_BIT(IIO_CHAN_INFO_CALIBBIAS)
59#define IIO_CHAN_INFO_PEAK_SEPARATE_BIT \
60 IIO_CHAN_INFO_SEPARATE_BIT(IIO_CHAN_INFO_PEAK)
61#define IIO_CHAN_INFO_PEAK_SHARED_BIT \
62 IIO_CHAN_INFO_SHARED_BIT(IIO_CHAN_INFO_PEAK)
63#define IIO_CHAN_INFO_PEAKSCALE_SEPARATE_BIT \
64 IIO_CHAN_INFO_SEPARATE_BIT(IIO_CHAN_INFO_PEAKSCALE)
65#define IIO_CHAN_INFO_PEAKSCALE_SHARED_BIT \
66 IIO_CHAN_INFO_SHARED_BIT(IIO_CHAN_INFO_PEAKSCALE)
67#define IIO_CHAN_INFO_QUADRATURE_CORRECTION_RAW_SEPARATE_BIT \
68 IIO_CHAN_INFO_SEPARATE_BIT( \
69 IIO_CHAN_INFO_QUADRATURE_CORRECTION_RAW)
70#define IIO_CHAN_INFO_QUADRATURE_CORRECTION_RAW_SHARED_BIT \
71 IIO_CHAN_INFO_SHARED_BIT( \
72 IIO_CHAN_INFO_QUADRATURE_CORRECTION_RAW)
73#define IIO_CHAN_INFO_AVERAGE_RAW_SEPARATE_BIT \
74 IIO_CHAN_INFO_SEPARATE_BIT(IIO_CHAN_INFO_AVERAGE_RAW)
75#define IIO_CHAN_INFO_AVERAGE_RAW_SHARED_BIT \
76 IIO_CHAN_INFO_SHARED_BIT(IIO_CHAN_INFO_AVERAGE_RAW)
77
48enum iio_endian { 78enum iio_endian {
49 IIO_CPU, 79 IIO_CPU,
50 IIO_BE, 80 IIO_BE,
diff --git a/drivers/staging/iio/iio_simple_dummy.c b/drivers/staging/iio/iio_simple_dummy.c
index 2196ff19f7b..228f991d40e 100644
--- a/drivers/staging/iio/iio_simple_dummy.c
+++ b/drivers/staging/iio/iio_simple_dummy.c
@@ -77,13 +77,13 @@ static struct iio_chan_spec iio_dummy_channels[] = {
77 * Offset for userspace to apply prior to scale 77 * Offset for userspace to apply prior to scale
78 * when converting to standard units (microvolts) 78 * when converting to standard units (microvolts)
79 */ 79 */
80 (1 << IIO_CHAN_INFO_OFFSET_SEPARATE) | 80 IIO_CHAN_INFO_OFFSET_SEPARATE_BIT |
81 /* 81 /*
82 * in_voltage0_scale 82 * in_voltage0_scale
83 * Multipler for userspace to apply post offset 83 * Multipler for userspace to apply post offset
84 * when converting to standard units (microvolts) 84 * when converting to standard units (microvolts)
85 */ 85 */
86 (1 << IIO_CHAN_INFO_SCALE_SEPARATE), 86 IIO_CHAN_INFO_SCALE_SEPARATE_BIT,
87 /* The ordering of elements in the buffer via an enum */ 87 /* The ordering of elements in the buffer via an enum */
88 .scan_index = voltage0, 88 .scan_index = voltage0,
89 .scan_type = { /* Description of storage in buffer */ 89 .scan_type = { /* Description of storage in buffer */
@@ -118,7 +118,7 @@ static struct iio_chan_spec iio_dummy_channels[] = {
118 * Shared version of scale - shared by differential 118 * Shared version of scale - shared by differential
119 * input channels of type IIO_VOLTAGE. 119 * input channels of type IIO_VOLTAGE.
120 */ 120 */
121 (1 << IIO_CHAN_INFO_SCALE_SHARED), 121 IIO_CHAN_INFO_SCALE_SHARED_BIT,
122 .scan_index = diffvoltage1m2, 122 .scan_index = diffvoltage1m2,
123 .scan_type = { /* Description of storage in buffer */ 123 .scan_type = { /* Description of storage in buffer */
124 .sign = 's', /* signed */ 124 .sign = 's', /* signed */
@@ -135,7 +135,7 @@ static struct iio_chan_spec iio_dummy_channels[] = {
135 .channel = 3, 135 .channel = 3,
136 .channel2 = 4, 136 .channel2 = 4,
137 .info_mask = 137 .info_mask =
138 (1 << IIO_CHAN_INFO_SCALE_SHARED), 138 IIO_CHAN_INFO_SCALE_SHARED_BIT,
139 .scan_index = diffvoltage3m4, 139 .scan_index = diffvoltage3m4,
140 .scan_type = { 140 .scan_type = {
141 .sign = 's', 141 .sign = 's',
@@ -160,7 +160,7 @@ static struct iio_chan_spec iio_dummy_channels[] = {
160 * seeing the readings. Typically part of hardware 160 * seeing the readings. Typically part of hardware
161 * calibration. 161 * calibration.
162 */ 162 */
163 (1 << IIO_CHAN_INFO_CALIBBIAS_SEPARATE), 163 IIO_CHAN_INFO_CALIBBIAS_SEPARATE_BIT,
164 .scan_index = accelx, 164 .scan_index = accelx,
165 .scan_type = { /* Description of storage in buffer */ 165 .scan_type = { /* Description of storage in buffer */
166 .sign = 's', /* signed */ 166 .sign = 's', /* signed */
@@ -229,29 +229,32 @@ static int iio_dummy_read_raw(struct iio_dev *indio_dev,
229 break; 229 break;
230 } 230 }
231 break; 231 break;
232 case IIO_CHAN_INFO_OFFSET_SEPARATE: 232 case IIO_CHAN_INFO_OFFSET:
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 IIO_CHAN_INFO_SCALE_SEPARATE: 237 case IIO_CHAN_INFO_SCALE:
238 /* only single ended adc -> 0.001333 */ 238 switch (chan->differential) {
239 *val = 0; 239 case 0:
240 *val2 = 1333; 240 /* only single ended adc -> 0.001333 */
241 ret = IIO_VAL_INT_PLUS_MICRO; 241 *val = 0;
242 break; 242 *val2 = 1333;
243 case IIO_CHAN_INFO_SCALE_SHARED: 243 ret = IIO_VAL_INT_PLUS_MICRO;
244 /* all differential adc channels -> 0.000001344 */ 244 break;
245 *val = 0; 245 case 1:
246 *val2 = 1344; 246 /* all differential adc channels -> 0.000001344 */
247 ret = IIO_VAL_INT_PLUS_NANO; 247 *val = 0;
248 *val2 = 1344;
249 ret = IIO_VAL_INT_PLUS_NANO;
250 }
248 break; 251 break;
249 case IIO_CHAN_INFO_CALIBBIAS_SEPARATE: 252 case IIO_CHAN_INFO_CALIBBIAS:
250 /* only the acceleration axis - read from cache */ 253 /* only the acceleration axis - read from cache */
251 *val = st->accel_calibbias; 254 *val = st->accel_calibbias;
252 ret = IIO_VAL_INT; 255 ret = IIO_VAL_INT;
253 break; 256 break;
254 case IIO_CHAN_INFO_CALIBSCALE_SEPARATE: 257 case IIO_CHAN_INFO_CALIBSCALE:
255 *val = st->accel_calibscale->val; 258 *val = st->accel_calibscale->val;
256 *val2 = st->accel_calibscale->val2; 259 *val2 = st->accel_calibscale->val2;
257 ret = IIO_VAL_INT_PLUS_MICRO; 260 ret = IIO_VAL_INT_PLUS_MICRO;
@@ -296,7 +299,7 @@ static int iio_dummy_write_raw(struct iio_dev *indio_dev,
296 st->dac_val = val; 299 st->dac_val = val;
297 mutex_unlock(&st->lock); 300 mutex_unlock(&st->lock);
298 return 0; 301 return 0;
299 case IIO_CHAN_INFO_CALIBBIAS_SEPARATE: 302 case IIO_CHAN_INFO_CALIBBIAS:
300 mutex_lock(&st->lock); 303 mutex_lock(&st->lock);
301 /* Compare against table - hard matching here */ 304 /* Compare against table - hard matching here */
302 for (i = 0; i < ARRAY_SIZE(dummy_scales); i++) 305 for (i = 0; i < ARRAY_SIZE(dummy_scales); i++)
diff --git a/drivers/staging/iio/impedance-analyzer/ad5933.c b/drivers/staging/iio/impedance-analyzer/ad5933.c
index 430743dfe9e..966f768819f 100644
--- a/drivers/staging/iio/impedance-analyzer/ad5933.c
+++ b/drivers/staging/iio/impedance-analyzer/ad5933.c
@@ -113,10 +113,10 @@ static struct iio_chan_spec ad5933_channels[] = {
113 0, AD5933_REG_TEMP_DATA, IIO_ST('s', 14, 16, 0), 0), 113 0, AD5933_REG_TEMP_DATA, IIO_ST('s', 14, 16, 0), 0),
114 /* Ring Channels */ 114 /* Ring Channels */
115 IIO_CHAN(IIO_VOLTAGE, 0, 1, 0, "real_raw", 0, 0, 115 IIO_CHAN(IIO_VOLTAGE, 0, 1, 0, "real_raw", 0, 0,
116 (1 << IIO_CHAN_INFO_SCALE_SEPARATE), 116 IIO_CHAN_INFO_SCALE_SEPARATE_BIT,
117 AD5933_REG_REAL_DATA, 0, IIO_ST('s', 16, 16, 0), 0), 117 AD5933_REG_REAL_DATA, 0, IIO_ST('s', 16, 16, 0), 0),
118 IIO_CHAN(IIO_VOLTAGE, 0, 1, 0, "imag_raw", 0, 0, 118 IIO_CHAN(IIO_VOLTAGE, 0, 1, 0, "imag_raw", 0, 0,
119 (1 << IIO_CHAN_INFO_SCALE_SEPARATE), 119 IIO_CHAN_INFO_SCALE_SEPARATE_BIT,
120 AD5933_REG_IMAG_DATA, 1, IIO_ST('s', 16, 16, 0), 0), 120 AD5933_REG_IMAG_DATA, 1, IIO_ST('s', 16, 16, 0), 0),
121}; 121};
122 122
diff --git a/drivers/staging/iio/imu/adis16400_core.c b/drivers/staging/iio/imu/adis16400_core.c
index 0018272625c..174454a8294 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 IIO_CHAN_INFO_CALIBBIAS_SEPARATE: 467 case IIO_CHAN_INFO_CALIBBIAS:
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,7 @@ 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 IIO_CHAN_INFO_SCALE_SHARED: 507 case IIO_CHAN_INFO_SCALE:
508 case IIO_CHAN_INFO_SCALE_SEPARATE:
509 switch (chan->type) { 508 switch (chan->type) {
510 case IIO_ANGL_VEL: 509 case IIO_ANGL_VEL:
511 *val = 0; 510 *val = 0;
@@ -533,7 +532,7 @@ static int adis16400_read_raw(struct iio_dev *indio_dev,
533 default: 532 default:
534 return -EINVAL; 533 return -EINVAL;
535 } 534 }
536 case IIO_CHAN_INFO_CALIBBIAS_SEPARATE: 535 case IIO_CHAN_INFO_CALIBBIAS:
537 mutex_lock(&indio_dev->mlock); 536 mutex_lock(&indio_dev->mlock);
538 ret = adis16400_spi_read_reg_16(indio_dev, 537 ret = adis16400_spi_read_reg_16(indio_dev,
539 adis16400_addresses[chan->address][1], 538 adis16400_addresses[chan->address][1],
@@ -544,7 +543,7 @@ static int adis16400_read_raw(struct iio_dev *indio_dev,
544 val16 = ((val16 & 0xFFF) << 4) >> 4; 543 val16 = ((val16 & 0xFFF) << 4) >> 4;
545 *val = val16; 544 *val = val16;
546 return IIO_VAL_INT; 545 return IIO_VAL_INT;
547 case IIO_CHAN_INFO_OFFSET_SEPARATE: 546 case IIO_CHAN_INFO_OFFSET:
548 /* currently only temperature */ 547 /* currently only temperature */
549 *val = 198; 548 *val = 198;
550 *val2 = 160000; 549 *val2 = 160000;
@@ -560,7 +559,7 @@ static struct iio_chan_spec adis16400_channels[] = {
560 .indexed = 1, 559 .indexed = 1,
561 .channel = 0, 560 .channel = 0,
562 .extend_name = "supply", 561 .extend_name = "supply",
563 .info_mask = (1 << IIO_CHAN_INFO_SCALE_SEPARATE), 562 .info_mask = IIO_CHAN_INFO_SCALE_SEPARATE_BIT,
564 .address = in_supply, 563 .address = in_supply,
565 .scan_index = ADIS16400_SCAN_SUPPLY, 564 .scan_index = ADIS16400_SCAN_SUPPLY,
566 .scan_type = IIO_ST('u', 14, 16, 0) 565 .scan_type = IIO_ST('u', 14, 16, 0)
@@ -568,8 +567,8 @@ static struct iio_chan_spec adis16400_channels[] = {
568 .type = IIO_ANGL_VEL, 567 .type = IIO_ANGL_VEL,
569 .modified = 1, 568 .modified = 1,
570 .channel2 = IIO_MOD_X, 569 .channel2 = IIO_MOD_X,
571 .info_mask = (1 << IIO_CHAN_INFO_CALIBBIAS_SEPARATE) | 570 .info_mask = IIO_CHAN_INFO_CALIBBIAS_SEPARATE_BIT |
572 (1 << IIO_CHAN_INFO_SCALE_SHARED), 571 IIO_CHAN_INFO_SCALE_SHARED_BIT,
573 .address = gyro_x, 572 .address = gyro_x,
574 .scan_index = ADIS16400_SCAN_GYRO_X, 573 .scan_index = ADIS16400_SCAN_GYRO_X,
575 .scan_type = IIO_ST('s', 14, 16, 0) 574 .scan_type = IIO_ST('s', 14, 16, 0)
@@ -577,8 +576,8 @@ static struct iio_chan_spec adis16400_channels[] = {
577 .type = IIO_ANGL_VEL, 576 .type = IIO_ANGL_VEL,
578 .modified = 1, 577 .modified = 1,
579 .channel2 = IIO_MOD_Y, 578 .channel2 = IIO_MOD_Y,
580 .info_mask = (1 << IIO_CHAN_INFO_CALIBBIAS_SEPARATE) | 579 .info_mask = IIO_CHAN_INFO_CALIBBIAS_SEPARATE_BIT |
581 (1 << IIO_CHAN_INFO_SCALE_SHARED), 580 IIO_CHAN_INFO_SCALE_SHARED_BIT,
582 .address = gyro_y, 581 .address = gyro_y,
583 .scan_index = ADIS16400_SCAN_GYRO_Y, 582 .scan_index = ADIS16400_SCAN_GYRO_Y,
584 .scan_type = IIO_ST('s', 14, 16, 0), 583 .scan_type = IIO_ST('s', 14, 16, 0),
@@ -586,8 +585,8 @@ static struct iio_chan_spec adis16400_channels[] = {
586 .type = IIO_ANGL_VEL, 585 .type = IIO_ANGL_VEL,
587 .modified = 1, 586 .modified = 1,
588 .channel2 = IIO_MOD_Z, 587 .channel2 = IIO_MOD_Z,
589 .info_mask = (1 << IIO_CHAN_INFO_CALIBBIAS_SEPARATE) | 588 .info_mask = IIO_CHAN_INFO_CALIBBIAS_SEPARATE_BIT |
590 (1 << IIO_CHAN_INFO_SCALE_SHARED), 589 IIO_CHAN_INFO_SCALE_SHARED_BIT,
591 .address = gyro_z, 590 .address = gyro_z,
592 .scan_index = ADIS16400_SCAN_GYRO_Z, 591 .scan_index = ADIS16400_SCAN_GYRO_Z,
593 .scan_type = IIO_ST('s', 14, 16, 0), 592 .scan_type = IIO_ST('s', 14, 16, 0),
@@ -595,8 +594,8 @@ static struct iio_chan_spec adis16400_channels[] = {
595 .type = IIO_ACCEL, 594 .type = IIO_ACCEL,
596 .modified = 1, 595 .modified = 1,
597 .channel2 = IIO_MOD_X, 596 .channel2 = IIO_MOD_X,
598 .info_mask = (1 << IIO_CHAN_INFO_CALIBBIAS_SEPARATE) | 597 .info_mask = IIO_CHAN_INFO_CALIBBIAS_SEPARATE_BIT |
599 (1 << IIO_CHAN_INFO_SCALE_SHARED), 598 IIO_CHAN_INFO_SCALE_SHARED_BIT,
600 .address = accel_x, 599 .address = accel_x,
601 .scan_index = ADIS16400_SCAN_ACC_X, 600 .scan_index = ADIS16400_SCAN_ACC_X,
602 .scan_type = IIO_ST('s', 14, 16, 0), 601 .scan_type = IIO_ST('s', 14, 16, 0),
@@ -604,8 +603,8 @@ static struct iio_chan_spec adis16400_channels[] = {
604 .type = IIO_ACCEL, 603 .type = IIO_ACCEL,
605 .modified = 1, 604 .modified = 1,
606 .channel2 = IIO_MOD_Y, 605 .channel2 = IIO_MOD_Y,
607 .info_mask = (1 << IIO_CHAN_INFO_CALIBBIAS_SEPARATE) | 606 .info_mask = IIO_CHAN_INFO_CALIBBIAS_SEPARATE_BIT |
608 (1 << IIO_CHAN_INFO_SCALE_SHARED), 607 IIO_CHAN_INFO_SCALE_SHARED_BIT,
609 .address = accel_y, 608 .address = accel_y,
610 .scan_index = ADIS16400_SCAN_ACC_Y, 609 .scan_index = ADIS16400_SCAN_ACC_Y,
611 .scan_type = IIO_ST('s', 14, 16, 0), 610 .scan_type = IIO_ST('s', 14, 16, 0),
@@ -613,8 +612,8 @@ static struct iio_chan_spec adis16400_channels[] = {
613 .type = IIO_ACCEL, 612 .type = IIO_ACCEL,
614 .modified = 1, 613 .modified = 1,
615 .channel2 = IIO_MOD_Z, 614 .channel2 = IIO_MOD_Z,
616 .info_mask = (1 << IIO_CHAN_INFO_CALIBBIAS_SEPARATE) | 615 .info_mask = IIO_CHAN_INFO_CALIBBIAS_SEPARATE_BIT |
617 (1 << IIO_CHAN_INFO_SCALE_SHARED), 616 IIO_CHAN_INFO_SCALE_SHARED_BIT,
618 .address = accel_z, 617 .address = accel_z,
619 .scan_index = ADIS16400_SCAN_ACC_Z, 618 .scan_index = ADIS16400_SCAN_ACC_Z,
620 .scan_type = IIO_ST('s', 14, 16, 0), 619 .scan_type = IIO_ST('s', 14, 16, 0),
@@ -622,7 +621,7 @@ static struct iio_chan_spec adis16400_channels[] = {
622 .type = IIO_MAGN, 621 .type = IIO_MAGN,
623 .modified = 1, 622 .modified = 1,
624 .channel2 = IIO_MOD_X, 623 .channel2 = IIO_MOD_X,
625 .info_mask = (1 << IIO_CHAN_INFO_SCALE_SHARED), 624 .info_mask = IIO_CHAN_INFO_SCALE_SHARED_BIT,
626 .address = magn_x, 625 .address = magn_x,
627 .scan_index = ADIS16400_SCAN_MAGN_X, 626 .scan_index = ADIS16400_SCAN_MAGN_X,
628 .scan_type = IIO_ST('s', 14, 16, 0), 627 .scan_type = IIO_ST('s', 14, 16, 0),
@@ -630,7 +629,7 @@ static struct iio_chan_spec adis16400_channels[] = {
630 .type = IIO_MAGN, 629 .type = IIO_MAGN,
631 .modified = 1, 630 .modified = 1,
632 .channel2 = IIO_MOD_Y, 631 .channel2 = IIO_MOD_Y,
633 .info_mask = (1 << IIO_CHAN_INFO_SCALE_SHARED), 632 .info_mask = IIO_CHAN_INFO_SCALE_SHARED_BIT,
634 .address = magn_y, 633 .address = magn_y,
635 .scan_index = ADIS16400_SCAN_MAGN_Y, 634 .scan_index = ADIS16400_SCAN_MAGN_Y,
636 .scan_type = IIO_ST('s', 14, 16, 0), 635 .scan_type = IIO_ST('s', 14, 16, 0),
@@ -638,7 +637,7 @@ static struct iio_chan_spec adis16400_channels[] = {
638 .type = IIO_MAGN, 637 .type = IIO_MAGN,
639 .modified = 1, 638 .modified = 1,
640 .channel2 = IIO_MOD_Z, 639 .channel2 = IIO_MOD_Z,
641 .info_mask = (1 << IIO_CHAN_INFO_SCALE_SHARED), 640 .info_mask = IIO_CHAN_INFO_SCALE_SHARED_BIT,
642 .address = magn_z, 641 .address = magn_z,
643 .scan_index = ADIS16400_SCAN_MAGN_Z, 642 .scan_index = ADIS16400_SCAN_MAGN_Z,
644 .scan_type = IIO_ST('s', 14, 16, 0), 643 .scan_type = IIO_ST('s', 14, 16, 0),
@@ -646,8 +645,8 @@ static struct iio_chan_spec adis16400_channels[] = {
646 .type = IIO_TEMP, 645 .type = IIO_TEMP,
647 .indexed = 1, 646 .indexed = 1,
648 .channel = 0, 647 .channel = 0,
649 .info_mask = (1 << IIO_CHAN_INFO_OFFSET_SEPARATE) | 648 .info_mask = IIO_CHAN_INFO_OFFSET_SEPARATE_BIT |
650 (1 << IIO_CHAN_INFO_SCALE_SEPARATE), 649 IIO_CHAN_INFO_SCALE_SEPARATE_BIT,
651 .address = temp, 650 .address = temp,
652 .scan_index = ADIS16400_SCAN_TEMP, 651 .scan_index = ADIS16400_SCAN_TEMP,
653 .scan_type = IIO_ST('s', 12, 16, 0), 652 .scan_type = IIO_ST('s', 12, 16, 0),
@@ -655,7 +654,7 @@ static struct iio_chan_spec adis16400_channels[] = {
655 .type = IIO_VOLTAGE, 654 .type = IIO_VOLTAGE,
656 .indexed = 1, 655 .indexed = 1,
657 .channel = 1, 656 .channel = 1,
658 .info_mask = (1 << IIO_CHAN_INFO_SCALE_SEPARATE), 657 .info_mask = IIO_CHAN_INFO_SCALE_SEPARATE_BIT,
659 .address = in1, 658 .address = in1,
660 .scan_index = ADIS16400_SCAN_ADC_0, 659 .scan_index = ADIS16400_SCAN_ADC_0,
661 .scan_type = IIO_ST('s', 12, 16, 0), 660 .scan_type = IIO_ST('s', 12, 16, 0),
@@ -669,7 +668,7 @@ static struct iio_chan_spec adis16350_channels[] = {
669 .indexed = 1, 668 .indexed = 1,
670 .channel = 0, 669 .channel = 0,
671 .extend_name = "supply", 670 .extend_name = "supply",
672 .info_mask = (1 << IIO_CHAN_INFO_SCALE_SEPARATE), 671 .info_mask = IIO_CHAN_INFO_SCALE_SEPARATE_BIT,
673 .address = in_supply, 672 .address = in_supply,
674 .scan_index = ADIS16400_SCAN_SUPPLY, 673 .scan_index = ADIS16400_SCAN_SUPPLY,
675 .scan_type = IIO_ST('u', 12, 16, 0) 674 .scan_type = IIO_ST('u', 12, 16, 0)
@@ -677,8 +676,8 @@ static struct iio_chan_spec adis16350_channels[] = {
677 .type = IIO_ANGL_VEL, 676 .type = IIO_ANGL_VEL,
678 .modified = 1, 677 .modified = 1,
679 .channel2 = IIO_MOD_X, 678 .channel2 = IIO_MOD_X,
680 .info_mask = (1 << IIO_CHAN_INFO_CALIBBIAS_SEPARATE) | 679 .info_mask = IIO_CHAN_INFO_CALIBBIAS_SEPARATE_BIT |
681 (1 << IIO_CHAN_INFO_SCALE_SHARED), 680 IIO_CHAN_INFO_SCALE_SHARED_BIT,
682 .address = gyro_x, 681 .address = gyro_x,
683 .scan_index = ADIS16400_SCAN_GYRO_X, 682 .scan_index = ADIS16400_SCAN_GYRO_X,
684 .scan_type = IIO_ST('s', 14, 16, 0) 683 .scan_type = IIO_ST('s', 14, 16, 0)
@@ -686,8 +685,8 @@ static struct iio_chan_spec adis16350_channels[] = {
686 .type = IIO_ANGL_VEL, 685 .type = IIO_ANGL_VEL,
687 .modified = 1, 686 .modified = 1,
688 .channel2 = IIO_MOD_Y, 687 .channel2 = IIO_MOD_Y,
689 .info_mask = (1 << IIO_CHAN_INFO_CALIBBIAS_SEPARATE) | 688 .info_mask = IIO_CHAN_INFO_CALIBBIAS_SEPARATE_BIT |
690 (1 << IIO_CHAN_INFO_SCALE_SHARED), 689 IIO_CHAN_INFO_SCALE_SHARED_BIT,
691 .address = gyro_y, 690 .address = gyro_y,
692 .scan_index = ADIS16400_SCAN_GYRO_Y, 691 .scan_index = ADIS16400_SCAN_GYRO_Y,
693 .scan_type = IIO_ST('s', 14, 16, 0), 692 .scan_type = IIO_ST('s', 14, 16, 0),
@@ -695,8 +694,8 @@ static struct iio_chan_spec adis16350_channels[] = {
695 .type = IIO_ANGL_VEL, 694 .type = IIO_ANGL_VEL,
696 .modified = 1, 695 .modified = 1,
697 .channel2 = IIO_MOD_Z, 696 .channel2 = IIO_MOD_Z,
698 .info_mask = (1 << IIO_CHAN_INFO_CALIBBIAS_SEPARATE) | 697 .info_mask = IIO_CHAN_INFO_CALIBBIAS_SEPARATE_BIT |
699 (1 << IIO_CHAN_INFO_SCALE_SHARED), 698 IIO_CHAN_INFO_SCALE_SHARED_BIT,
700 .address = gyro_z, 699 .address = gyro_z,
701 .scan_index = ADIS16400_SCAN_GYRO_Z, 700 .scan_index = ADIS16400_SCAN_GYRO_Z,
702 .scan_type = IIO_ST('s', 14, 16, 0), 701 .scan_type = IIO_ST('s', 14, 16, 0),
@@ -704,8 +703,8 @@ static struct iio_chan_spec adis16350_channels[] = {
704 .type = IIO_ACCEL, 703 .type = IIO_ACCEL,
705 .modified = 1, 704 .modified = 1,
706 .channel2 = IIO_MOD_X, 705 .channel2 = IIO_MOD_X,
707 .info_mask = (1 << IIO_CHAN_INFO_CALIBBIAS_SEPARATE) | 706 .info_mask = IIO_CHAN_INFO_CALIBBIAS_SEPARATE_BIT |
708 (1 << IIO_CHAN_INFO_SCALE_SHARED), 707 IIO_CHAN_INFO_SCALE_SHARED_BIT,
709 .address = accel_x, 708 .address = accel_x,
710 .scan_index = ADIS16400_SCAN_ACC_X, 709 .scan_index = ADIS16400_SCAN_ACC_X,
711 .scan_type = IIO_ST('s', 14, 16, 0), 710 .scan_type = IIO_ST('s', 14, 16, 0),
@@ -713,8 +712,8 @@ static struct iio_chan_spec adis16350_channels[] = {
713 .type = IIO_ACCEL, 712 .type = IIO_ACCEL,
714 .modified = 1, 713 .modified = 1,
715 .channel2 = IIO_MOD_Y, 714 .channel2 = IIO_MOD_Y,
716 .info_mask = (1 << IIO_CHAN_INFO_CALIBBIAS_SEPARATE) | 715 .info_mask = IIO_CHAN_INFO_CALIBBIAS_SEPARATE_BIT |
717 (1 << IIO_CHAN_INFO_SCALE_SHARED), 716 IIO_CHAN_INFO_SCALE_SHARED_BIT,
718 .address = accel_y, 717 .address = accel_y,
719 .scan_index = ADIS16400_SCAN_ACC_Y, 718 .scan_index = ADIS16400_SCAN_ACC_Y,
720 .scan_type = IIO_ST('s', 14, 16, 0), 719 .scan_type = IIO_ST('s', 14, 16, 0),
@@ -722,8 +721,8 @@ static struct iio_chan_spec adis16350_channels[] = {
722 .type = IIO_ACCEL, 721 .type = IIO_ACCEL,
723 .modified = 1, 722 .modified = 1,
724 .channel2 = IIO_MOD_Z, 723 .channel2 = IIO_MOD_Z,
725 .info_mask = (1 << IIO_CHAN_INFO_CALIBBIAS_SEPARATE) | 724 .info_mask = IIO_CHAN_INFO_CALIBBIAS_SEPARATE_BIT |
726 (1 << IIO_CHAN_INFO_SCALE_SHARED), 725 IIO_CHAN_INFO_SCALE_SHARED_BIT,
727 .address = accel_z, 726 .address = accel_z,
728 .scan_index = ADIS16400_SCAN_ACC_Z, 727 .scan_index = ADIS16400_SCAN_ACC_Z,
729 .scan_type = IIO_ST('s', 14, 16, 0), 728 .scan_type = IIO_ST('s', 14, 16, 0),
@@ -732,8 +731,8 @@ static struct iio_chan_spec adis16350_channels[] = {
732 .indexed = 1, 731 .indexed = 1,
733 .channel = 0, 732 .channel = 0,
734 .extend_name = "x", 733 .extend_name = "x",
735 .info_mask = (1 << IIO_CHAN_INFO_OFFSET_SEPARATE) | 734 .info_mask = IIO_CHAN_INFO_OFFSET_SEPARATE_BIT |
736 (1 << IIO_CHAN_INFO_SCALE_SEPARATE), 735 IIO_CHAN_INFO_SCALE_SEPARATE_BIT,
737 .address = temp0, 736 .address = temp0,
738 .scan_index = ADIS16350_SCAN_TEMP_X, 737 .scan_index = ADIS16350_SCAN_TEMP_X,
739 .scan_type = IIO_ST('s', 12, 16, 0), 738 .scan_type = IIO_ST('s', 12, 16, 0),
@@ -742,8 +741,8 @@ static struct iio_chan_spec adis16350_channels[] = {
742 .indexed = 1, 741 .indexed = 1,
743 .channel = 1, 742 .channel = 1,
744 .extend_name = "y", 743 .extend_name = "y",
745 .info_mask = (1 << IIO_CHAN_INFO_OFFSET_SEPARATE) | 744 .info_mask = IIO_CHAN_INFO_OFFSET_SEPARATE_BIT |
746 (1 << IIO_CHAN_INFO_SCALE_SEPARATE), 745 IIO_CHAN_INFO_SCALE_SEPARATE_BIT,
747 .address = temp1, 746 .address = temp1,
748 .scan_index = ADIS16350_SCAN_TEMP_Y, 747 .scan_index = ADIS16350_SCAN_TEMP_Y,
749 .scan_type = IIO_ST('s', 12, 16, 0), 748 .scan_type = IIO_ST('s', 12, 16, 0),
@@ -752,8 +751,8 @@ static struct iio_chan_spec adis16350_channels[] = {
752 .indexed = 1, 751 .indexed = 1,
753 .channel = 2, 752 .channel = 2,
754 .extend_name = "z", 753 .extend_name = "z",
755 .info_mask = (1 << IIO_CHAN_INFO_OFFSET_SEPARATE) | 754 .info_mask = IIO_CHAN_INFO_OFFSET_SEPARATE_BIT |
756 (1 << IIO_CHAN_INFO_SCALE_SEPARATE), 755 IIO_CHAN_INFO_SCALE_SEPARATE_BIT,
757 .address = temp2, 756 .address = temp2,
758 .scan_index = ADIS16350_SCAN_TEMP_Z, 757 .scan_index = ADIS16350_SCAN_TEMP_Z,
759 .scan_type = IIO_ST('s', 12, 16, 0), 758 .scan_type = IIO_ST('s', 12, 16, 0),
@@ -761,7 +760,7 @@ static struct iio_chan_spec adis16350_channels[] = {
761 .type = IIO_VOLTAGE, 760 .type = IIO_VOLTAGE,
762 .indexed = 1, 761 .indexed = 1,
763 .channel = 1, 762 .channel = 1,
764 .info_mask = (1 << IIO_CHAN_INFO_SCALE_SEPARATE), 763 .info_mask = IIO_CHAN_INFO_SCALE_SEPARATE_BIT,
765 .address = in1, 764 .address = in1,
766 .scan_index = ADIS16350_SCAN_ADC_0, 765 .scan_index = ADIS16350_SCAN_ADC_0,
767 .scan_type = IIO_ST('s', 12, 16, 0), 766 .scan_type = IIO_ST('s', 12, 16, 0),
@@ -775,7 +774,7 @@ static struct iio_chan_spec adis16300_channels[] = {
775 .indexed = 1, 774 .indexed = 1,
776 .channel = 0, 775 .channel = 0,
777 .extend_name = "supply", 776 .extend_name = "supply",
778 .info_mask = (1 << IIO_CHAN_INFO_SCALE_SEPARATE), 777 .info_mask = IIO_CHAN_INFO_SCALE_SEPARATE_BIT,
779 .address = in_supply, 778 .address = in_supply,
780 .scan_index = ADIS16400_SCAN_SUPPLY, 779 .scan_index = ADIS16400_SCAN_SUPPLY,
781 .scan_type = IIO_ST('u', 12, 16, 0) 780 .scan_type = IIO_ST('u', 12, 16, 0)
@@ -783,8 +782,8 @@ static struct iio_chan_spec adis16300_channels[] = {
783 .type = IIO_ANGL_VEL, 782 .type = IIO_ANGL_VEL,
784 .modified = 1, 783 .modified = 1,
785 .channel2 = IIO_MOD_X, 784 .channel2 = IIO_MOD_X,
786 .info_mask = (1 << IIO_CHAN_INFO_CALIBBIAS_SEPARATE) | 785 .info_mask = IIO_CHAN_INFO_CALIBBIAS_SEPARATE_BIT |
787 (1 << IIO_CHAN_INFO_SCALE_SHARED), 786 IIO_CHAN_INFO_SCALE_SHARED_BIT,
788 .address = gyro_x, 787 .address = gyro_x,
789 .scan_index = ADIS16400_SCAN_GYRO_X, 788 .scan_index = ADIS16400_SCAN_GYRO_X,
790 .scan_type = IIO_ST('s', 14, 16, 0), 789 .scan_type = IIO_ST('s', 14, 16, 0),
@@ -792,8 +791,8 @@ static struct iio_chan_spec adis16300_channels[] = {
792 .type = IIO_ACCEL, 791 .type = IIO_ACCEL,
793 .modified = 1, 792 .modified = 1,
794 .channel2 = IIO_MOD_X, 793 .channel2 = IIO_MOD_X,
795 .info_mask = (1 << IIO_CHAN_INFO_CALIBBIAS_SEPARATE) | 794 .info_mask = IIO_CHAN_INFO_CALIBBIAS_SEPARATE_BIT |
796 (1 << IIO_CHAN_INFO_SCALE_SHARED), 795 IIO_CHAN_INFO_SCALE_SHARED_BIT,
797 .address = accel_x, 796 .address = accel_x,
798 .scan_index = ADIS16400_SCAN_ACC_X, 797 .scan_index = ADIS16400_SCAN_ACC_X,
799 .scan_type = IIO_ST('s', 14, 16, 0), 798 .scan_type = IIO_ST('s', 14, 16, 0),
@@ -801,8 +800,8 @@ static struct iio_chan_spec adis16300_channels[] = {
801 .type = IIO_ACCEL, 800 .type = IIO_ACCEL,
802 .modified = 1, 801 .modified = 1,
803 .channel2 = IIO_MOD_Y, 802 .channel2 = IIO_MOD_Y,
804 .info_mask = (1 << IIO_CHAN_INFO_CALIBBIAS_SEPARATE) | 803 .info_mask = IIO_CHAN_INFO_CALIBBIAS_SEPARATE_BIT |
805 (1 << IIO_CHAN_INFO_SCALE_SHARED), 804 IIO_CHAN_INFO_SCALE_SHARED_BIT,
806 .address = accel_y, 805 .address = accel_y,
807 .scan_index = ADIS16400_SCAN_ACC_Y, 806 .scan_index = ADIS16400_SCAN_ACC_Y,
808 .scan_type = IIO_ST('s', 14, 16, 0), 807 .scan_type = IIO_ST('s', 14, 16, 0),
@@ -810,8 +809,8 @@ static struct iio_chan_spec adis16300_channels[] = {
810 .type = IIO_ACCEL, 809 .type = IIO_ACCEL,
811 .modified = 1, 810 .modified = 1,
812 .channel2 = IIO_MOD_Z, 811 .channel2 = IIO_MOD_Z,
813 .info_mask = (1 << IIO_CHAN_INFO_CALIBBIAS_SEPARATE) | 812 .info_mask = IIO_CHAN_INFO_CALIBBIAS_SEPARATE_BIT |
814 (1 << IIO_CHAN_INFO_SCALE_SHARED), 813 IIO_CHAN_INFO_SCALE_SHARED_BIT,
815 .address = accel_z, 814 .address = accel_z,
816 .scan_index = ADIS16400_SCAN_ACC_Z, 815 .scan_index = ADIS16400_SCAN_ACC_Z,
817 .scan_type = IIO_ST('s', 14, 16, 0), 816 .scan_type = IIO_ST('s', 14, 16, 0),
@@ -819,8 +818,8 @@ static struct iio_chan_spec adis16300_channels[] = {
819 .type = IIO_TEMP, 818 .type = IIO_TEMP,
820 .indexed = 1, 819 .indexed = 1,
821 .channel = 0, 820 .channel = 0,
822 .info_mask = (1 << IIO_CHAN_INFO_OFFSET_SEPARATE) | 821 .info_mask = IIO_CHAN_INFO_OFFSET_SEPARATE_BIT |
823 (1 << IIO_CHAN_INFO_SCALE_SEPARATE), 822 IIO_CHAN_INFO_SCALE_SEPARATE_BIT,
824 .address = temp, 823 .address = temp,
825 .scan_index = ADIS16400_SCAN_TEMP, 824 .scan_index = ADIS16400_SCAN_TEMP,
826 .scan_type = IIO_ST('s', 12, 16, 0), 825 .scan_type = IIO_ST('s', 12, 16, 0),
@@ -828,7 +827,7 @@ static struct iio_chan_spec adis16300_channels[] = {
828 .type = IIO_VOLTAGE, 827 .type = IIO_VOLTAGE,
829 .indexed = 1, 828 .indexed = 1,
830 .channel = 1, 829 .channel = 1,
831 .info_mask = (1 << IIO_CHAN_INFO_SCALE_SEPARATE), 830 .info_mask = IIO_CHAN_INFO_SCALE_SEPARATE_BIT,
832 .address = in1, 831 .address = in1,
833 .scan_index = ADIS16350_SCAN_ADC_0, 832 .scan_index = ADIS16350_SCAN_ADC_0,
834 .scan_type = IIO_ST('s', 12, 16, 0), 833 .scan_type = IIO_ST('s', 12, 16, 0),
@@ -836,7 +835,7 @@ static struct iio_chan_spec adis16300_channels[] = {
836 .type = IIO_INCLI, 835 .type = IIO_INCLI,
837 .modified = 1, 836 .modified = 1,
838 .channel2 = IIO_MOD_X, 837 .channel2 = IIO_MOD_X,
839 .info_mask = (1 << IIO_CHAN_INFO_SCALE_SHARED), 838 .info_mask = IIO_CHAN_INFO_SCALE_SHARED_BIT,
840 .address = incli_x, 839 .address = incli_x,
841 .scan_index = ADIS16300_SCAN_INCLI_X, 840 .scan_index = ADIS16300_SCAN_INCLI_X,
842 .scan_type = IIO_ST('s', 13, 16, 0), 841 .scan_type = IIO_ST('s', 13, 16, 0),
@@ -844,7 +843,7 @@ static struct iio_chan_spec adis16300_channels[] = {
844 .type = IIO_INCLI, 843 .type = IIO_INCLI,
845 .modified = 1, 844 .modified = 1,
846 .channel2 = IIO_MOD_Y, 845 .channel2 = IIO_MOD_Y,
847 .info_mask = (1 << IIO_CHAN_INFO_SCALE_SHARED), 846 .info_mask = IIO_CHAN_INFO_SCALE_SHARED_BIT,
848 .address = incli_y, 847 .address = incli_y,
849 .scan_index = ADIS16300_SCAN_INCLI_Y, 848 .scan_index = ADIS16300_SCAN_INCLI_Y,
850 .scan_type = IIO_ST('s', 13, 16, 0), 849 .scan_type = IIO_ST('s', 13, 16, 0),
@@ -857,8 +856,8 @@ static const struct iio_chan_spec adis16334_channels[] = {
857 .type = IIO_ANGL_VEL, 856 .type = IIO_ANGL_VEL,
858 .modified = 1, 857 .modified = 1,
859 .channel2 = IIO_MOD_X, 858 .channel2 = IIO_MOD_X,
860 .info_mask = (1 << IIO_CHAN_INFO_CALIBBIAS_SEPARATE) | 859 .info_mask = IIO_CHAN_INFO_CALIBBIAS_SEPARATE_BIT |
861 (1 << IIO_CHAN_INFO_SCALE_SHARED), 860 IIO_CHAN_INFO_SCALE_SHARED_BIT,
862 .address = gyro_x, 861 .address = gyro_x,
863 .scan_index = ADIS16400_SCAN_GYRO_X, 862 .scan_index = ADIS16400_SCAN_GYRO_X,
864 .scan_type = IIO_ST('s', 14, 16, 0), 863 .scan_type = IIO_ST('s', 14, 16, 0),
@@ -866,8 +865,8 @@ static const struct iio_chan_spec adis16334_channels[] = {
866 .type = IIO_ANGL_VEL, 865 .type = IIO_ANGL_VEL,
867 .modified = 1, 866 .modified = 1,
868 .channel2 = IIO_MOD_Y, 867 .channel2 = IIO_MOD_Y,
869 .info_mask = (1 << IIO_CHAN_INFO_CALIBBIAS_SEPARATE) | 868 .info_mask = IIO_CHAN_INFO_CALIBBIAS_SEPARATE_BIT |
870 (1 << IIO_CHAN_INFO_SCALE_SHARED), 869 IIO_CHAN_INFO_SCALE_SHARED_BIT,
871 .address = gyro_y, 870 .address = gyro_y,
872 .scan_index = ADIS16400_SCAN_GYRO_Y, 871 .scan_index = ADIS16400_SCAN_GYRO_Y,
873 .scan_type = IIO_ST('s', 14, 16, 0), 872 .scan_type = IIO_ST('s', 14, 16, 0),
@@ -875,8 +874,8 @@ static const struct iio_chan_spec adis16334_channels[] = {
875 .type = IIO_ANGL_VEL, 874 .type = IIO_ANGL_VEL,
876 .modified = 1, 875 .modified = 1,
877 .channel2 = IIO_MOD_Z, 876 .channel2 = IIO_MOD_Z,
878 .info_mask = (1 << IIO_CHAN_INFO_CALIBBIAS_SEPARATE) | 877 .info_mask = IIO_CHAN_INFO_CALIBBIAS_SEPARATE_BIT |
879 (1 << IIO_CHAN_INFO_SCALE_SHARED), 878 IIO_CHAN_INFO_SCALE_SHARED_BIT,
880 .address = gyro_z, 879 .address = gyro_z,
881 .scan_index = ADIS16400_SCAN_GYRO_Z, 880 .scan_index = ADIS16400_SCAN_GYRO_Z,
882 .scan_type = IIO_ST('s', 14, 16, 0), 881 .scan_type = IIO_ST('s', 14, 16, 0),
@@ -884,8 +883,8 @@ static const struct iio_chan_spec adis16334_channels[] = {
884 .type = IIO_ACCEL, 883 .type = IIO_ACCEL,
885 .modified = 1, 884 .modified = 1,
886 .channel2 = IIO_MOD_X, 885 .channel2 = IIO_MOD_X,
887 .info_mask = (1 << IIO_CHAN_INFO_CALIBBIAS_SEPARATE) | 886 .info_mask = IIO_CHAN_INFO_CALIBBIAS_SEPARATE_BIT |
888 (1 << IIO_CHAN_INFO_SCALE_SHARED), 887 IIO_CHAN_INFO_SCALE_SHARED_BIT,
889 .address = accel_x, 888 .address = accel_x,
890 .scan_index = ADIS16400_SCAN_ACC_X, 889 .scan_index = ADIS16400_SCAN_ACC_X,
891 .scan_type = IIO_ST('s', 14, 16, 0), 890 .scan_type = IIO_ST('s', 14, 16, 0),
@@ -893,8 +892,8 @@ static const struct iio_chan_spec adis16334_channels[] = {
893 .type = IIO_ACCEL, 892 .type = IIO_ACCEL,
894 .modified = 1, 893 .modified = 1,
895 .channel2 = IIO_MOD_Y, 894 .channel2 = IIO_MOD_Y,
896 .info_mask = (1 << IIO_CHAN_INFO_CALIBBIAS_SEPARATE) | 895 .info_mask = IIO_CHAN_INFO_CALIBBIAS_SEPARATE_BIT |
897 (1 << IIO_CHAN_INFO_SCALE_SHARED), 896 IIO_CHAN_INFO_SCALE_SHARED_BIT,
898 .address = accel_y, 897 .address = accel_y,
899 .scan_index = ADIS16400_SCAN_ACC_Y, 898 .scan_index = ADIS16400_SCAN_ACC_Y,
900 .scan_type = IIO_ST('s', 14, 16, 0), 899 .scan_type = IIO_ST('s', 14, 16, 0),
@@ -902,8 +901,8 @@ static const struct iio_chan_spec adis16334_channels[] = {
902 .type = IIO_ACCEL, 901 .type = IIO_ACCEL,
903 .modified = 1, 902 .modified = 1,
904 .channel2 = IIO_MOD_Z, 903 .channel2 = IIO_MOD_Z,
905 .info_mask = (1 << IIO_CHAN_INFO_CALIBBIAS_SEPARATE) | 904 .info_mask = IIO_CHAN_INFO_CALIBBIAS_SEPARATE_BIT |
906 (1 << IIO_CHAN_INFO_SCALE_SHARED), 905 IIO_CHAN_INFO_SCALE_SHARED_BIT,
907 .address = accel_z, 906 .address = accel_z,
908 .scan_index = ADIS16400_SCAN_ACC_Z, 907 .scan_index = ADIS16400_SCAN_ACC_Z,
909 .scan_type = IIO_ST('s', 14, 16, 0), 908 .scan_type = IIO_ST('s', 14, 16, 0),
@@ -911,8 +910,8 @@ static const struct iio_chan_spec adis16334_channels[] = {
911 .type = IIO_TEMP, 910 .type = IIO_TEMP,
912 .indexed = 1, 911 .indexed = 1,
913 .channel = 0, 912 .channel = 0,
914 .info_mask = (1 << IIO_CHAN_INFO_CALIBBIAS_SEPARATE) | 913 .info_mask = IIO_CHAN_INFO_CALIBBIAS_SEPARATE_BIT |
915 (1 << IIO_CHAN_INFO_SCALE_SHARED), 914 IIO_CHAN_INFO_SCALE_SHARED_BIT,
916 .address = accel_z, 915 .address = accel_z,
917 .scan_index = ADIS16400_SCAN_ACC_Z, 916 .scan_index = ADIS16400_SCAN_ACC_Z,
918 .scan_type = IIO_ST('s', 14, 16, 0), 917 .scan_type = IIO_ST('s', 14, 16, 0),
diff --git a/drivers/staging/iio/industrialio-core.c b/drivers/staging/iio/industrialio-core.c
index 63681a61d5c..dc2339ae63d 100644
--- a/drivers/staging/iio/industrialio-core.c
+++ b/drivers/staging/iio/industrialio-core.c
@@ -77,15 +77,14 @@ static const char * const iio_modifier_names[] = {
77 77
78/* relies on pairs of these shared then separate */ 78/* relies on pairs of these shared then separate */
79static const char * const iio_chan_info_postfix[] = { 79static const char * const iio_chan_info_postfix[] = {
80 [IIO_CHAN_INFO_SCALE_SHARED/2] = "scale", 80 [IIO_CHAN_INFO_SCALE] = "scale",
81 [IIO_CHAN_INFO_OFFSET_SHARED/2] = "offset", 81 [IIO_CHAN_INFO_OFFSET] = "offset",
82 [IIO_CHAN_INFO_CALIBSCALE_SHARED/2] = "calibscale", 82 [IIO_CHAN_INFO_CALIBSCALE] = "calibscale",
83 [IIO_CHAN_INFO_CALIBBIAS_SHARED/2] = "calibbias", 83 [IIO_CHAN_INFO_CALIBBIAS] = "calibbias",
84 [IIO_CHAN_INFO_PEAK_SHARED/2] = "peak_raw", 84 [IIO_CHAN_INFO_PEAK] = "peak_raw",
85 [IIO_CHAN_INFO_PEAK_SCALE_SHARED/2] = "peak_scale", 85 [IIO_CHAN_INFO_PEAK_SCALE] = "peak_scale",
86 [IIO_CHAN_INFO_QUADRATURE_CORRECTION_RAW_SHARED/2] 86 [IIO_CHAN_INFO_QUADRATURE_CORRECTION_RAW] = "quadrature_correction_raw",
87 = "quadrature_correction_raw", 87 [IIO_CHAN_INFO_AVERAGE_RAW] = "mean_raw",
88 [IIO_CHAN_INFO_AVERAGE_RAW_SHARED/2] = "mean_raw",
89}; 88};
90 89
91/** 90/**
@@ -603,7 +602,7 @@ static int iio_device_add_channel_sysfs(struct iio_dev *indio_dev,
603 chan, 602 chan,
604 &iio_read_channel_info, 603 &iio_read_channel_info,
605 &iio_write_channel_info, 604 &iio_write_channel_info,
606 i, 605 i/2,
607 !(i%2), 606 !(i%2),
608 &indio_dev->dev, 607 &indio_dev->dev,
609 &indio_dev->channel_attr_list); 608 &indio_dev->channel_attr_list);
diff --git a/drivers/staging/iio/light/isl29018.c b/drivers/staging/iio/light/isl29018.c
index bed18a74d30..f0c733a2826 100644
--- a/drivers/staging/iio/light/isl29018.c
+++ b/drivers/staging/iio/light/isl29018.c
@@ -362,8 +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 == IIO_CHAN_INFO_CALIBSCALE_SEPARATE && 365 if (mask == IIO_CHAN_INFO_CALIBSCALE && chan->type == IIO_LIGHT) {
366 chan->type == IIO_LIGHT) {
367 chip->lux_scale = val; 366 chip->lux_scale = val;
368 ret = 0; 367 ret = 0;
369 } 368 }
@@ -402,7 +401,7 @@ static int isl29018_read_raw(struct iio_dev *indio_dev,
402 if (!ret) 401 if (!ret)
403 ret = IIO_VAL_INT; 402 ret = IIO_VAL_INT;
404 break; 403 break;
405 case IIO_CHAN_INFO_CALIBSCALE_SEPARATE: 404 case IIO_CHAN_INFO_CALIBSCALE:
406 if (chan->type == IIO_LIGHT) { 405 if (chan->type == IIO_LIGHT) {
407 *val = chip->lux_scale; 406 *val = chip->lux_scale;
408 ret = IIO_VAL_INT; 407 ret = IIO_VAL_INT;
@@ -421,7 +420,7 @@ static const struct iio_chan_spec isl29018_channels[] = {
421 .indexed = 1, 420 .indexed = 1,
422 .channel = 0, 421 .channel = 0,
423 .processed_val = IIO_PROCESSED, 422 .processed_val = IIO_PROCESSED,
424 .info_mask = (1 << IIO_CHAN_INFO_CALIBSCALE_SEPARATE), 423 .info_mask = IIO_CHAN_INFO_CALIBSCALE_SEPARATE_BIT,
425 }, { 424 }, {
426 .type = IIO_INTENSITY, 425 .type = IIO_INTENSITY,
427 .modified = 1, 426 .modified = 1,
diff --git a/drivers/staging/iio/light/tsl2563.c b/drivers/staging/iio/light/tsl2563.c
index 45d04a1b194..9199ea62aef 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 IIO_CHAN_INFO_CALIBSCALE_SEPARATE: 516 case IIO_CHAN_INFO_CALIBSCALE:
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
@@ -539,7 +539,7 @@ static const struct iio_chan_spec tsl2563_channels[] = {
539 .type = IIO_INTENSITY, 539 .type = IIO_INTENSITY,
540 .modified = 1, 540 .modified = 1,
541 .channel2 = IIO_MOD_LIGHT_BOTH, 541 .channel2 = IIO_MOD_LIGHT_BOTH,
542 .info_mask = (1 << IIO_CHAN_INFO_CALIBSCALE_SEPARATE), 542 .info_mask = IIO_CHAN_INFO_CALIBSCALE_SEPARATE_BIT,
543 .event_mask = (IIO_EV_BIT(IIO_EV_TYPE_THRESH, 543 .event_mask = (IIO_EV_BIT(IIO_EV_TYPE_THRESH,
544 IIO_EV_DIR_RISING) | 544 IIO_EV_DIR_RISING) |
545 IIO_EV_BIT(IIO_EV_TYPE_THRESH, 545 IIO_EV_BIT(IIO_EV_TYPE_THRESH,
@@ -548,7 +548,7 @@ static const struct iio_chan_spec tsl2563_channels[] = {
548 .type = IIO_INTENSITY, 548 .type = IIO_INTENSITY,
549 .modified = 1, 549 .modified = 1,
550 .channel2 = IIO_MOD_LIGHT_IR, 550 .channel2 = IIO_MOD_LIGHT_IR,
551 .info_mask = (1 << IIO_CHAN_INFO_CALIBSCALE_SEPARATE), 551 .info_mask = IIO_CHAN_INFO_CALIBSCALE_SEPARATE_BIT,
552 } 552 }
553}; 553};
554 554
diff --git a/drivers/staging/iio/magnetometer/ak8975.c b/drivers/staging/iio/magnetometer/ak8975.c
index b7d8cbb58c3..a2c4d005803 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 IIO_CHAN_INFO_SCALE_SEPARATE: 434 case IIO_CHAN_INFO_SCALE:
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 }
@@ -443,7 +443,7 @@ static int ak8975_read_raw(struct iio_dev *indio_dev,
443 .type = IIO_MAGN, \ 443 .type = IIO_MAGN, \
444 .modified = 1, \ 444 .modified = 1, \
445 .channel2 = IIO_MOD_##axis, \ 445 .channel2 = IIO_MOD_##axis, \
446 .info_mask = (1 << IIO_CHAN_INFO_SCALE_SEPARATE), \ 446 .info_mask = IIO_CHAN_INFO_SCALE_SEPARATE_BIT, \
447 .address = index, \ 447 .address = index, \
448 } 448 }
449 449
diff --git a/drivers/staging/iio/magnetometer/hmc5843.c b/drivers/staging/iio/magnetometer/hmc5843.c
index 4a42707a20e..f90d4d12418 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 IIO_CHAN_INFO_SCALE_SHARED: 466 case IIO_CHAN_INFO_SCALE:
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;
@@ -476,7 +476,7 @@ static int hmc5843_read_raw(struct iio_dev *indio_dev,
476 .type = IIO_MAGN, \ 476 .type = IIO_MAGN, \
477 .modified = 1, \ 477 .modified = 1, \
478 .channel2 = IIO_MOD_##axis, \ 478 .channel2 = IIO_MOD_##axis, \
479 .info_mask = (1 << IIO_CHAN_INFO_SCALE_SHARED), \ 479 .info_mask = IIO_CHAN_INFO_SCALE_SHARED_BIT, \
480 .address = add \ 480 .address = add \
481 } 481 }
482 482
diff --git a/drivers/staging/iio/meter/ade7758_core.c b/drivers/staging/iio/meter/ade7758_core.c
index 7028e87acb4..839b48b1b48 100644
--- a/drivers/staging/iio/meter/ade7758_core.c
+++ b/drivers/staging/iio/meter/ade7758_core.c
@@ -663,63 +663,63 @@ static const struct attribute_group ade7758_attribute_group = {
663 663
664static struct iio_chan_spec ade7758_channels[] = { 664static struct iio_chan_spec ade7758_channels[] = {
665 IIO_CHAN(IIO_VOLTAGE, 0, 1, 0, "raw", 0, 0, 665 IIO_CHAN(IIO_VOLTAGE, 0, 1, 0, "raw", 0, 0,
666 (1 << IIO_CHAN_INFO_SCALE_SHARED), 666 IIO_CHAN_INFO_SCALE_SHARED_BIT,
667 AD7758_WT(AD7758_PHASE_A, AD7758_VOLTAGE), 667 AD7758_WT(AD7758_PHASE_A, AD7758_VOLTAGE),
668 0, IIO_ST('s', 24, 32, 0), 0), 668 0, IIO_ST('s', 24, 32, 0), 0),
669 IIO_CHAN(IIO_CURRENT, 0, 1, 0, "raw", 0, 0, 669 IIO_CHAN(IIO_CURRENT, 0, 1, 0, "raw", 0, 0,
670 (1 << IIO_CHAN_INFO_SCALE_SHARED), 670 IIO_CHAN_INFO_SCALE_SHARED_BIT,
671 AD7758_WT(AD7758_PHASE_A, AD7758_CURRENT), 671 AD7758_WT(AD7758_PHASE_A, AD7758_CURRENT),
672 1, IIO_ST('s', 24, 32, 0), 0), 672 1, IIO_ST('s', 24, 32, 0), 0),
673 IIO_CHAN(IIO_POWER, 0, 1, 0, "apparent_raw", 0, 0, 673 IIO_CHAN(IIO_POWER, 0, 1, 0, "apparent_raw", 0, 0,
674 (1 << IIO_CHAN_INFO_SCALE_SHARED), 674 IIO_CHAN_INFO_SCALE_SHARED_BIT,
675 AD7758_WT(AD7758_PHASE_A, AD7758_APP_PWR), 675 AD7758_WT(AD7758_PHASE_A, AD7758_APP_PWR),
676 2, IIO_ST('s', 24, 32, 0), 0), 676 2, IIO_ST('s', 24, 32, 0), 0),
677 IIO_CHAN(IIO_POWER, 0, 1, 0, "active_raw", 0, 0, 677 IIO_CHAN(IIO_POWER, 0, 1, 0, "active_raw", 0, 0,
678 (1 << IIO_CHAN_INFO_SCALE_SHARED), 678 IIO_CHAN_INFO_SCALE_SHARED_BIT,
679 AD7758_WT(AD7758_PHASE_A, AD7758_ACT_PWR), 679 AD7758_WT(AD7758_PHASE_A, AD7758_ACT_PWR),
680 3, IIO_ST('s', 24, 32, 0), 0), 680 3, IIO_ST('s', 24, 32, 0), 0),
681 IIO_CHAN(IIO_POWER, 0, 1, 0, "reactive_raw", 0, 0, 681 IIO_CHAN(IIO_POWER, 0, 1, 0, "reactive_raw", 0, 0,
682 (1 << IIO_CHAN_INFO_SCALE_SHARED), 682 IIO_CHAN_INFO_SCALE_SHARED_BIT,
683 AD7758_WT(AD7758_PHASE_A, AD7758_REACT_PWR), 683 AD7758_WT(AD7758_PHASE_A, AD7758_REACT_PWR),
684 4, IIO_ST('s', 24, 32, 0), 0), 684 4, IIO_ST('s', 24, 32, 0), 0),
685 IIO_CHAN(IIO_VOLTAGE, 0, 1, 0, "raw", 1, 0, 685 IIO_CHAN(IIO_VOLTAGE, 0, 1, 0, "raw", 1, 0,
686 (1 << IIO_CHAN_INFO_SCALE_SHARED), 686 IIO_CHAN_INFO_SCALE_SHARED_BIT,
687 AD7758_WT(AD7758_PHASE_B, AD7758_VOLTAGE), 687 AD7758_WT(AD7758_PHASE_B, AD7758_VOLTAGE),
688 5, IIO_ST('s', 24, 32, 0), 0), 688 5, IIO_ST('s', 24, 32, 0), 0),
689 IIO_CHAN(IIO_CURRENT, 0, 1, 0, "raw", 1, 0, 689 IIO_CHAN(IIO_CURRENT, 0, 1, 0, "raw", 1, 0,
690 (1 << IIO_CHAN_INFO_SCALE_SHARED), 690 IIO_CHAN_INFO_SCALE_SHARED_BIT,
691 AD7758_WT(AD7758_PHASE_B, AD7758_CURRENT), 691 AD7758_WT(AD7758_PHASE_B, AD7758_CURRENT),
692 6, IIO_ST('s', 24, 32, 0), 0), 692 6, IIO_ST('s', 24, 32, 0), 0),
693 IIO_CHAN(IIO_POWER, 0, 1, 0, "apparent_raw", 1, 0, 693 IIO_CHAN(IIO_POWER, 0, 1, 0, "apparent_raw", 1, 0,
694 (1 << IIO_CHAN_INFO_SCALE_SHARED), 694 IIO_CHAN_INFO_SCALE_SHARED_BIT,
695 AD7758_WT(AD7758_PHASE_B, AD7758_APP_PWR), 695 AD7758_WT(AD7758_PHASE_B, AD7758_APP_PWR),
696 7, IIO_ST('s', 24, 32, 0), 0), 696 7, IIO_ST('s', 24, 32, 0), 0),
697 IIO_CHAN(IIO_POWER, 0, 1, 0, "active_raw", 1, 0, 697 IIO_CHAN(IIO_POWER, 0, 1, 0, "active_raw", 1, 0,
698 (1 << IIO_CHAN_INFO_SCALE_SHARED), 698 IIO_CHAN_INFO_SCALE_SHARED_BIT,
699 AD7758_WT(AD7758_PHASE_B, AD7758_ACT_PWR), 699 AD7758_WT(AD7758_PHASE_B, AD7758_ACT_PWR),
700 8, IIO_ST('s', 24, 32, 0), 0), 700 8, IIO_ST('s', 24, 32, 0), 0),
701 IIO_CHAN(IIO_POWER, 0, 1, 0, "reactive_raw", 1, 0, 701 IIO_CHAN(IIO_POWER, 0, 1, 0, "reactive_raw", 1, 0,
702 (1 << IIO_CHAN_INFO_SCALE_SHARED), 702 IIO_CHAN_INFO_SCALE_SHARED_BIT,
703 AD7758_WT(AD7758_PHASE_B, AD7758_REACT_PWR), 703 AD7758_WT(AD7758_PHASE_B, AD7758_REACT_PWR),
704 9, IIO_ST('s', 24, 32, 0), 0), 704 9, IIO_ST('s', 24, 32, 0), 0),
705 IIO_CHAN(IIO_VOLTAGE, 0, 1, 0, "raw", 2, 0, 705 IIO_CHAN(IIO_VOLTAGE, 0, 1, 0, "raw", 2, 0,
706 (1 << IIO_CHAN_INFO_SCALE_SHARED), 706 IIO_CHAN_INFO_SCALE_SHARED_BIT,
707 AD7758_WT(AD7758_PHASE_C, AD7758_VOLTAGE), 707 AD7758_WT(AD7758_PHASE_C, AD7758_VOLTAGE),
708 10, IIO_ST('s', 24, 32, 0), 0), 708 10, IIO_ST('s', 24, 32, 0), 0),
709 IIO_CHAN(IIO_CURRENT, 0, 1, 0, "raw", 2, 0, 709 IIO_CHAN(IIO_CURRENT, 0, 1, 0, "raw", 2, 0,
710 (1 << IIO_CHAN_INFO_SCALE_SHARED), 710 IIO_CHAN_INFO_SCALE_SHARED_BIT,
711 AD7758_WT(AD7758_PHASE_C, AD7758_CURRENT), 711 AD7758_WT(AD7758_PHASE_C, AD7758_CURRENT),
712 11, IIO_ST('s', 24, 32, 0), 0), 712 11, IIO_ST('s', 24, 32, 0), 0),
713 IIO_CHAN(IIO_POWER, 0, 1, 0, "apparent_raw", 2, 0, 713 IIO_CHAN(IIO_POWER, 0, 1, 0, "apparent_raw", 2, 0,
714 (1 << IIO_CHAN_INFO_SCALE_SHARED), 714 IIO_CHAN_INFO_SCALE_SHARED_BIT,
715 AD7758_WT(AD7758_PHASE_C, AD7758_APP_PWR), 715 AD7758_WT(AD7758_PHASE_C, AD7758_APP_PWR),
716 12, IIO_ST('s', 24, 32, 0), 0), 716 12, IIO_ST('s', 24, 32, 0), 0),
717 IIO_CHAN(IIO_POWER, 0, 1, 0, "active_raw", 2, 0, 717 IIO_CHAN(IIO_POWER, 0, 1, 0, "active_raw", 2, 0,
718 (1 << IIO_CHAN_INFO_SCALE_SHARED), 718 IIO_CHAN_INFO_SCALE_SHARED_BIT,
719 AD7758_WT(AD7758_PHASE_C, AD7758_ACT_PWR), 719 AD7758_WT(AD7758_PHASE_C, AD7758_ACT_PWR),
720 13, IIO_ST('s', 24, 32, 0), 0), 720 13, IIO_ST('s', 24, 32, 0), 0),
721 IIO_CHAN(IIO_POWER, 0, 1, 0, "reactive_raw", 2, 0, 721 IIO_CHAN(IIO_POWER, 0, 1, 0, "reactive_raw", 2, 0,
722 (1 << IIO_CHAN_INFO_SCALE_SHARED), 722 IIO_CHAN_INFO_SCALE_SHARED_BIT,
723 AD7758_WT(AD7758_PHASE_C, AD7758_REACT_PWR), 723 AD7758_WT(AD7758_PHASE_C, AD7758_REACT_PWR),
724 14, IIO_ST('s', 24, 32, 0), 0), 724 14, IIO_ST('s', 24, 32, 0), 0),
725 IIO_CHAN_SOFT_TIMESTAMP(15), 725 IIO_CHAN_SOFT_TIMESTAMP(15),