* [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
* [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
* [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
* [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 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
* 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 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
* 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
* 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
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.