linux-iio.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 1/2] iio:ad5064: Make sure ad5064_i2c_write() returns 0 on success
@ 2015-10-13 16:15 Lars-Peter Clausen
  2015-10-13 16:15 ` [PATCH 2/2] iio: ad5064: Fix ad5629/ad5669 shift Lars-Peter Clausen
  2015-10-13 16:23 ` [PATCH 1/2] iio:ad5064: Make sure ad5064_i2c_write() returns 0 on success Lars-Peter Clausen
  0 siblings, 2 replies; 5+ messages in thread
From: Lars-Peter Clausen @ 2015-10-13 16:15 UTC (permalink / raw)
  To: Jonathan Cameron, Hartmut Knaack, Peter Meerwald
  Cc: Marc Andre, linux-iio, Michael Hennerich

From: Michael Hennerich <michael.hennerich@analog.com>

i2c_master_send() returns the number of bytes transferred on success while
the ad5064 driver expects that the write() callback returns 0 on success.
Fix that by translating any non negative return value of i2c_master_send()
to 0.

Fixes: commit 6a17a0768f77 ("iio:dac:ad5064: Add support for the ad5629r and ad5669r")
Signed-off-by: Michael Hennerich <michael.hennerich@analog.com>
---
 drivers/iio/dac/ad5064.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/drivers/iio/dac/ad5064.c b/drivers/iio/dac/ad5064.c
index c067e68..7e7ebf3 100644
--- a/drivers/iio/dac/ad5064.c
+++ b/drivers/iio/dac/ad5064.c
@@ -598,10 +598,16 @@ static int ad5064_i2c_write(struct ad5064_state *st, unsigned int cmd,
 	unsigned int addr, unsigned int val)
 {
 	struct i2c_client *i2c = to_i2c_client(st->dev);
+	int ret;
 
 	st->data.i2c[0] = (cmd << 4) | addr;
 	put_unaligned_be16(val, &st->data.i2c[1]);
-	return i2c_master_send(i2c, st->data.i2c, 3);
+
+	ret = i2c_master_send(i2c, st->data.i2c, 3);
+	if (ret < 0)
+		return ret;
+
+	return 0;
 }
 
 static int ad5064_i2c_probe(struct i2c_client *i2c,
-- 
2.1.4


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [PATCH 2/2] iio: ad5064: Fix ad5629/ad5669 shift
  2015-10-13 16:15 [PATCH 1/2] iio:ad5064: Make sure ad5064_i2c_write() returns 0 on success Lars-Peter Clausen
@ 2015-10-13 16:15 ` Lars-Peter Clausen
  2015-10-25 12:31   ` Jonathan Cameron
  2015-10-13 16:23 ` [PATCH 1/2] iio:ad5064: Make sure ad5064_i2c_write() returns 0 on success Lars-Peter Clausen
  1 sibling, 1 reply; 5+ messages in thread
From: Lars-Peter Clausen @ 2015-10-13 16:15 UTC (permalink / raw)
  To: Jonathan Cameron, Hartmut Knaack, Peter Meerwald
  Cc: Marc Andre, linux-iio, Lars-Peter Clausen

The ad5629/ad5669 are the I2C variant of the ad5628/ad5668, which has a SPI
interface. They are mostly identical with the exception that the shift
factor is different. Currently the driver does not take care of this
difference which leads to incorrect DAC output values.

Fix this by introducing a custom channel spec for the ad5629/ad5669 with
the correct shift factor.

Fixes: commit 6a17a0768f77 ("iio:dac:ad5064: Add support for the ad5629r and ad5669r")
Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
---
 drivers/iio/dac/ad5064.c | 83 +++++++++++++++++++++++++++++++++---------------
 1 file changed, 57 insertions(+), 26 deletions(-)

diff --git a/drivers/iio/dac/ad5064.c b/drivers/iio/dac/ad5064.c
index 7e7ebf3..978f130 100644
--- a/drivers/iio/dac/ad5064.c
+++ b/drivers/iio/dac/ad5064.c
@@ -113,12 +113,16 @@ enum ad5064_type {
 	ID_AD5065,
 	ID_AD5628_1,
 	ID_AD5628_2,
+	ID_AD5629_1,
+	ID_AD5629_2,
 	ID_AD5648_1,
 	ID_AD5648_2,
 	ID_AD5666_1,
 	ID_AD5666_2,
 	ID_AD5668_1,
 	ID_AD5668_2,
+	ID_AD5669_1,
+	ID_AD5669_2,
 };
 
 static int ad5064_write(struct ad5064_state *st, unsigned int cmd,
@@ -291,7 +295,7 @@ static const struct iio_chan_spec_ext_info ad5064_ext_info[] = {
 	{ },
 };
 
-#define AD5064_CHANNEL(chan, addr, bits) {			\
+#define AD5064_CHANNEL(chan, addr, bits, _shift) {		\
 	.type = IIO_VOLTAGE,					\
 	.indexed = 1,						\
 	.output = 1,						\
@@ -303,36 +307,39 @@ static const struct iio_chan_spec_ext_info ad5064_ext_info[] = {
 		.sign = 'u',					\
 		.realbits = (bits),				\
 		.storagebits = 16,				\
-		.shift = 20 - bits,				\
+		.shift = (_shift),				\
 	},							\
 	.ext_info = ad5064_ext_info,				\
 }
 
-#define DECLARE_AD5064_CHANNELS(name, bits) \
+#define DECLARE_AD5064_CHANNELS(name, bits, shift) \
 const struct iio_chan_spec name[] = { \
-	AD5064_CHANNEL(0, 0, bits), \
-	AD5064_CHANNEL(1, 1, bits), \
-	AD5064_CHANNEL(2, 2, bits), \
-	AD5064_CHANNEL(3, 3, bits), \
-	AD5064_CHANNEL(4, 4, bits), \
-	AD5064_CHANNEL(5, 5, bits), \
-	AD5064_CHANNEL(6, 6, bits), \
-	AD5064_CHANNEL(7, 7, bits), \
+	AD5064_CHANNEL(0, 0, bits, shift), \
+	AD5064_CHANNEL(1, 1, bits, shift), \
+	AD5064_CHANNEL(2, 2, bits, shift), \
+	AD5064_CHANNEL(3, 3, bits, shift), \
+	AD5064_CHANNEL(4, 4, bits, shift), \
+	AD5064_CHANNEL(5, 5, bits, shift), \
+	AD5064_CHANNEL(6, 6, bits, shift), \
+	AD5064_CHANNEL(7, 7, bits, shift), \
 }
 
-#define DECLARE_AD5065_CHANNELS(name, bits) \
+#define DECLARE_AD5065_CHANNELS(name, bits, shift) \
 const struct iio_chan_spec name[] = { \
-	AD5064_CHANNEL(0, 0, bits), \
-	AD5064_CHANNEL(1, 3, bits), \
+	AD5064_CHANNEL(0, 0, bits, shift), \
+	AD5064_CHANNEL(1, 3, bits, shift), \
 }
 
-static DECLARE_AD5064_CHANNELS(ad5024_channels, 12);
-static DECLARE_AD5064_CHANNELS(ad5044_channels, 14);
-static DECLARE_AD5064_CHANNELS(ad5064_channels, 16);
+static DECLARE_AD5064_CHANNELS(ad5024_channels, 12, 8);
+static DECLARE_AD5064_CHANNELS(ad5044_channels, 14, 6);
+static DECLARE_AD5064_CHANNELS(ad5064_channels, 16, 4);
 
-static DECLARE_AD5065_CHANNELS(ad5025_channels, 12);
-static DECLARE_AD5065_CHANNELS(ad5045_channels, 14);
-static DECLARE_AD5065_CHANNELS(ad5065_channels, 16);
+static DECLARE_AD5065_CHANNELS(ad5025_channels, 12, 8);
+static DECLARE_AD5065_CHANNELS(ad5045_channels, 14, 6);
+static DECLARE_AD5065_CHANNELS(ad5065_channels, 16, 4);
+
+static DECLARE_AD5064_CHANNELS(ad5629_channels, 12, 4);
+static DECLARE_AD5064_CHANNELS(ad5669_channels, 16, 0);
 
 static const struct ad5064_chip_info ad5064_chip_info_tbl[] = {
 	[ID_AD5024] = {
@@ -382,6 +389,18 @@ static const struct ad5064_chip_info ad5064_chip_info_tbl[] = {
 		.channels = ad5024_channels,
 		.num_channels = 8,
 	},
+	[ID_AD5629_1] = {
+		.shared_vref = true,
+		.internal_vref = 2500000,
+		.channels = ad5629_channels,
+		.num_channels = 8,
+	},
+	[ID_AD5629_2] = {
+		.shared_vref = true,
+		.internal_vref = 5000000,
+		.channels = ad5629_channels,
+		.num_channels = 8,
+	},
 	[ID_AD5648_1] = {
 		.shared_vref = true,
 		.internal_vref = 2500000,
@@ -418,6 +437,18 @@ static const struct ad5064_chip_info ad5064_chip_info_tbl[] = {
 		.channels = ad5064_channels,
 		.num_channels = 8,
 	},
+	[ID_AD5669_1] = {
+		.shared_vref = true,
+		.internal_vref = 2500000,
+		.channels = ad5669_channels,
+		.num_channels = 8,
+	},
+	[ID_AD5669_2] = {
+		.shared_vref = true,
+		.internal_vref = 5000000,
+		.channels = ad5669_channels,
+		.num_channels = 8,
+	},
 };
 
 static inline unsigned int ad5064_num_vref(struct ad5064_state *st)
@@ -623,12 +654,12 @@ static int ad5064_i2c_remove(struct i2c_client *i2c)
 }
 
 static const struct i2c_device_id ad5064_i2c_ids[] = {
-	{"ad5629-1", ID_AD5628_1},
-	{"ad5629-2", ID_AD5628_2},
-	{"ad5629-3", ID_AD5628_2}, /* similar enough to ad5629-2 */
-	{"ad5669-1", ID_AD5668_1},
-	{"ad5669-2", ID_AD5668_2},
-	{"ad5669-3", ID_AD5668_2}, /* similar enough to ad5669-2 */
+	{"ad5629-1", ID_AD5629_1},
+	{"ad5629-2", ID_AD5629_2},
+	{"ad5629-3", ID_AD5629_2}, /* similar enough to ad5629-2 */
+	{"ad5669-1", ID_AD5669_1},
+	{"ad5669-2", ID_AD5669_2},
+	{"ad5669-3", ID_AD5669_2}, /* similar enough to ad5669-2 */
 	{}
 };
 MODULE_DEVICE_TABLE(i2c, ad5064_i2c_ids);
-- 
2.1.4


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH 1/2] iio:ad5064: Make sure ad5064_i2c_write() returns 0 on success
  2015-10-13 16:15 [PATCH 1/2] iio:ad5064: Make sure ad5064_i2c_write() returns 0 on success Lars-Peter Clausen
  2015-10-13 16:15 ` [PATCH 2/2] iio: ad5064: Fix ad5629/ad5669 shift Lars-Peter Clausen
@ 2015-10-13 16:23 ` Lars-Peter Clausen
  2015-10-25 12:31   ` Jonathan Cameron
  1 sibling, 1 reply; 5+ messages in thread
From: Lars-Peter Clausen @ 2015-10-13 16:23 UTC (permalink / raw)
  To: Jonathan Cameron, Hartmut Knaack, Peter Meerwald
  Cc: Marc Andre, linux-iio, Michael Hennerich

On 10/13/2015 06:15 PM, Lars-Peter Clausen wrote:
> From: Michael Hennerich <michael.hennerich@analog.com>
> 
> i2c_master_send() returns the number of bytes transferred on success while
> the ad5064 driver expects that the write() callback returns 0 on success.
> Fix that by translating any non negative return value of i2c_master_send()
> to 0.
> 
> Fixes: commit 6a17a0768f77 ("iio:dac:ad5064: Add support for the ad5629r and ad5669r")
> Signed-off-by: Michael Hennerich <michael.hennerich@analog.com>

And obviously

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>

Sorry for that.

> ---
>  drivers/iio/dac/ad5064.c | 8 +++++++-
>  1 file changed, 7 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/iio/dac/ad5064.c b/drivers/iio/dac/ad5064.c
> index c067e68..7e7ebf3 100644
> --- a/drivers/iio/dac/ad5064.c
> +++ b/drivers/iio/dac/ad5064.c
> @@ -598,10 +598,16 @@ static int ad5064_i2c_write(struct ad5064_state *st, unsigned int cmd,
>  	unsigned int addr, unsigned int val)
>  {
>  	struct i2c_client *i2c = to_i2c_client(st->dev);
> +	int ret;
>  
>  	st->data.i2c[0] = (cmd << 4) | addr;
>  	put_unaligned_be16(val, &st->data.i2c[1]);
> -	return i2c_master_send(i2c, st->data.i2c, 3);
> +
> +	ret = i2c_master_send(i2c, st->data.i2c, 3);
> +	if (ret < 0)
> +		return ret;
> +
> +	return 0;
>  }
>  
>  static int ad5064_i2c_probe(struct i2c_client *i2c,
> 


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH 2/2] iio: ad5064: Fix ad5629/ad5669 shift
  2015-10-13 16:15 ` [PATCH 2/2] iio: ad5064: Fix ad5629/ad5669 shift Lars-Peter Clausen
@ 2015-10-25 12:31   ` Jonathan Cameron
  0 siblings, 0 replies; 5+ messages in thread
From: Jonathan Cameron @ 2015-10-25 12:31 UTC (permalink / raw)
  To: Lars-Peter Clausen, Hartmut Knaack, Peter Meerwald; +Cc: Marc Andre, linux-iio

On 13/10/15 17:15, Lars-Peter Clausen wrote:
> The ad5629/ad5669 are the I2C variant of the ad5628/ad5668, which has a SPI
> interface. They are mostly identical with the exception that the shift
> factor is different. Currently the driver does not take care of this
> difference which leads to incorrect DAC output values.
> 
> Fix this by introducing a custom channel spec for the ad5629/ad5669 with
> the correct shift factor.
> 
> Fixes: commit 6a17a0768f77 ("iio:dac:ad5064: Add support for the ad5629r and ad5669r")
> Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Applied to fixes-togreg and marked for stable.  Will be post rc1 now.
> ---
>  drivers/iio/dac/ad5064.c | 83 +++++++++++++++++++++++++++++++++---------------
>  1 file changed, 57 insertions(+), 26 deletions(-)
> 
> diff --git a/drivers/iio/dac/ad5064.c b/drivers/iio/dac/ad5064.c
> index 7e7ebf3..978f130 100644
> --- a/drivers/iio/dac/ad5064.c
> +++ b/drivers/iio/dac/ad5064.c
> @@ -113,12 +113,16 @@ enum ad5064_type {
>  	ID_AD5065,
>  	ID_AD5628_1,
>  	ID_AD5628_2,
> +	ID_AD5629_1,
> +	ID_AD5629_2,
>  	ID_AD5648_1,
>  	ID_AD5648_2,
>  	ID_AD5666_1,
>  	ID_AD5666_2,
>  	ID_AD5668_1,
>  	ID_AD5668_2,
> +	ID_AD5669_1,
> +	ID_AD5669_2,
>  };
>  
>  static int ad5064_write(struct ad5064_state *st, unsigned int cmd,
> @@ -291,7 +295,7 @@ static const struct iio_chan_spec_ext_info ad5064_ext_info[] = {
>  	{ },
>  };
>  
> -#define AD5064_CHANNEL(chan, addr, bits) {			\
> +#define AD5064_CHANNEL(chan, addr, bits, _shift) {		\
>  	.type = IIO_VOLTAGE,					\
>  	.indexed = 1,						\
>  	.output = 1,						\
> @@ -303,36 +307,39 @@ static const struct iio_chan_spec_ext_info ad5064_ext_info[] = {
>  		.sign = 'u',					\
>  		.realbits = (bits),				\
>  		.storagebits = 16,				\
> -		.shift = 20 - bits,				\
> +		.shift = (_shift),				\
>  	},							\
>  	.ext_info = ad5064_ext_info,				\
>  }
>  
> -#define DECLARE_AD5064_CHANNELS(name, bits) \
> +#define DECLARE_AD5064_CHANNELS(name, bits, shift) \
>  const struct iio_chan_spec name[] = { \
> -	AD5064_CHANNEL(0, 0, bits), \
> -	AD5064_CHANNEL(1, 1, bits), \
> -	AD5064_CHANNEL(2, 2, bits), \
> -	AD5064_CHANNEL(3, 3, bits), \
> -	AD5064_CHANNEL(4, 4, bits), \
> -	AD5064_CHANNEL(5, 5, bits), \
> -	AD5064_CHANNEL(6, 6, bits), \
> -	AD5064_CHANNEL(7, 7, bits), \
> +	AD5064_CHANNEL(0, 0, bits, shift), \
> +	AD5064_CHANNEL(1, 1, bits, shift), \
> +	AD5064_CHANNEL(2, 2, bits, shift), \
> +	AD5064_CHANNEL(3, 3, bits, shift), \
> +	AD5064_CHANNEL(4, 4, bits, shift), \
> +	AD5064_CHANNEL(5, 5, bits, shift), \
> +	AD5064_CHANNEL(6, 6, bits, shift), \
> +	AD5064_CHANNEL(7, 7, bits, shift), \
>  }
>  
> -#define DECLARE_AD5065_CHANNELS(name, bits) \
> +#define DECLARE_AD5065_CHANNELS(name, bits, shift) \
>  const struct iio_chan_spec name[] = { \
> -	AD5064_CHANNEL(0, 0, bits), \
> -	AD5064_CHANNEL(1, 3, bits), \
> +	AD5064_CHANNEL(0, 0, bits, shift), \
> +	AD5064_CHANNEL(1, 3, bits, shift), \
>  }
>  
> -static DECLARE_AD5064_CHANNELS(ad5024_channels, 12);
> -static DECLARE_AD5064_CHANNELS(ad5044_channels, 14);
> -static DECLARE_AD5064_CHANNELS(ad5064_channels, 16);
> +static DECLARE_AD5064_CHANNELS(ad5024_channels, 12, 8);
> +static DECLARE_AD5064_CHANNELS(ad5044_channels, 14, 6);
> +static DECLARE_AD5064_CHANNELS(ad5064_channels, 16, 4);
>  
> -static DECLARE_AD5065_CHANNELS(ad5025_channels, 12);
> -static DECLARE_AD5065_CHANNELS(ad5045_channels, 14);
> -static DECLARE_AD5065_CHANNELS(ad5065_channels, 16);
> +static DECLARE_AD5065_CHANNELS(ad5025_channels, 12, 8);
> +static DECLARE_AD5065_CHANNELS(ad5045_channels, 14, 6);
> +static DECLARE_AD5065_CHANNELS(ad5065_channels, 16, 4);
> +
> +static DECLARE_AD5064_CHANNELS(ad5629_channels, 12, 4);
> +static DECLARE_AD5064_CHANNELS(ad5669_channels, 16, 0);
>  
>  static const struct ad5064_chip_info ad5064_chip_info_tbl[] = {
>  	[ID_AD5024] = {
> @@ -382,6 +389,18 @@ static const struct ad5064_chip_info ad5064_chip_info_tbl[] = {
>  		.channels = ad5024_channels,
>  		.num_channels = 8,
>  	},
> +	[ID_AD5629_1] = {
> +		.shared_vref = true,
> +		.internal_vref = 2500000,
> +		.channels = ad5629_channels,
> +		.num_channels = 8,
> +	},
> +	[ID_AD5629_2] = {
> +		.shared_vref = true,
> +		.internal_vref = 5000000,
> +		.channels = ad5629_channels,
> +		.num_channels = 8,
> +	},
>  	[ID_AD5648_1] = {
>  		.shared_vref = true,
>  		.internal_vref = 2500000,
> @@ -418,6 +437,18 @@ static const struct ad5064_chip_info ad5064_chip_info_tbl[] = {
>  		.channels = ad5064_channels,
>  		.num_channels = 8,
>  	},
> +	[ID_AD5669_1] = {
> +		.shared_vref = true,
> +		.internal_vref = 2500000,
> +		.channels = ad5669_channels,
> +		.num_channels = 8,
> +	},
> +	[ID_AD5669_2] = {
> +		.shared_vref = true,
> +		.internal_vref = 5000000,
> +		.channels = ad5669_channels,
> +		.num_channels = 8,
> +	},
>  };
>  
>  static inline unsigned int ad5064_num_vref(struct ad5064_state *st)
> @@ -623,12 +654,12 @@ static int ad5064_i2c_remove(struct i2c_client *i2c)
>  }
>  
>  static const struct i2c_device_id ad5064_i2c_ids[] = {
> -	{"ad5629-1", ID_AD5628_1},
> -	{"ad5629-2", ID_AD5628_2},
> -	{"ad5629-3", ID_AD5628_2}, /* similar enough to ad5629-2 */
> -	{"ad5669-1", ID_AD5668_1},
> -	{"ad5669-2", ID_AD5668_2},
> -	{"ad5669-3", ID_AD5668_2}, /* similar enough to ad5669-2 */
> +	{"ad5629-1", ID_AD5629_1},
> +	{"ad5629-2", ID_AD5629_2},
> +	{"ad5629-3", ID_AD5629_2}, /* similar enough to ad5629-2 */
> +	{"ad5669-1", ID_AD5669_1},
> +	{"ad5669-2", ID_AD5669_2},
> +	{"ad5669-3", ID_AD5669_2}, /* similar enough to ad5669-2 */
>  	{}
>  };
>  MODULE_DEVICE_TABLE(i2c, ad5064_i2c_ids);
> 


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH 1/2] iio:ad5064: Make sure ad5064_i2c_write() returns 0 on success
  2015-10-13 16:23 ` [PATCH 1/2] iio:ad5064: Make sure ad5064_i2c_write() returns 0 on success Lars-Peter Clausen
@ 2015-10-25 12:31   ` Jonathan Cameron
  0 siblings, 0 replies; 5+ messages in thread
From: Jonathan Cameron @ 2015-10-25 12:31 UTC (permalink / raw)
  To: Lars-Peter Clausen, Hartmut Knaack, Peter Meerwald
  Cc: Marc Andre, linux-iio, Michael Hennerich

On 13/10/15 17:23, Lars-Peter Clausen wrote:
> On 10/13/2015 06:15 PM, Lars-Peter Clausen wrote:
>> From: Michael Hennerich <michael.hennerich@analog.com>
>>
>> i2c_master_send() returns the number of bytes transferred on success while
>> the ad5064 driver expects that the write() callback returns 0 on success.
>> Fix that by translating any non negative return value of i2c_master_send()
>> to 0.
>>
>> Fixes: commit 6a17a0768f77 ("iio:dac:ad5064: Add support for the ad5629r and ad5669r")
>> Signed-off-by: Michael Hennerich <michael.hennerich@analog.com>
> 
> And obviously
> 
> Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Applied to fixes-togreg.
> 
> Sorry for that.
> 
>> ---
>>  drivers/iio/dac/ad5064.c | 8 +++++++-
>>  1 file changed, 7 insertions(+), 1 deletion(-)
>>
>> diff --git a/drivers/iio/dac/ad5064.c b/drivers/iio/dac/ad5064.c
>> index c067e68..7e7ebf3 100644
>> --- a/drivers/iio/dac/ad5064.c
>> +++ b/drivers/iio/dac/ad5064.c
>> @@ -598,10 +598,16 @@ static int ad5064_i2c_write(struct ad5064_state *st, unsigned int cmd,
>>  	unsigned int addr, unsigned int val)
>>  {
>>  	struct i2c_client *i2c = to_i2c_client(st->dev);
>> +	int ret;
>>  
>>  	st->data.i2c[0] = (cmd << 4) | addr;
>>  	put_unaligned_be16(val, &st->data.i2c[1]);
>> -	return i2c_master_send(i2c, st->data.i2c, 3);
>> +
>> +	ret = i2c_master_send(i2c, st->data.i2c, 3);
>> +	if (ret < 0)
>> +		return ret;
>> +
>> +	return 0;
>>  }
>>  
>>  static int ad5064_i2c_probe(struct i2c_client *i2c,
>>
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-iio" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 


^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2015-10-25 12:31 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-10-13 16:15 [PATCH 1/2] iio:ad5064: Make sure ad5064_i2c_write() returns 0 on success Lars-Peter Clausen
2015-10-13 16:15 ` [PATCH 2/2] iio: ad5064: Fix ad5629/ad5669 shift Lars-Peter Clausen
2015-10-25 12:31   ` Jonathan Cameron
2015-10-13 16:23 ` [PATCH 1/2] iio:ad5064: Make sure ad5064_i2c_write() returns 0 on success Lars-Peter Clausen
2015-10-25 12:31   ` Jonathan Cameron

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).