All of lore.kernel.org
 help / color / mirror / Atom feed
* [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.