diff options
Diffstat (limited to 'drivers/staging/iio/imu/adis16400_core.c')
-rw-r--r-- | drivers/staging/iio/imu/adis16400_core.c | 50 |
1 files changed, 27 insertions, 23 deletions
diff --git a/drivers/staging/iio/imu/adis16400_core.c b/drivers/staging/iio/imu/adis16400_core.c index fe89802e3fe..a2c3b67dcbd 100644 --- a/drivers/staging/iio/imu/adis16400_core.c +++ b/drivers/staging/iio/imu/adis16400_core.c | |||
@@ -441,10 +441,12 @@ enum adis16400_chan { | |||
441 | magn_z, | 441 | magn_z, |
442 | temp, | 442 | temp, |
443 | temp0, temp1, temp2, | 443 | temp0, temp1, temp2, |
444 | in1 | 444 | in1, |
445 | incli_x, | ||
446 | incli_y, | ||
445 | }; | 447 | }; |
446 | 448 | ||
447 | static u8 adis16400_addresses[16][2] = { | 449 | static u8 adis16400_addresses[17][2] = { |
448 | [in_supply] = { ADIS16400_SUPPLY_OUT, 0 }, | 450 | [in_supply] = { ADIS16400_SUPPLY_OUT, 0 }, |
449 | [gyro_x] = { ADIS16400_XGYRO_OUT, ADIS16400_XGYRO_OFF }, | 451 | [gyro_x] = { ADIS16400_XGYRO_OUT, ADIS16400_XGYRO_OFF }, |
450 | [gyro_y] = { ADIS16400_YGYRO_OUT, ADIS16400_YGYRO_OFF }, | 452 | [gyro_y] = { ADIS16400_YGYRO_OUT, ADIS16400_YGYRO_OFF }, |
@@ -459,7 +461,9 @@ static u8 adis16400_addresses[16][2] = { | |||
459 | [temp0] = { ADIS16350_XTEMP_OUT }, | 461 | [temp0] = { ADIS16350_XTEMP_OUT }, |
460 | [temp1] = { ADIS16350_YTEMP_OUT }, | 462 | [temp1] = { ADIS16350_YTEMP_OUT }, |
461 | [temp2] = { ADIS16350_ZTEMP_OUT }, | 463 | [temp2] = { ADIS16350_ZTEMP_OUT }, |
462 | [in1] = { ADIS16400_AUX_ADC , 0 }, | 464 | [in1] = { ADIS16400_AUX_ADC, 0 }, |
465 | [incli_x] = { ADIS16300_PITCH_OUT, 0 }, | ||
466 | [incli_y] = { ADIS16300_ROLL_OUT, 0 } | ||
463 | }; | 467 | }; |
464 | 468 | ||
465 | static int adis16400_write_raw(struct iio_dev *indio_dev, | 469 | static int adis16400_write_raw(struct iio_dev *indio_dev, |
@@ -612,82 +616,82 @@ static struct iio_chan_spec adis16400_channels[] = { | |||
612 | static struct iio_chan_spec adis16350_channels[] = { | 616 | static struct iio_chan_spec adis16350_channels[] = { |
613 | IIO_CHAN(IIO_IN, 0, 1, 0, "supply", 0, 0, | 617 | IIO_CHAN(IIO_IN, 0, 1, 0, "supply", 0, 0, |
614 | (1 << IIO_CHAN_INFO_SCALE_SEPARATE), | 618 | (1 << IIO_CHAN_INFO_SCALE_SEPARATE), |
615 | 0, ADIS16400_SCAN_SUPPLY, IIO_ST('u', 12, 16, 0), 0), | 619 | in_supply, ADIS16400_SCAN_SUPPLY, IIO_ST('u', 12, 16, 0), 0), |
616 | IIO_CHAN(IIO_GYRO, 1, 0, 0, NULL, 0, IIO_MOD_X, | 620 | IIO_CHAN(IIO_GYRO, 1, 0, 0, NULL, 0, IIO_MOD_X, |
617 | (1 << IIO_CHAN_INFO_CALIBBIAS_SEPARATE) | | 621 | (1 << IIO_CHAN_INFO_CALIBBIAS_SEPARATE) | |
618 | (1 << IIO_CHAN_INFO_SCALE_SHARED), | 622 | (1 << IIO_CHAN_INFO_SCALE_SHARED), |
619 | 1, ADIS16400_SCAN_GYRO_X, IIO_ST('s', 14, 16, 0), 0), | 623 | gyro_x, ADIS16400_SCAN_GYRO_X, IIO_ST('s', 14, 16, 0), 0), |
620 | IIO_CHAN(IIO_GYRO, 1, 0, 0, NULL, 0, IIO_MOD_Y, | 624 | IIO_CHAN(IIO_GYRO, 1, 0, 0, NULL, 0, IIO_MOD_Y, |
621 | (1 << IIO_CHAN_INFO_CALIBBIAS_SEPARATE) | | 625 | (1 << IIO_CHAN_INFO_CALIBBIAS_SEPARATE) | |
622 | (1 << IIO_CHAN_INFO_SCALE_SHARED), | 626 | (1 << IIO_CHAN_INFO_SCALE_SHARED), |
623 | 2, ADIS16400_SCAN_GYRO_Y, IIO_ST('s', 14, 16, 0), 0), | 627 | gyro_y, ADIS16400_SCAN_GYRO_Y, IIO_ST('s', 14, 16, 0), 0), |
624 | IIO_CHAN(IIO_GYRO, 1, 0, 0, NULL, 0, IIO_MOD_Z, | 628 | IIO_CHAN(IIO_GYRO, 1, 0, 0, NULL, 0, IIO_MOD_Z, |
625 | (1 << IIO_CHAN_INFO_CALIBBIAS_SEPARATE) | | 629 | (1 << IIO_CHAN_INFO_CALIBBIAS_SEPARATE) | |
626 | (1 << IIO_CHAN_INFO_SCALE_SHARED), | 630 | (1 << IIO_CHAN_INFO_SCALE_SHARED), |
627 | 3, ADIS16400_SCAN_GYRO_Z, IIO_ST('s', 14, 16, 0), 0), | 631 | gyro_z, ADIS16400_SCAN_GYRO_Z, IIO_ST('s', 14, 16, 0), 0), |
628 | IIO_CHAN(IIO_ACCEL, 1, 0, 0, NULL, 0, IIO_MOD_X, | 632 | IIO_CHAN(IIO_ACCEL, 1, 0, 0, NULL, 0, IIO_MOD_X, |
629 | (1 << IIO_CHAN_INFO_CALIBBIAS_SEPARATE) | | 633 | (1 << IIO_CHAN_INFO_CALIBBIAS_SEPARATE) | |
630 | (1 << IIO_CHAN_INFO_SCALE_SHARED), | 634 | (1 << IIO_CHAN_INFO_SCALE_SHARED), |
631 | 4, ADIS16400_SCAN_ACC_X, IIO_ST('s', 14, 16, 0), 0), | 635 | accel_x, ADIS16400_SCAN_ACC_X, IIO_ST('s', 14, 16, 0), 0), |
632 | IIO_CHAN(IIO_ACCEL, 1, 0, 0, NULL, 0, IIO_MOD_Y, | 636 | IIO_CHAN(IIO_ACCEL, 1, 0, 0, NULL, 0, IIO_MOD_Y, |
633 | (1 << IIO_CHAN_INFO_CALIBBIAS_SEPARATE) | | 637 | (1 << IIO_CHAN_INFO_CALIBBIAS_SEPARATE) | |
634 | (1 << IIO_CHAN_INFO_SCALE_SHARED), | 638 | (1 << IIO_CHAN_INFO_SCALE_SHARED), |
635 | 0, ADIS16400_SCAN_ACC_Y, IIO_ST('s', 14, 16, 0), 0), | 639 | accel_y, ADIS16400_SCAN_ACC_Y, IIO_ST('s', 14, 16, 0), 0), |
636 | IIO_CHAN(IIO_ACCEL, 1, 0, 0, NULL, 0, IIO_MOD_Z, | 640 | IIO_CHAN(IIO_ACCEL, 1, 0, 0, NULL, 0, IIO_MOD_Z, |
637 | (1 << IIO_CHAN_INFO_CALIBBIAS_SEPARATE) | | 641 | (1 << IIO_CHAN_INFO_CALIBBIAS_SEPARATE) | |
638 | (1 << IIO_CHAN_INFO_SCALE_SHARED), | 642 | (1 << IIO_CHAN_INFO_SCALE_SHARED), |
639 | 0, ADIS16400_SCAN_ACC_Z, IIO_ST('s', 14, 16, 0), 0), | 643 | accel_z, ADIS16400_SCAN_ACC_Z, IIO_ST('s', 14, 16, 0), 0), |
640 | IIO_CHAN(IIO_TEMP, 0, 1, 0, "x", 0, 0, | 644 | IIO_CHAN(IIO_TEMP, 0, 1, 0, "x", 0, 0, |
641 | (1 << IIO_CHAN_INFO_OFFSET_SEPARATE) | | 645 | (1 << IIO_CHAN_INFO_OFFSET_SEPARATE) | |
642 | (1 << IIO_CHAN_INFO_SCALE_SEPARATE), | 646 | (1 << IIO_CHAN_INFO_SCALE_SEPARATE), |
643 | 0, ADIS16350_SCAN_TEMP_X, IIO_ST('s', 12, 16, 0), 0), | 647 | temp0, ADIS16350_SCAN_TEMP_X, IIO_ST('s', 12, 16, 0), 0), |
644 | IIO_CHAN(IIO_TEMP, 0, 1, 0, "y", 1, 0, | 648 | IIO_CHAN(IIO_TEMP, 0, 1, 0, "y", 1, 0, |
645 | (1 << IIO_CHAN_INFO_OFFSET_SEPARATE) | | 649 | (1 << IIO_CHAN_INFO_OFFSET_SEPARATE) | |
646 | (1 << IIO_CHAN_INFO_SCALE_SEPARATE), | 650 | (1 << IIO_CHAN_INFO_SCALE_SEPARATE), |
647 | 0, ADIS16350_SCAN_TEMP_Y, IIO_ST('s', 12, 16, 0), 0), | 651 | temp1, ADIS16350_SCAN_TEMP_Y, IIO_ST('s', 12, 16, 0), 0), |
648 | IIO_CHAN(IIO_TEMP, 0, 1, 0, "z", 2, 0, | 652 | IIO_CHAN(IIO_TEMP, 0, 1, 0, "z", 2, 0, |
649 | (1 << IIO_CHAN_INFO_OFFSET_SEPARATE) | | 653 | (1 << IIO_CHAN_INFO_OFFSET_SEPARATE) | |
650 | (1 << IIO_CHAN_INFO_SCALE_SEPARATE), | 654 | (1 << IIO_CHAN_INFO_SCALE_SEPARATE), |
651 | 0, ADIS16350_SCAN_TEMP_Z, IIO_ST('s', 12, 16, 0), 0), | 655 | temp2, ADIS16350_SCAN_TEMP_Z, IIO_ST('s', 12, 16, 0), 0), |
652 | IIO_CHAN(IIO_IN, 0, 1, 0, NULL, 1, 0, | 656 | IIO_CHAN(IIO_IN, 0, 1, 0, NULL, 1, 0, |
653 | (1 << IIO_CHAN_INFO_SCALE_SEPARATE), | 657 | (1 << IIO_CHAN_INFO_SCALE_SEPARATE), |
654 | 0, ADIS16350_SCAN_ADC_0, IIO_ST('s', 12, 16, 0), 0), | 658 | in1, ADIS16350_SCAN_ADC_0, IIO_ST('s', 12, 16, 0), 0), |
655 | IIO_CHAN_SOFT_TIMESTAMP(11) | 659 | IIO_CHAN_SOFT_TIMESTAMP(11) |
656 | }; | 660 | }; |
657 | 661 | ||
658 | static struct iio_chan_spec adis16300_channels[] = { | 662 | static struct iio_chan_spec adis16300_channels[] = { |
659 | IIO_CHAN(IIO_IN, 0, 1, 0, "supply", 0, 0, | 663 | IIO_CHAN(IIO_IN, 0, 1, 0, "supply", 0, 0, |
660 | (1 << IIO_CHAN_INFO_SCALE_SEPARATE), | 664 | (1 << IIO_CHAN_INFO_SCALE_SEPARATE), |
661 | 0, ADIS16400_SCAN_SUPPLY, IIO_ST('u', 12, 16, 0), 0), | 665 | in_supply, ADIS16400_SCAN_SUPPLY, IIO_ST('u', 12, 16, 0), 0), |
662 | IIO_CHAN(IIO_GYRO, 1, 0, 0, NULL, 0, IIO_MOD_X, | 666 | IIO_CHAN(IIO_GYRO, 1, 0, 0, NULL, 0, IIO_MOD_X, |
663 | (1 << IIO_CHAN_INFO_CALIBBIAS_SEPARATE) | | 667 | (1 << IIO_CHAN_INFO_CALIBBIAS_SEPARATE) | |
664 | (1 << IIO_CHAN_INFO_SCALE_SHARED), | 668 | (1 << IIO_CHAN_INFO_SCALE_SHARED), |
665 | 1, ADIS16400_SCAN_GYRO_X, IIO_ST('s', 14, 16, 0), 0), | 669 | gyro_x, ADIS16400_SCAN_GYRO_X, IIO_ST('s', 14, 16, 0), 0), |
666 | IIO_CHAN(IIO_ACCEL, 1, 0, 0, NULL, 0, IIO_MOD_X, | 670 | IIO_CHAN(IIO_ACCEL, 1, 0, 0, NULL, 0, IIO_MOD_X, |
667 | (1 << IIO_CHAN_INFO_CALIBBIAS_SEPARATE) | | 671 | (1 << IIO_CHAN_INFO_CALIBBIAS_SEPARATE) | |
668 | (1 << IIO_CHAN_INFO_SCALE_SHARED), | 672 | (1 << IIO_CHAN_INFO_SCALE_SHARED), |
669 | 4, ADIS16400_SCAN_ACC_X, IIO_ST('s', 14, 16, 0), 0), | 673 | accel_x, ADIS16400_SCAN_ACC_X, IIO_ST('s', 14, 16, 0), 0), |
670 | IIO_CHAN(IIO_ACCEL, 1, 0, 0, NULL, 0, IIO_MOD_Y, | 674 | IIO_CHAN(IIO_ACCEL, 1, 0, 0, NULL, 0, IIO_MOD_Y, |
671 | (1 << IIO_CHAN_INFO_CALIBBIAS_SEPARATE) | | 675 | (1 << IIO_CHAN_INFO_CALIBBIAS_SEPARATE) | |
672 | (1 << IIO_CHAN_INFO_SCALE_SHARED), | 676 | (1 << IIO_CHAN_INFO_SCALE_SHARED), |
673 | 0, ADIS16400_SCAN_ACC_Y, IIO_ST('s', 14, 16, 0), 0), | 677 | accel_y, ADIS16400_SCAN_ACC_Y, IIO_ST('s', 14, 16, 0), 0), |
674 | IIO_CHAN(IIO_ACCEL, 1, 0, 0, NULL, 0, IIO_MOD_Z, | 678 | IIO_CHAN(IIO_ACCEL, 1, 0, 0, NULL, 0, IIO_MOD_Z, |
675 | (1 << IIO_CHAN_INFO_CALIBBIAS_SEPARATE) | | 679 | (1 << IIO_CHAN_INFO_CALIBBIAS_SEPARATE) | |
676 | (1 << IIO_CHAN_INFO_SCALE_SHARED), | 680 | (1 << IIO_CHAN_INFO_SCALE_SHARED), |
677 | 0, ADIS16400_SCAN_ACC_Z, IIO_ST('s', 14, 16, 0), 0), | 681 | accel_z, ADIS16400_SCAN_ACC_Z, IIO_ST('s', 14, 16, 0), 0), |
678 | IIO_CHAN(IIO_TEMP, 0, 1, 0, NULL, 0, 0, | 682 | IIO_CHAN(IIO_TEMP, 0, 1, 0, NULL, 0, 0, |
679 | (1 << IIO_CHAN_INFO_OFFSET_SEPARATE) | | 683 | (1 << IIO_CHAN_INFO_OFFSET_SEPARATE) | |
680 | (1 << IIO_CHAN_INFO_SCALE_SEPARATE), | 684 | (1 << IIO_CHAN_INFO_SCALE_SEPARATE), |
681 | 0, ADIS16400_SCAN_TEMP, IIO_ST('s', 12, 16, 0), 0), | 685 | temp, ADIS16400_SCAN_TEMP, IIO_ST('s', 12, 16, 0), 0), |
682 | IIO_CHAN(IIO_IN, 0, 1, 0, NULL, 1, 0, | 686 | IIO_CHAN(IIO_IN, 0, 1, 0, NULL, 1, 0, |
683 | (1 << IIO_CHAN_INFO_SCALE_SEPARATE), | 687 | (1 << IIO_CHAN_INFO_SCALE_SEPARATE), |
684 | 0, ADIS16350_SCAN_ADC_0, IIO_ST('s', 12, 16, 0), 0), | 688 | in1, ADIS16350_SCAN_ADC_0, IIO_ST('s', 12, 16, 0), 0), |
685 | IIO_CHAN(IIO_INCLI, 1, 0, 0, NULL, 0, IIO_MOD_X, | 689 | IIO_CHAN(IIO_INCLI, 1, 0, 0, NULL, 0, IIO_MOD_X, |
686 | (1 << IIO_CHAN_INFO_SCALE_SHARED), | 690 | (1 << IIO_CHAN_INFO_SCALE_SHARED), |
687 | 0, ADIS16300_SCAN_INCLI_X, IIO_ST('s', 13, 16, 0), 0), | 691 | incli_x, ADIS16300_SCAN_INCLI_X, IIO_ST('s', 13, 16, 0), 0), |
688 | IIO_CHAN(IIO_INCLI, 1, 0, 0, NULL, 0, IIO_MOD_Y, | 692 | IIO_CHAN(IIO_INCLI, 1, 0, 0, NULL, 0, IIO_MOD_Y, |
689 | (1 << IIO_CHAN_INFO_SCALE_SHARED), | 693 | (1 << IIO_CHAN_INFO_SCALE_SHARED), |
690 | 0, ADIS16300_SCAN_INCLI_Y, IIO_ST('s', 13, 16, 0), 0), | 694 | incli_y, ADIS16300_SCAN_INCLI_Y, IIO_ST('s', 13, 16, 0), 0), |
691 | IIO_CHAN_SOFT_TIMESTAMP(14) | 695 | IIO_CHAN_SOFT_TIMESTAMP(14) |
692 | }; | 696 | }; |
693 | 697 | ||