* [PATCH 0/4] ADIS16400 one big fix and some updates. @ 2011-07-11 15:58 Jonathan Cameron 2011-07-11 15:58 ` [PATCH 1/4] staging:iio:imu fix missing register table index for some channels Jonathan Cameron ` (3 more replies) 0 siblings, 4 replies; 11+ messages in thread From: Jonathan Cameron @ 2011-07-11 15:58 UTC (permalink / raw) To: linux-iio; +Cc: Device-drivers-devel, manuel.stahl, Jonathan Cameron Hi All, The first patch here is a clanger of a bug introduced by me. Pretty self explanatory. Sorry all. The others are simple cleanups. Jonathan Cameron (4): staging:iio:imu fix missing register table index for some channels staging:iio:imu:adis16344 support staging:iio:imu:adis16400: use strtobool for reset sysfs and don't assign unused tx members. staging:iio:imu:adis16400 remove now unused headers. drivers/staging/iio/imu/adis16400.h | 3 + drivers/staging/iio/imu/adis16400_core.c | 117 +++++++++++++++++++-------- drivers/staging/iio/imu/adis16400_ring.c | 7 -- drivers/staging/iio/imu/adis16400_trigger.c | 6 -- 4 files changed, 85 insertions(+), 48 deletions(-) -- 1.7.3.4 ^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH 1/4] staging:iio:imu fix missing register table index for some channels 2011-07-11 15:58 [PATCH 0/4] ADIS16400 one big fix and some updates Jonathan Cameron @ 2011-07-11 15:58 ` Jonathan Cameron 2011-07-13 11:03 ` Hennerich, Michael 2011-07-11 15:58 ` [PATCH 2/4] staging:iio:imu:adis16344 support Jonathan Cameron ` (2 subsequent siblings) 3 siblings, 1 reply; 11+ messages in thread From: Jonathan Cameron @ 2011-07-11 15:58 UTC (permalink / raw) To: linux-iio; +Cc: Device-drivers-devel, manuel.stahl, Jonathan Cameron A number of these register indexes were not set or actually wrong. This only effects sysfs reads. Signed-off-by: Jonathan Cameron <jic23@cam.ac.uk> --- drivers/staging/iio/imu/adis16400.h | 3 ++ drivers/staging/iio/imu/adis16400_core.c | 50 ++++++++++++++++-------------- 2 files changed, 30 insertions(+), 23 deletions(-) diff --git a/drivers/staging/iio/imu/adis16400.h b/drivers/staging/iio/imu/adis16400.h index e87715b..1f8f0c6 100644 --- a/drivers/staging/iio/imu/adis16400.h +++ b/drivers/staging/iio/imu/adis16400.h @@ -41,6 +41,9 @@ #define ADIS16350_YTEMP_OUT 0x12 /* Y-axis gyroscope temperature measurement */ #define ADIS16350_ZTEMP_OUT 0x14 /* Z-axis gyroscope temperature measurement */ +#define ADIS16300_PITCH_OUT 0x12 /* X axis inclinometer output measurement */ +#define ADIS16300_ROLL_OUT 0x12 /* Y axis inclinometer output measurement */ + /* Calibration parameters */ #define ADIS16400_XGYRO_OFF 0x1A /* X-axis gyroscope bias offset factor */ #define ADIS16400_YGYRO_OFF 0x1C /* Y-axis gyroscope bias offset factor */ diff --git a/drivers/staging/iio/imu/adis16400_core.c b/drivers/staging/iio/imu/adis16400_core.c index 8477549..66fc156 100644 --- a/drivers/staging/iio/imu/adis16400_core.c +++ b/drivers/staging/iio/imu/adis16400_core.c @@ -436,10 +436,12 @@ enum adis16400_chan { magn_z, temp, temp0, temp1, temp2, - in1 + in1, + incli_x, + incli_y, }; -static u8 adis16400_addresses[16][2] = { +static u8 adis16400_addresses[17][2] = { [in_supply] = { ADIS16400_SUPPLY_OUT, 0 }, [gyro_x] = { ADIS16400_XGYRO_OUT, ADIS16400_XGYRO_OFF }, [gyro_y] = { ADIS16400_YGYRO_OUT, ADIS16400_YGYRO_OFF }, @@ -454,7 +456,9 @@ static u8 adis16400_addresses[16][2] = { [temp0] = { ADIS16350_XTEMP_OUT }, [temp1] = { ADIS16350_YTEMP_OUT }, [temp2] = { ADIS16350_ZTEMP_OUT }, - [in1] = { ADIS16400_AUX_ADC , 0 }, + [in1] = { ADIS16400_AUX_ADC, 0 }, + [incli_x] = { ADIS16300_PITCH_OUT, 0 }, + [incli_y] = { ADIS16300_ROLL_OUT, 0 } }; static int adis16400_write_raw(struct iio_dev *indio_dev, @@ -607,82 +611,82 @@ static struct iio_chan_spec adis16400_channels[] = { static struct iio_chan_spec adis16350_channels[] = { IIO_CHAN(IIO_IN, 0, 1, 0, "supply", 0, 0, (1 << IIO_CHAN_INFO_SCALE_SEPARATE), - 0, ADIS16400_SCAN_SUPPLY, IIO_ST('u', 12, 16, 0), 0), + in_supply, ADIS16400_SCAN_SUPPLY, IIO_ST('u', 12, 16, 0), 0), IIO_CHAN(IIO_GYRO, 1, 0, 0, NULL, 0, IIO_MOD_X, (1 << IIO_CHAN_INFO_CALIBBIAS_SEPARATE) | (1 << IIO_CHAN_INFO_SCALE_SHARED), - 1, ADIS16400_SCAN_GYRO_X, IIO_ST('s', 14, 16, 0), 0), + 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), - 2, ADIS16400_SCAN_GYRO_Y, IIO_ST('s', 14, 16, 0), 0), + 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), - 3, ADIS16400_SCAN_GYRO_Z, IIO_ST('s', 14, 16, 0), 0), + 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), - 4, ADIS16400_SCAN_ACC_X, IIO_ST('s', 14, 16, 0), 0), + 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), - 0, ADIS16400_SCAN_ACC_Y, IIO_ST('s', 14, 16, 0), 0), + 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), - 0, ADIS16400_SCAN_ACC_Z, IIO_ST('s', 14, 16, 0), 0), + accel_z, ADIS16400_SCAN_ACC_Z, IIO_ST('s', 14, 16, 0), 0), IIO_CHAN(IIO_TEMP, 0, 1, 0, "x", 0, 0, (1 << IIO_CHAN_INFO_OFFSET_SEPARATE) | (1 << IIO_CHAN_INFO_SCALE_SEPARATE), - 0, ADIS16350_SCAN_TEMP_X, IIO_ST('s', 12, 16, 0), 0), + temp0, ADIS16350_SCAN_TEMP_X, IIO_ST('s', 12, 16, 0), 0), IIO_CHAN(IIO_TEMP, 0, 1, 0, "y", 1, 0, (1 << IIO_CHAN_INFO_OFFSET_SEPARATE) | (1 << IIO_CHAN_INFO_SCALE_SEPARATE), - 0, ADIS16350_SCAN_TEMP_Y, IIO_ST('s', 12, 16, 0), 0), + temp1, ADIS16350_SCAN_TEMP_Y, IIO_ST('s', 12, 16, 0), 0), IIO_CHAN(IIO_TEMP, 0, 1, 0, "z", 2, 0, (1 << IIO_CHAN_INFO_OFFSET_SEPARATE) | (1 << IIO_CHAN_INFO_SCALE_SEPARATE), - 0, ADIS16350_SCAN_TEMP_Z, IIO_ST('s', 12, 16, 0), 0), + temp2, ADIS16350_SCAN_TEMP_Z, IIO_ST('s', 12, 16, 0), 0), IIO_CHAN(IIO_IN, 0, 1, 0, NULL, 1, 0, (1 << IIO_CHAN_INFO_SCALE_SEPARATE), - 0, ADIS16350_SCAN_ADC_0, IIO_ST('s', 12, 16, 0), 0), + in1, ADIS16350_SCAN_ADC_0, IIO_ST('s', 12, 16, 0), 0), IIO_CHAN_SOFT_TIMESTAMP(11) }; static struct iio_chan_spec adis16300_channels[] = { IIO_CHAN(IIO_IN, 0, 1, 0, "supply", 0, 0, (1 << IIO_CHAN_INFO_SCALE_SEPARATE), - 0, ADIS16400_SCAN_SUPPLY, IIO_ST('u', 12, 16, 0), 0), + in_supply, ADIS16400_SCAN_SUPPLY, IIO_ST('u', 12, 16, 0), 0), IIO_CHAN(IIO_GYRO, 1, 0, 0, NULL, 0, IIO_MOD_X, (1 << IIO_CHAN_INFO_CALIBBIAS_SEPARATE) | (1 << IIO_CHAN_INFO_SCALE_SHARED), - 1, ADIS16400_SCAN_GYRO_X, IIO_ST('s', 14, 16, 0), 0), + gyro_x, ADIS16400_SCAN_GYRO_X, 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), - 4, ADIS16400_SCAN_ACC_X, IIO_ST('s', 14, 16, 0), 0), + 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), - 0, ADIS16400_SCAN_ACC_Y, IIO_ST('s', 14, 16, 0), 0), + 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), - 0, ADIS16400_SCAN_ACC_Z, IIO_ST('s', 14, 16, 0), 0), + 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), - 0, ADIS16400_SCAN_TEMP, IIO_ST('s', 12, 16, 0), 0), + temp, ADIS16400_SCAN_TEMP, IIO_ST('s', 12, 16, 0), 0), IIO_CHAN(IIO_IN, 0, 1, 0, NULL, 1, 0, (1 << IIO_CHAN_INFO_SCALE_SEPARATE), - 0, ADIS16350_SCAN_ADC_0, IIO_ST('s', 12, 16, 0), 0), + in1, ADIS16350_SCAN_ADC_0, IIO_ST('s', 12, 16, 0), 0), IIO_CHAN(IIO_INCLI, 1, 0, 0, NULL, 0, IIO_MOD_X, (1 << IIO_CHAN_INFO_SCALE_SHARED), - 0, ADIS16300_SCAN_INCLI_X, IIO_ST('s', 13, 16, 0), 0), + incli_x, ADIS16300_SCAN_INCLI_X, IIO_ST('s', 13, 16, 0), 0), IIO_CHAN(IIO_INCLI, 1, 0, 0, NULL, 0, IIO_MOD_Y, (1 << IIO_CHAN_INFO_SCALE_SHARED), - 0, ADIS16300_SCAN_INCLI_Y, IIO_ST('s', 13, 16, 0), 0), + incli_y, ADIS16300_SCAN_INCLI_Y, IIO_ST('s', 13, 16, 0), 0), IIO_CHAN_SOFT_TIMESTAMP(14) }; -- 1.7.3.4 ^ permalink raw reply related [flat|nested] 11+ messages in thread
* RE: [PATCH 1/4] staging:iio:imu fix missing register table index for some channels 2011-07-11 15:58 ` [PATCH 1/4] staging:iio:imu fix missing register table index for some channels Jonathan Cameron @ 2011-07-13 11:03 ` Hennerich, Michael 0 siblings, 0 replies; 11+ messages in thread From: Hennerich, Michael @ 2011-07-13 11:03 UTC (permalink / raw) To: Jonathan Cameron, linux-iio; +Cc: Device-drivers-devel, manuel.stahl Jonathan Cameron wrote on 2011-07-11: > A number of these register indexes were not set or actually wrong. > This only effects sysfs reads. > > Signed-off-by: Jonathan Cameron <jic23@cam.ac.uk> Acked-by: Michael Hennerich <michael.hennerich@analog.com> > --- > drivers/staging/iio/imu/adis16400.h | 3 ++ > drivers/staging/iio/imu/adis16400_core.c | 50 ++++++++++++++++------ > -------- 2 files changed, 30 insertions(+), 23 deletions(-) > diff --git a/drivers/staging/iio/imu/adis16400.h > b/drivers/staging/iio/imu/adis16400.h index e87715b..1f8f0c6 100644 --- > a/drivers/staging/iio/imu/adis16400.h +++ > b/drivers/staging/iio/imu/adis16400.h @@ -41,6 +41,9 @@ > #define ADIS16350_YTEMP_OUT 0x12 /* Y-axis gyroscope temperature > measurement */ #define ADIS16350_ZTEMP_OUT 0x14 /* Z-axis gyroscope > temperature measurement */ > > +#define ADIS16300_PITCH_OUT 0x12 /* X axis inclinometer output > +measurement */ #define ADIS16300_ROLL_OUT 0x12 /* Y axis > +inclinometer output measurement */ > + > /* Calibration parameters */ > #define ADIS16400_XGYRO_OFF 0x1A /* X-axis gyroscope bias offset > factor */ #define ADIS16400_YGYRO_OFF 0x1C /* Y-axis gyroscope bias > offset factor */ diff --git a/drivers/staging/iio/imu/adis16400_core.c > b/drivers/staging/iio/imu/adis16400_core.c index 8477549..66fc156 100644 > --- a/drivers/staging/iio/imu/adis16400_core.c +++ > b/drivers/staging/iio/imu/adis16400_core.c @@ -436,10 +436,12 @@ enum > adis16400_chan { > magn_z, > temp, > temp0, temp1, temp2, > - in1 > + in1, > + incli_x, > + incli_y, > }; > -static u8 adis16400_addresses[16][2] =3D { > +static u8 adis16400_addresses[17][2] =3D { > [in_supply] =3D { ADIS16400_SUPPLY_OUT, 0 }, [gyro_x] =3D { > ADIS16400_XGYRO_OUT, ADIS16400_XGYRO_OFF }, [gyro_y] =3D { > ADIS16400_YGYRO_OUT, ADIS16400_YGYRO_OFF }, @@ - 454,7 +456,9 @@ static > u8 adis16400_addresses[16][2] =3D { [temp0] =3D { ADIS16350_XTEMP_OUT= }, > [temp1] =3D { ADIS16350_YTEMP_OUT }, [temp2] =3D { ADIS16350_Z= TEMP_OUT }, > - [in1] =3D { ADIS16400_AUX_ADC , 0 }, > + [in1] =3D { ADIS16400_AUX_ADC, 0 }, > + [incli_x] =3D { ADIS16300_PITCH_OUT, 0 }, > + [incli_y] =3D { ADIS16300_ROLL_OUT, 0 } > }; > > static int adis16400_write_raw(struct iio_dev *indio_dev, @@ -607,82 > +611,82 @@ static struct iio_chan_spec adis16400_channels[] =3D { +static > struct iio_chan_spec adis16350_channels[] =3D { > IIO_CHAN(IIO_IN, 0, 1, 0, "supply", 0, 0, > (1 << IIO_CHAN_INFO_SCALE_SEPARATE), > - 0, ADIS16400_SCAN_SUPPLY, IIO_ST('u', 12, 16, 0), 0), > + in_supply, ADIS16400_SCAN_SUPPLY, IIO_ST('u', 12, 16, 0), > 0), > IIO_CHAN(IIO_GYRO, 1, 0, 0, NULL, 0, IIO_MOD_X, > (1 << IIO_CHAN_INFO_CALIBBIAS_SEPARATE) | > (1 << IIO_CHAN_INFO_SCALE_SHARED), > - 1, ADIS16400_SCAN_GYRO_X, IIO_ST('s', 14, 16, 0), 0), > + 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), > - 2, ADIS16400_SCAN_GYRO_Y, IIO_ST('s', 14, 16, 0), 0), > + 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), > - 3, ADIS16400_SCAN_GYRO_Z, IIO_ST('s', 14, 16, 0), 0), > + 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), > - 4, ADIS16400_SCAN_ACC_X, IIO_ST('s', 14, 16, 0), 0), > + 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), > - 0, ADIS16400_SCAN_ACC_Y, IIO_ST('s', 14, 16, 0), 0), > + 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), > - 0, ADIS16400_SCAN_ACC_Z, IIO_ST('s', 14, 16, 0), 0), > + accel_z, ADIS16400_SCAN_ACC_Z, IIO_ST('s', 14, 16, 0), 0), > IIO_CHAN(IIO_TEMP, 0, 1, 0, "x", 0, 0, > (1 << IIO_CHAN_INFO_OFFSET_SEPARATE) | > (1 << IIO_CHAN_INFO_SCALE_SEPARATE), > - 0, ADIS16350_SCAN_TEMP_X, IIO_ST('s', 12, 16, 0), 0), > + temp0, ADIS16350_SCAN_TEMP_X, IIO_ST('s', 12, 16, 0), 0), > IIO_CHAN(IIO_TEMP, 0, 1, 0, "y", 1, 0, > (1 << IIO_CHAN_INFO_OFFSET_SEPARATE) | > (1 << IIO_CHAN_INFO_SCALE_SEPARATE), > - 0, ADIS16350_SCAN_TEMP_Y, IIO_ST('s', 12, 16, 0), 0), > + temp1, ADIS16350_SCAN_TEMP_Y, IIO_ST('s', 12, 16, 0), 0), > IIO_CHAN(IIO_TEMP, 0, 1, 0, "z", 2, 0, > (1 << IIO_CHAN_INFO_OFFSET_SEPARATE) | > (1 << IIO_CHAN_INFO_SCALE_SEPARATE), > - 0, ADIS16350_SCAN_TEMP_Z, IIO_ST('s', 12, 16, 0), 0), > + temp2, ADIS16350_SCAN_TEMP_Z, IIO_ST('s', 12, 16, 0), 0), > IIO_CHAN(IIO_IN, 0, 1, 0, NULL, 1, 0, > (1 << IIO_CHAN_INFO_SCALE_SEPARATE), > - 0, ADIS16350_SCAN_ADC_0, IIO_ST('s', 12, 16, 0), 0), > + in1, ADIS16350_SCAN_ADC_0, IIO_ST('s', 12, 16, 0), 0), > IIO_CHAN_SOFT_TIMESTAMP(11) > }; > > static struct iio_chan_spec adis16300_channels[] =3D { > IIO_CHAN(IIO_IN, 0, 1, 0, "supply", 0, 0, > (1 << IIO_CHAN_INFO_SCALE_SEPARATE), > - 0, ADIS16400_SCAN_SUPPLY, IIO_ST('u', 12, 16, 0), 0), > + in_supply, ADIS16400_SCAN_SUPPLY, IIO_ST('u', 12, 16, 0), > 0), > IIO_CHAN(IIO_GYRO, 1, 0, 0, NULL, 0, IIO_MOD_X, > (1 << IIO_CHAN_INFO_CALIBBIAS_SEPARATE) | > (1 << IIO_CHAN_INFO_SCALE_SHARED), > - 1, ADIS16400_SCAN_GYRO_X, IIO_ST('s', 14, 16, 0), 0), > + gyro_x, ADIS16400_SCAN_GYRO_X, 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), > - 4, ADIS16400_SCAN_ACC_X, IIO_ST('s', 14, 16, 0), 0), > + 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), > - 0, ADIS16400_SCAN_ACC_Y, IIO_ST('s', 14, 16, 0), 0), > + 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), > - 0, ADIS16400_SCAN_ACC_Z, IIO_ST('s', 14, 16, 0), 0), > + 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), > - 0, ADIS16400_SCAN_TEMP, IIO_ST('s', 12, 16, 0), 0), > + temp, ADIS16400_SCAN_TEMP, IIO_ST('s', 12, 16, 0), 0), > IIO_CHAN(IIO_IN, 0, 1, 0, NULL, 1, 0, > (1 << IIO_CHAN_INFO_SCALE_SEPARATE), > - 0, ADIS16350_SCAN_ADC_0, IIO_ST('s', 12, 16, 0), 0), > + in1, ADIS16350_SCAN_ADC_0, IIO_ST('s', 12, 16, 0), 0), > IIO_CHAN(IIO_INCLI, 1, 0, 0, NULL, 0, IIO_MOD_X, > (1 << IIO_CHAN_INFO_SCALE_SHARED), > - 0, ADIS16300_SCAN_INCLI_X, IIO_ST('s', 13, 16, 0), 0), > + incli_x, ADIS16300_SCAN_INCLI_X, IIO_ST('s', 13, 16, 0), > 0), > IIO_CHAN(IIO_INCLI, 1, 0, 0, NULL, 0, IIO_MOD_Y, > (1 << IIO_CHAN_INFO_SCALE_SHARED), > - 0, ADIS16300_SCAN_INCLI_Y, IIO_ST('s', 13, 16, 0), 0), > + incli_y, ADIS16300_SCAN_INCLI_Y, IIO_ST('s', 13, 16, 0), > 0), > IIO_CHAN_SOFT_TIMESTAMP(14) > }; Greetings, Michael -- Analog Devices GmbH Wilhelm-Wagenfeld-Str. 6 80807 Muenchen Sitz der Gesellschaft: Muenchen; Registergericht: Muenchen HRB 40368; Gesch= aeftsfuehrer:Dr.Carsten Suckrow, Thomas Wessel, William A. Martin, Margaret= Seif ^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH 2/4] staging:iio:imu:adis16344 support 2011-07-11 15:58 [PATCH 0/4] ADIS16400 one big fix and some updates Jonathan Cameron 2011-07-11 15:58 ` [PATCH 1/4] staging:iio:imu fix missing register table index for some channels Jonathan Cameron @ 2011-07-11 15:58 ` Jonathan Cameron 2011-07-13 11:03 ` Hennerich, Michael 2011-07-11 15:58 ` [PATCH 3/4] staging:iio:imu:adis16400: use strtobool for reset sysfs and don't assign unused tx members Jonathan Cameron 2011-07-11 15:58 ` [PATCH 4/4] staging:iio:imu:adis16400 remove now unused headers Jonathan Cameron 3 siblings, 1 reply; 11+ messages in thread From: Jonathan Cameron @ 2011-07-11 15:58 UTC (permalink / raw) To: linux-iio; +Cc: Device-drivers-devel, manuel.stahl, Jonathan Cameron Simple device. Note the sparse scan mask used. Done from datasheet as very similar to existing parts. Signed-off-by: Jonathan Cameron <jic23@cam.ac.uk> --- 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}, -- 1.7.3.4 ^ permalink raw reply related [flat|nested] 11+ messages in thread
* RE: [PATCH 2/4] staging:iio:imu:adis16344 support 2011-07-11 15:58 ` [PATCH 2/4] staging:iio:imu:adis16344 support Jonathan Cameron @ 2011-07-13 11:03 ` Hennerich, Michael 2011-09-23 14:45 ` Jonathan Cameron 0 siblings, 1 reply; 11+ messages in thread From: Hennerich, Michael @ 2011-07-13 11:03 UTC (permalink / raw) To: Jonathan Cameron, linux-iio; +Cc: Device-drivers-devel, manuel.stahl 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@cam.ac.uk> Acked-by: Michael Hennerich <michael.hennerich@analog.com> > --- > 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, ADI= S16350, > ADIS16360, ADIS16362, @@ -458,7 +459,7 @@ static u8 > adis16400_addresses[17][2] =3D { [temp2] =3D { ADIS16350_ZTEMP_OUT= }, > [in1] =3D { ADIS16400_AUX_ADC, 0 }, [incli_x] =3D { ADIS16300= _PITCH_OUT, > 0 }, > - [incli_y] =3D { ADIS16300_ROLL_OUT, 0 } > + [incli_y] =3D { 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[] =3D { > IIO_CHAN_SOFT_TIMESTAMP(14) }; > +static const struct iio_chan_spec adis16344_channels[] =3D { > + 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_GYR= O_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_GYR= O_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_GYR= O_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_AC= C_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_AC= C_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_AC= C_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[] =3D { > &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[] =3D { > (1 << ADIS16300_SCAN_INCLI_X) | (1 << ADIS16300_SCAN_INCLI_= Y) | (1 > << 14), }, > + [ADIS16344] =3D { > + .channels =3D adis16344_channels, > + .num_channels =3D ARRAY_SIZE(adis16344_channels), > + .gyro_scale_micro =3D 873, > + .accel_scale_micro =3D 981, > + .default_scan_mask =3D (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] =3D { > .channels =3D adis16350_channels, > .num_channels =3D ARRAY_SIZE(adis16350_channels), @@ -869,6 > +912,7 @@ err_ret: > static const struct spi_device_id adis16400_id[] =3D { {"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; Gesch= aeftsfuehrer:Dr.Carsten Suckrow, Thomas Wessel, William A. Martin, Margaret= Seif ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH 2/4] staging:iio:imu:adis16344 support 2011-07-13 11:03 ` Hennerich, Michael @ 2011-09-23 14:45 ` Jonathan Cameron 2011-09-26 6:56 ` Hennerich, Michael 0 siblings, 1 reply; 11+ messages in thread From: Jonathan Cameron @ 2011-09-23 14:45 UTC (permalink / raw) To: Hennerich, Michael; +Cc: linux-iio, Device-drivers-devel, manuel.stahl I know this was a while ago, but I have a feeling I may have made up this part number and it is infact called an adis16334? Can anyone shed any light on this? Whatever happened, I'll put together a patch changing the naming given it is clearly wrong! > 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@cam.ac.uk> > > Acked-by: Michael Hennerich <michael.hennerich@analog.com> > >> --- >> 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 > > > > ^ permalink raw reply [flat|nested] 11+ messages in thread
* RE: [PATCH 2/4] staging:iio:imu:adis16344 support 2011-09-23 14:45 ` Jonathan Cameron @ 2011-09-26 6:56 ` Hennerich, Michael 0 siblings, 0 replies; 11+ messages in thread From: Hennerich, Michael @ 2011-09-26 6:56 UTC (permalink / raw) To: Jonathan Cameron; +Cc: linux-iio, Device-drivers-devel, manuel.stahl Jonathan Cameron wrote on 2011-09-23: > I know this was a while ago, but I have a feeling I may have made up > this part number and it is infact called an adis16334? > > Can anyone shed any light on this? Hi Jonathan, ADIS16344 is not a valid part number and I think you meant ADIS16334. -Michael > Whatever happened, I'll put together a patch changing the naming given > it is clearly wrong! >> 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@cam.ac.uk> >> >> Acked-by: Michael Hennerich <michael.hennerich@analog.com> >> >>> --- >>> 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] =3D { [temp2] =3D { > ADIS16350_ZTEMP_OUT }, >>> [in1] =3D { ADIS16400_AUX_ADC, 0 }, [incli_x] =3D { > ADIS16300_PITCH_OUT, >>> 0 }, >>> - [incli_y] =3D { ADIS16300_ROLL_OUT, 0 } >>> + [incli_y] =3D { 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[] =3D { >>> IIO_CHAN_SOFT_TIMESTAMP(14) }; >>> +static const struct iio_chan_spec adis16344_channels[] =3D { + >>> 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[] =3D { >>> &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[] =3D { >>> (1 << ADIS16300_SCAN_INCLI_X) | (1 << > ADIS16300_SCAN_INCLI_Y) | (1 >>> << 14), }, >>> + [ADIS16344] =3D { + .channels =3D adis16344_channels,= + >>> .num_channels =3D ARRAY_SIZE(adis16344_channels), + >>> .gyro_scale_micro =3D 873, + .accel_scale_micro =3D 981, = + >>> .default_scan_mask =3D (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] =3D { >>> .channels =3D adis16350_channels, >>> .num_channels =3D ARRAY_SIZE(adis16350_channels), @@ - > 869,6 >>> +912,7 @@ err_ret: >>> >>> static const struct spi_device_id adis16400_id[] =3D { {"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 >> >> >> >> > 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, Mar= garet Seif ^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH 3/4] staging:iio:imu:adis16400: use strtobool for reset sysfs and don't assign unused tx members. 2011-07-11 15:58 [PATCH 0/4] ADIS16400 one big fix and some updates Jonathan Cameron 2011-07-11 15:58 ` [PATCH 1/4] staging:iio:imu fix missing register table index for some channels Jonathan Cameron 2011-07-11 15:58 ` [PATCH 2/4] staging:iio:imu:adis16344 support Jonathan Cameron @ 2011-07-11 15:58 ` Jonathan Cameron 2011-07-13 11:03 ` Hennerich, Michael 2011-07-11 15:58 ` [PATCH 4/4] staging:iio:imu:adis16400 remove now unused headers Jonathan Cameron 3 siblings, 1 reply; 11+ messages in thread From: Jonathan Cameron @ 2011-07-11 15:58 UTC (permalink / raw) To: linux-iio; +Cc: Device-drivers-devel, manuel.stahl, Jonathan Cameron Signed-off-by: Jonathan Cameron <jic23@cam.ac.uk> --- drivers/staging/iio/imu/adis16400_core.c | 23 +++++++++++------------ 1 files changed, 11 insertions(+), 12 deletions(-) diff --git a/drivers/staging/iio/imu/adis16400_core.c b/drivers/staging/iio/imu/adis16400_core.c index f034330..75d4734 100644 --- a/drivers/staging/iio/imu/adis16400_core.c +++ b/drivers/staging/iio/imu/adis16400_core.c @@ -146,8 +146,6 @@ static int adis16400_spi_read_reg_16(struct iio_dev *indio_dev, mutex_lock(&st->buf_lock); st->tx[0] = ADIS16400_READ_REG(lower_reg_address); st->tx[1] = 0; - st->tx[2] = 0; - st->tx[3] = 0; spi_message_init(&msg); spi_message_add_tail(&xfers[0], &msg); @@ -236,17 +234,18 @@ static ssize_t adis16400_write_reset(struct device *dev, struct device_attribute *attr, const char *buf, size_t len) { - struct iio_dev *indio_dev = dev_get_drvdata(dev); + bool val; + int ret; - if (len < 1) - return -1; - switch (buf[0]) { - case '1': - case 'y': - case 'Y': - return adis16400_reset(indio_dev); - } - return -1; + ret = strtobool(buf, &val); + if (ret < 0) + return ret; + if (val) + ret = adis16400_reset(dev_get_drvdata(dev)); + if (ret < 0) + return ret; + + return len; } int adis16400_set_irq(struct iio_dev *indio_dev, bool enable) -- 1.7.3.4 ^ permalink raw reply related [flat|nested] 11+ messages in thread
* RE: [PATCH 3/4] staging:iio:imu:adis16400: use strtobool for reset sysfs and don't assign unused tx members. 2011-07-11 15:58 ` [PATCH 3/4] staging:iio:imu:adis16400: use strtobool for reset sysfs and don't assign unused tx members Jonathan Cameron @ 2011-07-13 11:03 ` Hennerich, Michael 0 siblings, 0 replies; 11+ messages in thread From: Hennerich, Michael @ 2011-07-13 11:03 UTC (permalink / raw) To: Jonathan Cameron, linux-iio; +Cc: Device-drivers-devel, manuel.stahl Jonathan Cameron wrote on 2011-07-11: > Signed-off-by: Jonathan Cameron <jic23@cam.ac.uk> Acked-by: Michael Hennerich <michael.hennerich@analog.com> > --- > drivers/staging/iio/imu/adis16400_core.c | 23 +++++++++++----------- > - 1 files changed, 11 insertions(+), 12 deletions(-) > diff --git a/drivers/staging/iio/imu/adis16400_core.c > b/drivers/staging/iio/imu/adis16400_core.c index f034330..75d4734 100644 > --- a/drivers/staging/iio/imu/adis16400_core.c +++ > b/drivers/staging/iio/imu/adis16400_core.c @@ -146,8 +146,6 @@ static > int adis16400_spi_read_reg_16(struct iio_dev *indio_dev, > mutex_lock(&st->buf_lock); > st->tx[0] =3D ADIS16400_READ_REG(lower_reg_address); > st->tx[1] =3D 0; > - st->tx[2] =3D 0; > - st->tx[3] =3D 0; > > spi_message_init(&msg); spi_message_add_tail(&xfers[0], &ms= g); @@ > -236,17 +234,18 @@ static ssize_t adis16400_write_reset(struct device > *dev, struct device_attribute *attr, const char = *buf, size_t len) { > - struct iio_dev *indio_dev =3D dev_get_drvdata(dev); > + bool val; > + int ret; > > - if (len < 1) > - return -1; > - switch (buf[0]) { > - case '1': > - case 'y': > - case 'Y': > - return adis16400_reset(indio_dev); > - } > - return -1; > + ret =3D strtobool(buf, &val); > + if (ret < 0) > + return ret; > + if (val) > + ret =3D adis16400_reset(dev_get_drvdata(dev)); > + if (ret < 0) > + return ret; > + > + return len; > } > > int adis16400_set_irq(struct iio_dev *indio_dev, bool enable) Greetings, Michael -- Analog Devices GmbH Wilhelm-Wagenfeld-Str. 6 80807 Muenchen Sitz der Gesellschaft: Muenchen; Registergericht: Muenchen HRB 40368; Gesch= aeftsfuehrer:Dr.Carsten Suckrow, Thomas Wessel, William A. Martin, Margaret= Seif ^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH 4/4] staging:iio:imu:adis16400 remove now unused headers. 2011-07-11 15:58 [PATCH 0/4] ADIS16400 one big fix and some updates Jonathan Cameron ` (2 preceding siblings ...) 2011-07-11 15:58 ` [PATCH 3/4] staging:iio:imu:adis16400: use strtobool for reset sysfs and don't assign unused tx members Jonathan Cameron @ 2011-07-11 15:58 ` Jonathan Cameron 2011-07-13 11:04 ` Hennerich, Michael 3 siblings, 1 reply; 11+ messages in thread From: Jonathan Cameron @ 2011-07-11 15:58 UTC (permalink / raw) To: linux-iio; +Cc: Device-drivers-devel, manuel.stahl, Jonathan Cameron These should really have gone away with the code that needed them. Signed-off-by: Jonathan Cameron <jic23@cam.ac.uk> --- drivers/staging/iio/imu/adis16400_ring.c | 7 ------- drivers/staging/iio/imu/adis16400_trigger.c | 6 ------ 2 files changed, 0 insertions(+), 13 deletions(-) diff --git a/drivers/staging/iio/imu/adis16400_ring.c b/drivers/staging/iio/imu/adis16400_ring.c index d07c86b..ef38477 100644 --- a/drivers/staging/iio/imu/adis16400_ring.c +++ b/drivers/staging/iio/imu/adis16400_ring.c @@ -1,18 +1,11 @@ #include <linux/interrupt.h> -#include <linux/irq.h> -#include <linux/gpio.h> -#include <linux/workqueue.h> #include <linux/mutex.h> -#include <linux/device.h> #include <linux/kernel.h> #include <linux/spi/spi.h> #include <linux/slab.h> -#include <linux/sysfs.h> -#include <linux/list.h> #include <linux/bitops.h> #include "../iio.h" -#include "../sysfs.h" #include "../ring_sw.h" #include "../trigger.h" #include "adis16400.h" diff --git a/drivers/staging/iio/imu/adis16400_trigger.c b/drivers/staging/iio/imu/adis16400_trigger.c index 4e1f295..3860d92 100644 --- a/drivers/staging/iio/imu/adis16400_trigger.c +++ b/drivers/staging/iio/imu/adis16400_trigger.c @@ -1,14 +1,8 @@ #include <linux/interrupt.h> -#include <linux/irq.h> -#include <linux/mutex.h> -#include <linux/device.h> #include <linux/kernel.h> -#include <linux/sysfs.h> -#include <linux/list.h> #include <linux/spi/spi.h> #include "../iio.h" -#include "../sysfs.h" #include "../trigger.h" #include "adis16400.h" -- 1.7.3.4 ^ permalink raw reply related [flat|nested] 11+ messages in thread
* RE: [PATCH 4/4] staging:iio:imu:adis16400 remove now unused headers. 2011-07-11 15:58 ` [PATCH 4/4] staging:iio:imu:adis16400 remove now unused headers Jonathan Cameron @ 2011-07-13 11:04 ` Hennerich, Michael 0 siblings, 0 replies; 11+ messages in thread From: Hennerich, Michael @ 2011-07-13 11:04 UTC (permalink / raw) To: Jonathan Cameron, linux-iio; +Cc: Device-drivers-devel, manuel.stahl Jonathan Cameron wrote on 2011-07-11: > These should really have gone away with the code that needed them. > > Signed-off-by: Jonathan Cameron <jic23@cam.ac.uk> Acked-by: Michael Hennerich <michael.hennerich@analog.com> > --- > drivers/staging/iio/imu/adis16400_ring.c | 7 ------- > drivers/staging/iio/imu/adis16400_trigger.c | 6 ------ > 2 files changed, 0 insertions(+), 13 deletions(-) > diff --git a/drivers/staging/iio/imu/adis16400_ring.c > b/drivers/staging/iio/imu/adis16400_ring.c index d07c86b..ef38477 100644 > --- a/drivers/staging/iio/imu/adis16400_ring.c +++ > b/drivers/staging/iio/imu/adis16400_ring.c @@ -1,18 +1,11 @@ > #include <linux/interrupt.h> > -#include <linux/irq.h> > -#include <linux/gpio.h> > -#include <linux/workqueue.h> > #include <linux/mutex.h> -#include <linux/device.h> #include > <linux/kernel.h> #include <linux/spi/spi.h> #include <linux/slab.h> > -#include <linux/sysfs.h> > -#include <linux/list.h> > #include <linux/bitops.h> > > #include "../iio.h" -#include "../sysfs.h" #include "../ring_sw.h" > #include "../trigger.h" #include "adis16400.h" > diff --git a/drivers/staging/iio/imu/adis16400_trigger.c > b/drivers/staging/iio/imu/adis16400_trigger.c index 4e1f295..3860d92 > 100644 --- a/drivers/staging/iio/imu/adis16400_trigger.c +++ > b/drivers/staging/iio/imu/adis16400_trigger.c @@ -1,14 +1,8 @@ > #include <linux/interrupt.h> > -#include <linux/irq.h> > -#include <linux/mutex.h> > -#include <linux/device.h> > #include <linux/kernel.h> > -#include <linux/sysfs.h> > -#include <linux/list.h> > #include <linux/spi/spi.h> > > #include "../iio.h" -#include "../sysfs.h" #include "../trigger.h" > #include "adis16400.h" Greetings, Michael -- Analog Devices GmbH Wilhelm-Wagenfeld-Str. 6 80807 Muenchen Sitz der Gesellschaft: Muenchen; Registergericht: Muenchen HRB 40368; Gesch= aeftsfuehrer:Dr.Carsten Suckrow, Thomas Wessel, William A. Martin, Margaret= Seif ^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2011-09-26 6:56 UTC | newest] Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2011-07-11 15:58 [PATCH 0/4] ADIS16400 one big fix and some updates Jonathan Cameron 2011-07-11 15:58 ` [PATCH 1/4] staging:iio:imu fix missing register table index for some channels Jonathan Cameron 2011-07-13 11:03 ` Hennerich, Michael 2011-07-11 15:58 ` [PATCH 2/4] staging:iio:imu:adis16344 support Jonathan Cameron 2011-07-13 11:03 ` Hennerich, Michael 2011-09-23 14:45 ` Jonathan Cameron 2011-09-26 6:56 ` Hennerich, Michael 2011-07-11 15:58 ` [PATCH 3/4] staging:iio:imu:adis16400: use strtobool for reset sysfs and don't assign unused tx members Jonathan Cameron 2011-07-13 11:03 ` Hennerich, Michael 2011-07-11 15:58 ` [PATCH 4/4] staging:iio:imu:adis16400 remove now unused headers Jonathan Cameron 2011-07-13 11:04 ` Hennerich, Michael
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.