All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 2/2] iio: cm32181:  Change cm32181 ambient light sensor driver
@ 2014-02-14 10:04 Beomho Seo
  2014-02-18 10:23 ` Jonathan Cameron
  0 siblings, 1 reply; 2+ messages in thread
From: Beomho Seo @ 2014-02-14 10:04 UTC (permalink / raw)
  To: linux-iio; +Cc: Jonathan Cameron, Kevin Tsai, Myungjoo Ham, Jaehoon Chung


Integration time of cm32181 is guessed about milliseconds.
But cm32181_read_als_it function return IIO_VAL_INT.
So fixed to return IIO_VAL_INT_PLUS_MICRO.
Next, add .write_raw_get_fmt callback function for call iio_str_to_fixpoint.

v2: cm32181_write_als_id function fixed as it was.

Cc: Kevin Tsai <ktsai@capellamicro.com>
Signed-off-by: Beomho Seo <beomho.seo@samsung.com>
---
 drivers/iio/light/cm32181.c |   24 ++++++++++++++++--------
 1 file changed, 16 insertions(+), 8 deletions(-)

diff --git a/drivers/iio/light/cm32181.c b/drivers/iio/light/cm32181.c
index f17b4e6..27c293c 100644
--- a/drivers/iio/light/cm32181.c
+++ b/drivers/iio/light/cm32181.c
@@ -103,13 +103,13 @@ static int cm32181_reg_init(struct cm32181_chip *cm32181)
 /**
  *  cm32181_read_als_it() - Get sensor integration time (ms)
  *  @cm32181:	pointer of struct cm32181
- *  @val:	pointer of int to load the als_it value.
+ *  @val2:	pointer of int to load the als_it value.
  *
  *  Report the current integartion time by millisecond.
  *
- *  Return: IIO_VAL_INT for success, otherwise -EINVAL.
+ *  Return: IIO_VAL_INT_PLUS_MICRO for success, otherwise -EINVAL.
  */
-static int cm32181_read_als_it(struct cm32181_chip *cm32181, int *val)
+static int cm32181_read_als_it(struct cm32181_chip *cm32181, int *val2)
 {
 	u16 als_it;
 	int i;
@@ -119,8 +119,8 @@ static int cm32181_read_als_it(struct cm32181_chip *cm32181, int *val)
 	als_it >>= CM32181_CMD_ALS_IT_SHIFT;
 	for (i = 0; i < ARRAY_SIZE(als_it_bits); i++) {
 		if (als_it == als_it_bits[i]) {
-			*val = als_it_value[i];
-			return IIO_VAL_INT;
+			*val2 = als_it_value[i];
+			return IIO_VAL_INT_PLUS_MICRO;
 		}
 	}

@@ -221,7 +221,7 @@ static int cm32181_read_raw(struct iio_dev *indio_dev,
 		*val = cm32181->calibscale;
 		return IIO_VAL_INT;
 	case IIO_CHAN_INFO_INT_TIME:
-		ret = cm32181_read_als_it(cm32181, val);
+		ret = cm32181_read_als_it(cm32181, val2);
 		return ret;
 	}

@@ -240,13 +240,20 @@ static int cm32181_write_raw(struct iio_dev *indio_dev,
 		cm32181->calibscale = val;
 		return val;
 	case IIO_CHAN_INFO_INT_TIME:
-		ret = cm32181_write_als_it(cm32181, val);
+		ret = cm32181_write_als_it(cm32181, val2);
 		return ret;
 	}

 	return -EINVAL;
 }

+static int cm32181_write_raw_get_fmt(struct iio_dev *indio_dev,
+				struct iio_chan_spec const *chan,
+				long mask)
+{
+	return IIO_VAL_INT_PLUS_MICRO;
+}
+
 /**
  * cm32181_get_it_available() - Get available ALS IT value
  * @dev:	pointer of struct device.
@@ -264,7 +271,7 @@ static ssize_t cm32181_get_it_available(struct device *dev,

 	n = ARRAY_SIZE(als_it_value);
 	for (i = 0, len = 0; i < n; i++)
-		len += sprintf(buf + len, "%d ", als_it_value[i]);
+		len += sprintf(buf + len, "0.%06u ", als_it_value[i]);
 	return len + sprintf(buf + len, "\n");
 }

@@ -294,6 +301,7 @@ static const struct iio_info cm32181_info = {
 	.driver_module		= THIS_MODULE,
 	.read_raw		= &cm32181_read_raw,
 	.write_raw		= &cm32181_write_raw,
+	.write_raw_get_fmt	= &cm32181_write_raw_get_fmt,
 	.attrs			= &cm32181_attribute_group,
 };

-- 
1.7.9.5

-- 
Best Regards,

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

* Re: [PATCH v2 2/2] iio: cm32181:  Change cm32181 ambient light sensor driver
  2014-02-14 10:04 [PATCH v2 2/2] iio: cm32181: Change cm32181 ambient light sensor driver Beomho Seo
@ 2014-02-18 10:23 ` Jonathan Cameron
  0 siblings, 0 replies; 2+ messages in thread
From: Jonathan Cameron @ 2014-02-18 10:23 UTC (permalink / raw)
  To: Beomho Seo, linux-iio; +Cc: Kevin Tsai, Myungjoo Ham, Jaehoon Chung

On 14/02/14 10:04, Beomho Seo wrote:
>
> Integration time of cm32181 is guessed about milliseconds.
> But cm32181_read_als_it function return IIO_VAL_INT.
> So fixed to return IIO_VAL_INT_PLUS_MICRO.
> Next, add .write_raw_get_fmt callback function for call iio_str_to_fixpoint.
>
> v2: cm32181_write_als_id function fixed as it was.
>
> Cc: Kevin Tsai <ktsai@capellamicro.com>
> Signed-off-by: Beomho Seo <beomho.seo@samsung.com>
Applied to the fixes-togreg branch but with the *get_fmt call dropped as
again it is simply returning the default value.

Thanks for these two.

Jonathan
> ---
>   drivers/iio/light/cm32181.c |   24 ++++++++++++++++--------
>   1 file changed, 16 insertions(+), 8 deletions(-)
>
> diff --git a/drivers/iio/light/cm32181.c b/drivers/iio/light/cm32181.c
> index f17b4e6..27c293c 100644
> --- a/drivers/iio/light/cm32181.c
> +++ b/drivers/iio/light/cm32181.c
> @@ -103,13 +103,13 @@ static int cm32181_reg_init(struct cm32181_chip *cm32181)
>   /**
>    *  cm32181_read_als_it() - Get sensor integration time (ms)
>    *  @cm32181:	pointer of struct cm32181
> - *  @val:	pointer of int to load the als_it value.
> + *  @val2:	pointer of int to load the als_it value.
>    *
>    *  Report the current integartion time by millisecond.
>    *
> - *  Return: IIO_VAL_INT for success, otherwise -EINVAL.
> + *  Return: IIO_VAL_INT_PLUS_MICRO for success, otherwise -EINVAL.
>    */
> -static int cm32181_read_als_it(struct cm32181_chip *cm32181, int *val)
> +static int cm32181_read_als_it(struct cm32181_chip *cm32181, int *val2)
>   {
>   	u16 als_it;
>   	int i;
> @@ -119,8 +119,8 @@ static int cm32181_read_als_it(struct cm32181_chip *cm32181, int *val)
>   	als_it >>= CM32181_CMD_ALS_IT_SHIFT;
>   	for (i = 0; i < ARRAY_SIZE(als_it_bits); i++) {
>   		if (als_it == als_it_bits[i]) {
> -			*val = als_it_value[i];
> -			return IIO_VAL_INT;
> +			*val2 = als_it_value[i];
> +			return IIO_VAL_INT_PLUS_MICRO;
>   		}
>   	}
>
> @@ -221,7 +221,7 @@ static int cm32181_read_raw(struct iio_dev *indio_dev,
>   		*val = cm32181->calibscale;
>   		return IIO_VAL_INT;
>   	case IIO_CHAN_INFO_INT_TIME:
> -		ret = cm32181_read_als_it(cm32181, val);
> +		ret = cm32181_read_als_it(cm32181, val2);
>   		return ret;
>   	}
>
> @@ -240,13 +240,20 @@ static int cm32181_write_raw(struct iio_dev *indio_dev,
>   		cm32181->calibscale = val;
>   		return val;
>   	case IIO_CHAN_INFO_INT_TIME:
> -		ret = cm32181_write_als_it(cm32181, val);
> +		ret = cm32181_write_als_it(cm32181, val2);
>   		return ret;
>   	}
>
>   	return -EINVAL;
>   }
>
> +static int cm32181_write_raw_get_fmt(struct iio_dev *indio_dev,
> +				struct iio_chan_spec const *chan,
> +				long mask)
> +{
> +	return IIO_VAL_INT_PLUS_MICRO;
> +}
> +
>   /**
>    * cm32181_get_it_available() - Get available ALS IT value
>    * @dev:	pointer of struct device.
> @@ -264,7 +271,7 @@ static ssize_t cm32181_get_it_available(struct device *dev,
>
>   	n = ARRAY_SIZE(als_it_value);
>   	for (i = 0, len = 0; i < n; i++)
> -		len += sprintf(buf + len, "%d ", als_it_value[i]);
> +		len += sprintf(buf + len, "0.%06u ", als_it_value[i]);
>   	return len + sprintf(buf + len, "\n");
>   }
>
> @@ -294,6 +301,7 @@ static const struct iio_info cm32181_info = {
>   	.driver_module		= THIS_MODULE,
>   	.read_raw		= &cm32181_read_raw,
>   	.write_raw		= &cm32181_write_raw,
> +	.write_raw_get_fmt	= &cm32181_write_raw_get_fmt,
>   	.attrs			= &cm32181_attribute_group,
>   };
>


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

end of thread, other threads:[~2014-02-18 10:22 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-02-14 10:04 [PATCH v2 2/2] iio: cm32181: Change cm32181 ambient light sensor driver Beomho Seo
2014-02-18 10:23 ` Jonathan Cameron

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.