RE: [PATCH 2/4] staging:iio:imu:adis16344 support

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Jonathan Cameron wrote on 2011-07-11:
> Simple device. Note the sparse scan mask used.
>
> Done from datasheet as very similar to existing parts.
>
> Signed-off-by: Jonathan Cameron <jic23@xxxxxxxxx>

Acked-by: Michael Hennerich <michael.hennerich@xxxxxxxxxx>

> ---
>  drivers/staging/iio/imu/adis16400_core.c |   46
>  +++++++++++++++++++++++++++++- 1 files changed, 45 insertions(+), 1
>  deletions(-)
> diff --git a/drivers/staging/iio/imu/adis16400_core.c
> b/drivers/staging/iio/imu/adis16400_core.c index 66fc156..f034330 100644
> --- a/drivers/staging/iio/imu/adis16400_core.c +++
> b/drivers/staging/iio/imu/adis16400_core.c @@ -35,6 +35,7 @@
>
>  enum adis16400_chip_variant {        ADIS16300, +    ADIS16344,      ADIS16350,
>       ADIS16360,      ADIS16362, @@ -458,7 +459,7 @@ static u8
>  adis16400_addresses[17][2] = {       [temp2] = { ADIS16350_ZTEMP_OUT },
>       [in1] = { ADIS16400_AUX_ADC, 0 },       [incli_x] = { ADIS16300_PITCH_OUT,
>  0 },
> -     [incli_y] = { ADIS16300_ROLL_OUT, 0 }
> +     [incli_y] = { ADIS16300_ROLL_OUT, 0 },
>  };
>
>  static int adis16400_write_raw(struct iio_dev *indio_dev, @@ -690,6
>  +691,38 @@ static struct iio_chan_spec adis16300_channels[] = {
>       IIO_CHAN_SOFT_TIMESTAMP(14) };
> +static const struct iio_chan_spec adis16344_channels[] = {
> +     IIO_CHAN(IIO_GYRO, 1, 0, 0, NULL, 0, IIO_MOD_X, +                (1 <<
> IIO_CHAN_INFO_CALIBBIAS_SEPARATE) | +          (1 <<
> IIO_CHAN_INFO_SCALE_SHARED), +                 gyro_x, ADIS16400_SCAN_GYRO_X,
> IIO_ST('s', 14, 16, 0), 0), + IIO_CHAN(IIO_GYRO, 1, 0, 0, NULL, 0,
> IIO_MOD_Y, +           (1 << IIO_CHAN_INFO_CALIBBIAS_SEPARATE) | +             (1 <<
> IIO_CHAN_INFO_SCALE_SHARED), +                 gyro_y, ADIS16400_SCAN_GYRO_Y,
> IIO_ST('s', 14, 16, 0), 0), + IIO_CHAN(IIO_GYRO, 1, 0, 0, NULL, 0,
> IIO_MOD_Z, +           (1 << IIO_CHAN_INFO_CALIBBIAS_SEPARATE) | +             (1 <<
> IIO_CHAN_INFO_SCALE_SHARED), +                 gyro_z, ADIS16400_SCAN_GYRO_Z,
> IIO_ST('s', 14, 16, 0), 0), + IIO_CHAN(IIO_ACCEL, 1, 0, 0, NULL, 0,
> IIO_MOD_X, +           (1 << IIO_CHAN_INFO_CALIBBIAS_SEPARATE) | +             (1 <<
> IIO_CHAN_INFO_SCALE_SHARED), +                 accel_x, ADIS16400_SCAN_ACC_X,
> IIO_ST('s', 14, 16, 0), 0), + IIO_CHAN(IIO_ACCEL, 1, 0, 0, NULL, 0,
> IIO_MOD_Y, +           (1 << IIO_CHAN_INFO_CALIBBIAS_SEPARATE) | +             (1 <<
> IIO_CHAN_INFO_SCALE_SHARED), +                 accel_y, ADIS16400_SCAN_ACC_Y,
> IIO_ST('s', 14, 16, 0), 0), + IIO_CHAN(IIO_ACCEL, 1, 0, 0, NULL, 0,
> IIO_MOD_Z, +           (1 << IIO_CHAN_INFO_CALIBBIAS_SEPARATE) | +             (1 <<
> IIO_CHAN_INFO_SCALE_SHARED), +                 accel_z, ADIS16400_SCAN_ACC_Z,
> IIO_ST('s', 14, 16, 0), 0), + IIO_CHAN(IIO_TEMP, 0, 1, 0, NULL, 0, 0,
> +              (1 << IIO_CHAN_INFO_OFFSET_SEPARATE) | +                (1 <<
> IIO_CHAN_INFO_SCALE_SEPARATE), +               temp0, ADIS16350_SCAN_TEMP_X,
> IIO_ST('s', 12, 16, 0), 0), + IIO_CHAN_SOFT_TIMESTAMP(12) +}; +
>  static struct attribute *adis16400_attributes[] = {
>       &iio_dev_attr_sampling_frequency.dev_attr.attr,
>       &iio_const_attr_sampling_frequency_available.dev_attr.attr,
> @@ -714,6 +747,16 @@ static struct adis16400_chip_info
> adis16400_chips[] = {
>               (1 << ADIS16300_SCAN_INCLI_X) | (1 << ADIS16300_SCAN_INCLI_Y) |                 (1
>  << 14),      },
> +     [ADIS16344] = {
> +             .channels = adis16344_channels,
> +             .num_channels = ARRAY_SIZE(adis16344_channels),
> +             .gyro_scale_micro = 873,
> +             .accel_scale_micro = 981,
> +             .default_scan_mask = (1 << ADIS16400_SCAN_GYRO_X) |
> +             (1 << ADIS16400_SCAN_GYRO_Y) | (1 << ADIS16400_SCAN_GYRO_Z)
> |
> +             (1 << ADIS16400_SCAN_ACC_X) | (1 << ADIS16400_SCAN_ACC_Y) |
> +             (1 << ADIS16400_SCAN_ACC_Z),
> +     },
>       [ADIS16350] = {
>               .channels = adis16350_channels,
>               .num_channels = ARRAY_SIZE(adis16350_channels), @@ -869,6
> +912,7 @@ err_ret:
>
 static const struct spi_device_id adis16400_id[] = {   {"adis16300",
 ADIS16300}, +  {"adis16344", ADIS16344},       {"adis16350", ADIS16350},
        {"adis16354", ADIS16350},       {"adis16355", ADIS16350},

Greetings,
Michael

--
Analog Devices GmbH      Wilhelm-Wagenfeld-Str. 6      80807 Muenchen
Sitz der Gesellschaft: Muenchen; Registergericht: Muenchen HRB 40368; Geschaeftsfuehrer:Dr.Carsten Suckrow, Thomas Wessel, William A. Martin, Margaret Seif



--
To unsubscribe from this list: send the line "unsubscribe linux-iio" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Input]     [Linux Kernel]     [Linux SCSI]     [X.org]

  Powered by Linux