aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/staging/iio/gyro/adis16260_core.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/staging/iio/gyro/adis16260_core.c')
-rw-r--r--drivers/staging/iio/gyro/adis16260_core.c27
1 files changed, 13 insertions, 14 deletions
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);