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