linux-iio.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] staging iio adt7410: some improvements
@ 2012-07-03  9:21 Sascha Hauer
  2012-07-03  9:21 ` [PATCH 1/3] staging iio adt7410: sysfs store function must return length Sascha Hauer
                   ` (2 more replies)
  0 siblings, 3 replies; 12+ messages in thread
From: Sascha Hauer @ 2012-07-03  9:21 UTC (permalink / raw)
  To: linux-iio; +Cc: Jonathan Cameron, Sonic Zhang

Hi All,

The following contains some fixes/improvements to the adt7410
digital temperature sensor.

Sascha

----------------------------------------------------------------
Sascha Hauer (3):
      staging iio adt7410: sysfs store function must return length
      staging iio adt7410: fix 13bit mode
      staging iio adt7410: make 16bit mode default

 drivers/staging/iio/adc/adt7410.c |   55 ++++++++++++++++---------------------
 1 file changed, 24 insertions(+), 31 deletions(-)

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

* [PATCH 1/3] staging iio adt7410: sysfs store function must return length
  2012-07-03  9:21 [PATCH] staging iio adt7410: some improvements Sascha Hauer
@ 2012-07-03  9:21 ` Sascha Hauer
  2012-07-03 10:41   ` Zhang, Sonic
  2012-07-03  9:21 ` [PATCH 2/3] staging iio adt7410: fix 13bit mode Sascha Hauer
  2012-07-03  9:21 ` [PATCH 3/3] staging iio adt7410: make 16bit mode default Sascha Hauer
  2 siblings, 1 reply; 12+ messages in thread
From: Sascha Hauer @ 2012-07-03  9:21 UTC (permalink / raw)
  To: linux-iio; +Cc: Jonathan Cameron, Sonic Zhang, Sascha Hauer

Otherwise a write to the resolution entry never returns.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
---
 drivers/staging/iio/adc/adt7410.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/staging/iio/adc/adt7410.c b/drivers/staging/iio/adc/adt7410.c
index d7d9ad9..fa54a40 100644
--- a/drivers/staging/iio/adc/adt7410.c
+++ b/drivers/staging/iio/adc/adt7410.c
@@ -257,7 +257,7 @@ static ssize_t adt7410_store_resolution(struct device *dev,
 
 	chip->config = config;
 
-	return ret;
+	return len;
 }
 
 static IIO_DEVICE_ATTR(resolution, S_IRUGO | S_IWUSR,
-- 
1.7.10

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

* [PATCH 2/3] staging iio adt7410: fix 13bit mode
  2012-07-03  9:21 [PATCH] staging iio adt7410: some improvements Sascha Hauer
  2012-07-03  9:21 ` [PATCH 1/3] staging iio adt7410: sysfs store function must return length Sascha Hauer
@ 2012-07-03  9:21 ` Sascha Hauer
  2012-07-03 10:41   ` Zhang, Sonic
  2012-07-03  9:21 ` [PATCH 3/3] staging iio adt7410: make 16bit mode default Sascha Hauer
  2 siblings, 1 reply; 12+ messages in thread
From: Sascha Hauer @ 2012-07-03  9:21 UTC (permalink / raw)
  To: linux-iio; +Cc: Jonathan Cameron, Sonic Zhang, Sascha Hauer

The driver assumes that in 13bit mode the 16bit value has
to be shifted to the right by 3 bits. This is not true, in
both 16bit and 13bit mode the MSB is at the same position.
Currently the driver returns a temperature of 194 degrees
Celsius in 13bit mode and 24 degrees Celsius in 16bit mode.
Fix this by using the same algorithm for 16bit and 13bit
mode and by just masking out the lower three bits in 13bit
mode.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
---
 drivers/staging/iio/adc/adt7410.c |   29 ++++++++++-------------------
 1 file changed, 10 insertions(+), 19 deletions(-)

diff --git a/drivers/staging/iio/adc/adt7410.c b/drivers/staging/iio/adc/adt7410.c
index fa54a40..f9188e5 100644
--- a/drivers/staging/iio/adc/adt7410.c
+++ b/drivers/staging/iio/adc/adt7410.c
@@ -293,26 +293,17 @@ static ssize_t adt7410_convert_temperature(struct adt7410_chip_info *chip,
 {
 	char sign = ' ';
 
-	if (chip->config & ADT7410_RESOLUTION) {
-		if (data & ADT7410_T16_VALUE_SIGN) {
-			/* convert supplement to positive value */
-			data = (u16)((ADT7410_T16_VALUE_SIGN << 1) - (u32)data);
-			sign = '-';
-		}
-		return sprintf(buf, "%c%d.%.7d\n", sign,
-				(data >> ADT7410_T16_VALUE_FLOAT_OFFSET),
-				(data & ADT7410_T16_VALUE_FLOAT_MASK) * 78125);
-	} else {
-		if (data & ADT7410_T13_VALUE_SIGN) {
-			/* convert supplement to positive value */
-			data >>= ADT7410_T13_VALUE_OFFSET;
-			data = (ADT7410_T13_VALUE_SIGN << 1) - data;
-			sign = '-';
-		}
-		return sprintf(buf, "%c%d.%.4d\n", sign,
-				(data >> ADT7410_T13_VALUE_FLOAT_OFFSET),
-				(data & ADT7410_T13_VALUE_FLOAT_MASK) * 625);
+	if (!(chip->config & ADT7410_RESOLUTION))
+		data &= ~0x7;
+
+	if (data & ADT7410_T16_VALUE_SIGN) {
+		/* convert supplement to positive value */
+		data = (u16)((ADT7410_T16_VALUE_SIGN << 1) - (u32)data);
+		sign = '-';
 	}
+	return sprintf(buf, "%c%d.%.7d\n", sign,
+			(data >> ADT7410_T16_VALUE_FLOAT_OFFSET),
+			(data & ADT7410_T16_VALUE_FLOAT_MASK) * 78125);
 }
 
 static ssize_t adt7410_show_value(struct device *dev,
-- 
1.7.10

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

* [PATCH 3/3] staging iio adt7410: make 16bit mode default
  2012-07-03  9:21 [PATCH] staging iio adt7410: some improvements Sascha Hauer
  2012-07-03  9:21 ` [PATCH 1/3] staging iio adt7410: sysfs store function must return length Sascha Hauer
  2012-07-03  9:21 ` [PATCH 2/3] staging iio adt7410: fix 13bit mode Sascha Hauer
@ 2012-07-03  9:21 ` Sascha Hauer
  2012-07-03 10:42   ` Zhang, Sonic
  2 siblings, 1 reply; 12+ messages in thread
From: Sascha Hauer @ 2012-07-03  9:21 UTC (permalink / raw)
  To: linux-iio; +Cc: Jonathan Cameron, Sonic Zhang, Sascha Hauer

In 13bit mode the lower three bits of the adc value contain
flags. The driver does not use these flags at all, so make 16bit
mode the default.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
---
 drivers/staging/iio/adc/adt7410.c |   24 +++++++++++++-----------
 1 file changed, 13 insertions(+), 11 deletions(-)

diff --git a/drivers/staging/iio/adc/adt7410.c b/drivers/staging/iio/adc/adt7410.c
index f9188e5..f8dd567 100644
--- a/drivers/staging/iio/adc/adt7410.c
+++ b/drivers/staging/iio/adc/adt7410.c
@@ -756,13 +756,15 @@ static int __devinit adt7410_probe(struct i2c_client *client,
 			goto error_unreg_ct_irq;
 	}
 
-	if (client->irq && adt7410_platform_data[0]) {
+	ret = adt7410_i2c_read_byte(chip, ADT7410_CONFIG, &chip->config);
+	if (ret) {
+		ret = -EIO;
+		goto error_unreg_int_irq;
+	}
 
-		ret = adt7410_i2c_read_byte(chip, ADT7410_CONFIG, &chip->config);
-		if (ret) {
-			ret = -EIO;
-			goto error_unreg_int_irq;
-		}
+	chip->config |= ADT7410_RESOLUTION;
+
+	if (client->irq && adt7410_platform_data[0]) {
 
 		/* set irq polarity low level */
 		chip->config &= ~ADT7410_CT_POLARITY;
@@ -771,12 +773,12 @@ static int __devinit adt7410_probe(struct i2c_client *client,
 			chip->config |= ADT7410_INT_POLARITY;
 		else
 			chip->config &= ~ADT7410_INT_POLARITY;
+	}
 
-		ret = adt7410_i2c_write_byte(chip, ADT7410_CONFIG, chip->config);
-		if (ret) {
-			ret = -EIO;
-			goto error_unreg_int_irq;
-		}
+	ret = adt7410_i2c_write_byte(chip, ADT7410_CONFIG, chip->config);
+	if (ret) {
+		ret = -EIO;
+		goto error_unreg_int_irq;
 	}
 	ret = iio_device_register(indio_dev);
 	if (ret)
-- 
1.7.10

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

* RE: [PATCH 2/3] staging iio adt7410: fix 13bit mode
  2012-07-03  9:21 ` [PATCH 2/3] staging iio adt7410: fix 13bit mode Sascha Hauer
@ 2012-07-03 10:41   ` Zhang, Sonic
  2012-07-03 20:12     ` Jonathan Cameron
  0 siblings, 1 reply; 12+ messages in thread
From: Zhang, Sonic @ 2012-07-03 10:41 UTC (permalink / raw)
  To: Sascha Hauer, linux-iio@vger.kernel.org; +Cc: Jonathan Cameron

Acked-by: Sonic Zhang <sonic.zhang@analog.com>

>-----Original Message-----
>From: Sascha Hauer [mailto:s.hauer@pengutronix.de]
>Sent: Tuesday, July 03, 2012 5:21 PM
>To: linux-iio@vger.kernel.org
>Cc: Jonathan Cameron; Zhang, Sonic; Sascha Hauer
>Subject: [PATCH 2/3] staging iio adt7410: fix 13bit mode
>
>The driver assumes that in 13bit mode the 16bit value has
>to be shifted to the right by 3 bits. This is not true, in
>both 16bit and 13bit mode the MSB is at the same position.
>Currently the driver returns a temperature of 194 degrees
>Celsius in 13bit mode and 24 degrees Celsius in 16bit mode.
>Fix this by using the same algorithm for 16bit and 13bit
>mode and by just masking out the lower three bits in 13bit
>mode.
>
>Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
>---
> drivers/staging/iio/adc/adt7410.c |   29 ++++++++++-------------------
> 1 file changed, 10 insertions(+), 19 deletions(-)
>
>diff --git a/drivers/staging/iio/adc/adt7410.c b/drivers/staging/iio/adc/a=
dt7410.c
>index fa54a40..f9188e5 100644
>--- a/drivers/staging/iio/adc/adt7410.c
>+++ b/drivers/staging/iio/adc/adt7410.c
>@@ -293,26 +293,17 @@ static ssize_t adt7410_convert_temperature(struct
>adt7410_chip_info *chip,
> {
>       char sign =3D ' ';
>
>-      if (chip->config & ADT7410_RESOLUTION) {
>-              if (data & ADT7410_T16_VALUE_SIGN) {
>-                      /* convert supplement to positive value */
>-                      data =3D (u16)((ADT7410_T16_VALUE_SIGN << 1) -
>(u32)data);
>-                      sign =3D '-';
>-              }
>-              return sprintf(buf, "%c%d.%.7d\n", sign,
>-                              (data >> ADT7410_T16_VALUE_FLOAT_OFFSET),
>-                              (data & ADT7410_T16_VALUE_FLOAT_MASK) *
>78125);
>-      } else {
>-              if (data & ADT7410_T13_VALUE_SIGN) {
>-                      /* convert supplement to positive value */
>-                      data >>=3D ADT7410_T13_VALUE_OFFSET;
>-                      data =3D (ADT7410_T13_VALUE_SIGN << 1) - data;
>-                      sign =3D '-';
>-              }
>-              return sprintf(buf, "%c%d.%.4d\n", sign,
>-                              (data >> ADT7410_T13_VALUE_FLOAT_OFFSET),
>-                              (data & ADT7410_T13_VALUE_FLOAT_MASK) *
>625);
>+      if (!(chip->config & ADT7410_RESOLUTION))
>+              data &=3D ~0x7;
>+
>+      if (data & ADT7410_T16_VALUE_SIGN) {
>+              /* convert supplement to positive value */
>+              data =3D (u16)((ADT7410_T16_VALUE_SIGN << 1) - (u32)data);
>+              sign =3D '-';
>       }
>+      return sprintf(buf, "%c%d.%.7d\n", sign,
>+                      (data >> ADT7410_T16_VALUE_FLOAT_OFFSET),
>+                      (data & ADT7410_T16_VALUE_FLOAT_MASK) * 78125);
> }
>
> static ssize_t adt7410_show_value(struct device *dev,
>--
>1.7.10
>

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

* RE: [PATCH 1/3] staging iio adt7410: sysfs store function must return length
  2012-07-03  9:21 ` [PATCH 1/3] staging iio adt7410: sysfs store function must return length Sascha Hauer
@ 2012-07-03 10:41   ` Zhang, Sonic
  2012-07-03 20:08     ` Jonathan Cameron
  0 siblings, 1 reply; 12+ messages in thread
From: Zhang, Sonic @ 2012-07-03 10:41 UTC (permalink / raw)
  To: Sascha Hauer, linux-iio@vger.kernel.org; +Cc: Jonathan Cameron

Acked-by: Sonic Zhang <sonic.zhang@analog.com>

>-----Original Message-----
>From: Sascha Hauer [mailto:s.hauer@pengutronix.de]
>Sent: Tuesday, July 03, 2012 5:21 PM
>To: linux-iio@vger.kernel.org
>Cc: Jonathan Cameron; Zhang, Sonic; Sascha Hauer
>Subject: [PATCH 1/3] staging iio adt7410: sysfs store function must return=
 length
>
>Otherwise a write to the resolution entry never returns.
>
>Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
>---
> drivers/staging/iio/adc/adt7410.c |    2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
>diff --git a/drivers/staging/iio/adc/adt7410.c b/drivers/staging/iio/adc/a=
dt7410.c
>index d7d9ad9..fa54a40 100644
>--- a/drivers/staging/iio/adc/adt7410.c
>+++ b/drivers/staging/iio/adc/adt7410.c
>@@ -257,7 +257,7 @@ static ssize_t adt7410_store_resolution(struct device
>*dev,
>
>       chip->config =3D config;
>
>-      return ret;
>+      return len;
> }
>
> static IIO_DEVICE_ATTR(resolution, S_IRUGO | S_IWUSR,
>--
>1.7.10
>

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

* RE: [PATCH 3/3] staging iio adt7410: make 16bit mode default
  2012-07-03  9:21 ` [PATCH 3/3] staging iio adt7410: make 16bit mode default Sascha Hauer
@ 2012-07-03 10:42   ` Zhang, Sonic
  2012-07-03 20:19     ` Jonathan Cameron
  0 siblings, 1 reply; 12+ messages in thread
From: Zhang, Sonic @ 2012-07-03 10:42 UTC (permalink / raw)
  To: Sascha Hauer, linux-iio@vger.kernel.org; +Cc: Jonathan Cameron

Acked-by: Sonic Zhang <sonic.zhang@analog.com>

>-----Original Message-----
>From: Sascha Hauer [mailto:s.hauer@pengutronix.de]
>Sent: Tuesday, July 03, 2012 5:21 PM
>To: linux-iio@vger.kernel.org
>Cc: Jonathan Cameron; Zhang, Sonic; Sascha Hauer
>Subject: [PATCH 3/3] staging iio adt7410: make 16bit mode default
>
>In 13bit mode the lower three bits of the adc value contain
>flags. The driver does not use these flags at all, so make 16bit
>mode the default.
>
>Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
>---
> drivers/staging/iio/adc/adt7410.c |   24 +++++++++++++-----------
> 1 file changed, 13 insertions(+), 11 deletions(-)
>
>diff --git a/drivers/staging/iio/adc/adt7410.c b/drivers/staging/iio/adc/a=
dt7410.c
>index f9188e5..f8dd567 100644
>--- a/drivers/staging/iio/adc/adt7410.c
>+++ b/drivers/staging/iio/adc/adt7410.c
>@@ -756,13 +756,15 @@ static int __devinit adt7410_probe(struct i2c_client
>*client,
>                       goto error_unreg_ct_irq;
>       }
>
>-      if (client->irq && adt7410_platform_data[0]) {
>+      ret =3D adt7410_i2c_read_byte(chip, ADT7410_CONFIG, &chip->config);
>+      if (ret) {
>+              ret =3D -EIO;
>+              goto error_unreg_int_irq;
>+      }
>
>-              ret =3D adt7410_i2c_read_byte(chip, ADT7410_CONFIG, &chip-
>>config);
>-              if (ret) {
>-                      ret =3D -EIO;
>-                      goto error_unreg_int_irq;
>-              }
>+      chip->config |=3D ADT7410_RESOLUTION;
>+
>+      if (client->irq && adt7410_platform_data[0]) {
>
>               /* set irq polarity low level */
>               chip->config &=3D ~ADT7410_CT_POLARITY;
>@@ -771,12 +773,12 @@ static int __devinit adt7410_probe(struct i2c_client
>*client,
>                       chip->config |=3D ADT7410_INT_POLARITY;
>               else
>                       chip->config &=3D ~ADT7410_INT_POLARITY;
>+      }
>
>-              ret =3D adt7410_i2c_write_byte(chip, ADT7410_CONFIG, chip-
>>config);
>-              if (ret) {
>-                      ret =3D -EIO;
>-                      goto error_unreg_int_irq;
>-              }
>+      ret =3D adt7410_i2c_write_byte(chip, ADT7410_CONFIG, chip->config);
>+      if (ret) {
>+              ret =3D -EIO;
>+              goto error_unreg_int_irq;
>       }
>       ret =3D iio_device_register(indio_dev);
>       if (ret)
>--
>1.7.10
>

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

* Re: [PATCH 1/3] staging iio adt7410: sysfs store function must return length
  2012-07-03 10:41   ` Zhang, Sonic
@ 2012-07-03 20:08     ` Jonathan Cameron
  0 siblings, 0 replies; 12+ messages in thread
From: Jonathan Cameron @ 2012-07-03 20:08 UTC (permalink / raw)
  To: Zhang, Sonic; +Cc: Sascha Hauer, linux-iio@vger.kernel.org

On 07/03/2012 11:41 AM, Zhang, Sonic wrote:
> Acked-by: Sonic Zhang <sonic.zhang@analog.com>
> 
>> -----Original Message-----
>> From: Sascha Hauer [mailto:s.hauer@pengutronix.de]
>> Sent: Tuesday, July 03, 2012 5:21 PM
>> To: linux-iio@vger.kernel.org
>> Cc: Jonathan Cameron; Zhang, Sonic; Sascha Hauer
>> Subject: [PATCH 1/3] staging iio adt7410: sysfs store function must return length
>>
>> Otherwise a write to the resolution entry never returns.
>>
>> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
merged to fixes. Thanks.
>> ---
>> drivers/staging/iio/adc/adt7410.c |    2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/drivers/staging/iio/adc/adt7410.c b/drivers/staging/iio/adc/adt7410.c
>> index d7d9ad9..fa54a40 100644
>> --- a/drivers/staging/iio/adc/adt7410.c
>> +++ b/drivers/staging/iio/adc/adt7410.c
>> @@ -257,7 +257,7 @@ static ssize_t adt7410_store_resolution(struct device
>> *dev,
>>
>>       chip->config = config;
>>
>> -      return ret;
>> +      return len;
>> }
>>
>> static IIO_DEVICE_ATTR(resolution, S_IRUGO | S_IWUSR,
>> --
>> 1.7.10
>>
> 
> 



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

* Re: [PATCH 2/3] staging iio adt7410: fix 13bit mode
  2012-07-03 10:41   ` Zhang, Sonic
@ 2012-07-03 20:12     ` Jonathan Cameron
  0 siblings, 0 replies; 12+ messages in thread
From: Jonathan Cameron @ 2012-07-03 20:12 UTC (permalink / raw)
  To: Zhang, Sonic; +Cc: Sascha Hauer, linux-iio@vger.kernel.org, Jonathan Cameron

On 07/03/2012 11:41 AM, Zhang, Sonic wrote:
> Acked-by: Sonic Zhang <sonic.zhang@analog.com>
merged to fixes.
> 
>> -----Original Message-----
>> From: Sascha Hauer [mailto:s.hauer@pengutronix.de]
>> Sent: Tuesday, July 03, 2012 5:21 PM
>> To: linux-iio@vger.kernel.org
>> Cc: Jonathan Cameron; Zhang, Sonic; Sascha Hauer
>> Subject: [PATCH 2/3] staging iio adt7410: fix 13bit mode
>>
>> The driver assumes that in 13bit mode the 16bit value has
>> to be shifted to the right by 3 bits. This is not true, in
>> both 16bit and 13bit mode the MSB is at the same position.
>> Currently the driver returns a temperature of 194 degrees
>> Celsius in 13bit mode and 24 degrees Celsius in 16bit mode.
>> Fix this by using the same algorithm for 16bit and 13bit
>> mode and by just masking out the lower three bits in 13bit
>> mode.
>>
>> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
>> ---
>> drivers/staging/iio/adc/adt7410.c |   29 ++++++++++-------------------
>> 1 file changed, 10 insertions(+), 19 deletions(-)
>>
>> diff --git a/drivers/staging/iio/adc/adt7410.c b/drivers/staging/iio/adc/adt7410.c
>> index fa54a40..f9188e5 100644
>> --- a/drivers/staging/iio/adc/adt7410.c
>> +++ b/drivers/staging/iio/adc/adt7410.c
>> @@ -293,26 +293,17 @@ static ssize_t adt7410_convert_temperature(struct
>> adt7410_chip_info *chip,
>> {
>>       char sign = ' ';
>>
>> -      if (chip->config & ADT7410_RESOLUTION) {
>> -              if (data & ADT7410_T16_VALUE_SIGN) {
>> -                      /* convert supplement to positive value */
>> -                      data = (u16)((ADT7410_T16_VALUE_SIGN << 1) -
>> (u32)data);
>> -                      sign = '-';
>> -              }
>> -              return sprintf(buf, "%c%d.%.7d\n", sign,
>> -                              (data >> ADT7410_T16_VALUE_FLOAT_OFFSET),
>> -                              (data & ADT7410_T16_VALUE_FLOAT_MASK) *
>> 78125);
>> -      } else {
>> -              if (data & ADT7410_T13_VALUE_SIGN) {
>> -                      /* convert supplement to positive value */
>> -                      data >>= ADT7410_T13_VALUE_OFFSET;
>> -                      data = (ADT7410_T13_VALUE_SIGN << 1) - data;
>> -                      sign = '-';
>> -              }
>> -              return sprintf(buf, "%c%d.%.4d\n", sign,
>> -                              (data >> ADT7410_T13_VALUE_FLOAT_OFFSET),
>> -                              (data & ADT7410_T13_VALUE_FLOAT_MASK) *
>> 625);
>> +      if (!(chip->config & ADT7410_RESOLUTION))
>> +              data &= ~0x7;
>> +
>> +      if (data & ADT7410_T16_VALUE_SIGN) {
>> +              /* convert supplement to positive value */
>> +              data = (u16)((ADT7410_T16_VALUE_SIGN << 1) - (u32)data);
>> +              sign = '-';
>>       }
>> +      return sprintf(buf, "%c%d.%.7d\n", sign,
>> +                      (data >> ADT7410_T16_VALUE_FLOAT_OFFSET),
>> +                      (data & ADT7410_T16_VALUE_FLOAT_MASK) * 78125);
>> }
>>
>> static ssize_t adt7410_show_value(struct device *dev,
>> --
>> 1.7.10
>>
> 
> 

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

* Re: [PATCH 3/3] staging iio adt7410: make 16bit mode default
  2012-07-03 10:42   ` Zhang, Sonic
@ 2012-07-03 20:19     ` Jonathan Cameron
  2012-07-04  6:27       ` Sascha Hauer
  0 siblings, 1 reply; 12+ messages in thread
From: Jonathan Cameron @ 2012-07-03 20:19 UTC (permalink / raw)
  To: Zhang, Sonic; +Cc: Sascha Hauer, linux-iio@vger.kernel.org, Jonathan Cameron

On 07/03/2012 11:42 AM, Zhang, Sonic wrote:
> Acked-by: Sonic Zhang <sonic.zhang@analog.com>
> 
>> -----Original Message-----
>> From: Sascha Hauer [mailto:s.hauer@pengutronix.de]
>> Sent: Tuesday, July 03, 2012 5:21 PM
>> To: linux-iio@vger.kernel.org
>> Cc: Jonathan Cameron; Zhang, Sonic; Sascha Hauer
>> Subject: [PATCH 3/3] staging iio adt7410: make 16bit mode default
>>
>> In 13bit mode the lower three bits of the adc value contain
>> flags. The driver does not use these flags at all, so make 16bit
>> mode the default.
>>
>> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
merged (for next version rather than fixes as whilst a reasonable
change, it's not a fix).

Anyhow, please do note that the intent is to move this driver out
to hwmon. It's a long way from abi compliant for iio. I just mention
this to avoid you wasting time pulling it nearer to the abi (if
you were thinking of doing so of course!)
>> ---
>> drivers/staging/iio/adc/adt7410.c |   24 +++++++++++++-----------
>> 1 file changed, 13 insertions(+), 11 deletions(-)
>>
>> diff --git a/drivers/staging/iio/adc/adt7410.c b/drivers/staging/iio/adc/adt7410.c
>> index f9188e5..f8dd567 100644
>> --- a/drivers/staging/iio/adc/adt7410.c
>> +++ b/drivers/staging/iio/adc/adt7410.c
>> @@ -756,13 +756,15 @@ static int __devinit adt7410_probe(struct i2c_client
>> *client,
>>                       goto error_unreg_ct_irq;
>>       }
>>
>> -      if (client->irq && adt7410_platform_data[0]) {
>> +      ret = adt7410_i2c_read_byte(chip, ADT7410_CONFIG, &chip->config);
>> +      if (ret) {
>> +              ret = -EIO;
>> +              goto error_unreg_int_irq;
>> +      }
>>
>> -              ret = adt7410_i2c_read_byte(chip, ADT7410_CONFIG, &chip-
>>> config);
>> -              if (ret) {
>> -                      ret = -EIO;
>> -                      goto error_unreg_int_irq;
>> -              }
>> +      chip->config |= ADT7410_RESOLUTION;
>> +
>> +      if (client->irq && adt7410_platform_data[0]) {
>>
>>               /* set irq polarity low level */
>>               chip->config &= ~ADT7410_CT_POLARITY;
>> @@ -771,12 +773,12 @@ static int __devinit adt7410_probe(struct i2c_client
>> *client,
>>                       chip->config |= ADT7410_INT_POLARITY;
>>               else
>>                       chip->config &= ~ADT7410_INT_POLARITY;
>> +      }
>>
>> -              ret = adt7410_i2c_write_byte(chip, ADT7410_CONFIG, chip-
>>> config);
>> -              if (ret) {
>> -                      ret = -EIO;
>> -                      goto error_unreg_int_irq;
>> -              }
>> +      ret = adt7410_i2c_write_byte(chip, ADT7410_CONFIG, chip->config);
>> +      if (ret) {
>> +              ret = -EIO;
>> +              goto error_unreg_int_irq;
>>       }
>>       ret = iio_device_register(indio_dev);
>>       if (ret)
>> --
>> 1.7.10
>>
> 
> 

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

* Re: [PATCH 3/3] staging iio adt7410: make 16bit mode default
  2012-07-03 20:19     ` Jonathan Cameron
@ 2012-07-04  6:27       ` Sascha Hauer
  2012-07-04  6:59         ` Jonathan Cameron
  0 siblings, 1 reply; 12+ messages in thread
From: Sascha Hauer @ 2012-07-04  6:27 UTC (permalink / raw)
  To: Jonathan Cameron
  Cc: Zhang, Sonic, linux-iio@vger.kernel.org, Jonathan Cameron

On Tue, Jul 03, 2012 at 09:19:19PM +0100, Jonathan Cameron wrote:
> On 07/03/2012 11:42 AM, Zhang, Sonic wrote:
> > Acked-by: Sonic Zhang <sonic.zhang@analog.com>
> > 
> >> -----Original Message-----
> >> From: Sascha Hauer [mailto:s.hauer@pengutronix.de]
> >> Sent: Tuesday, July 03, 2012 5:21 PM
> >> To: linux-iio@vger.kernel.org
> >> Cc: Jonathan Cameron; Zhang, Sonic; Sascha Hauer
> >> Subject: [PATCH 3/3] staging iio adt7410: make 16bit mode default
> >>
> >> In 13bit mode the lower three bits of the adc value contain
> >> flags. The driver does not use these flags at all, so make 16bit
> >> mode the default.
> >>
> >> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
> merged (for next version rather than fixes as whilst a reasonable
> change, it's not a fix).
> 
> Anyhow, please do note that the intent is to move this driver out
> to hwmon. It's a long way from abi compliant for iio. I just mention
> this to avoid you wasting time pulling it nearer to the abi (if
> you were thinking of doing so of course!)

Ok, good to know, thanks. I already wondered why this driver is in iio
instead of hwmon. Right now I have no further plans for this driver.
Would you recommend me to convert it to hwmon first should I have to
revisit this driver?

Sascha


-- 
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

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

* Re: [PATCH 3/3] staging iio adt7410: make 16bit mode default
  2012-07-04  6:27       ` Sascha Hauer
@ 2012-07-04  6:59         ` Jonathan Cameron
  0 siblings, 0 replies; 12+ messages in thread
From: Jonathan Cameron @ 2012-07-04  6:59 UTC (permalink / raw)
  To: Sascha Hauer, Jonathan Cameron
  Cc: Zhang, Sonic, linux-iio@vger.kernel.org, Jonathan Cameron



Sascha Hauer <s.hauer@pengutronix.de> wrote:

>On Tue, Jul 03, 2012 at 09:19:19PM +0100, Jonathan Cameron wrote:
>> On 07/03/2012 11:42 AM, Zhang, Sonic wrote:
>> > Acked-by: Sonic Zhang <sonic.zhang@analog.com>
>> > 
>> >> -----Original Message-----
>> >> From: Sascha Hauer [mailto:s.hauer@pengutronix.de]
>> >> Sent: Tuesday, July 03, 2012 5:21 PM
>> >> To: linux-iio@vger.kernel.org
>> >> Cc: Jonathan Cameron; Zhang, Sonic; Sascha Hauer
>> >> Subject: [PATCH 3/3] staging iio adt7410: make 16bit mode default
>> >>
>> >> In 13bit mode the lower three bits of the adc value contain
>> >> flags. The driver does not use these flags at all, so make 16bit
>> >> mode the default.
>> >>
>> >> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
>> merged (for next version rather than fixes as whilst a reasonable
>> change, it's not a fix).
>> 
>> Anyhow, please do note that the intent is to move this driver out
>> to hwmon. It's a long way from abi compliant for iio. I just mention
>> this to avoid you wasting time pulling it nearer to the abi (if
>> you were thinking of doing so of course!)
>
>Ok, good to know, thanks. I already wondered why this driver is in iio
>instead of hwmon. Right now I have no further plans for this driver.
>Would you recommend me to convert it to hwmon first should I have to
>revisit this driver?
Definitely.  
>
>Sascha
>
>
>-- 
>Pengutronix e.K.                           |                           
> |
>Industrial Linux Solutions                 | http://www.pengutronix.de/
> |
>Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0  
> |
>Amtsgericht Hildesheim, HRA 2686           | Fax:  
>+49-5121-206917-5555 |

-- 
Sent from my Android phone with K-9 Mail. Please excuse my brevity.

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

end of thread, other threads:[~2012-07-04  6:59 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-07-03  9:21 [PATCH] staging iio adt7410: some improvements Sascha Hauer
2012-07-03  9:21 ` [PATCH 1/3] staging iio adt7410: sysfs store function must return length Sascha Hauer
2012-07-03 10:41   ` Zhang, Sonic
2012-07-03 20:08     ` Jonathan Cameron
2012-07-03  9:21 ` [PATCH 2/3] staging iio adt7410: fix 13bit mode Sascha Hauer
2012-07-03 10:41   ` Zhang, Sonic
2012-07-03 20:12     ` Jonathan Cameron
2012-07-03  9:21 ` [PATCH 3/3] staging iio adt7410: make 16bit mode default Sascha Hauer
2012-07-03 10:42   ` Zhang, Sonic
2012-07-03 20:19     ` Jonathan Cameron
2012-07-04  6:27       ` Sascha Hauer
2012-07-04  6:59         ` 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).