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