From: Jonathan Cameron <jic23@kernel.org>
To: Brian Masney <masneyb@onstation.org>
Cc: linux-iio@vger.kernel.org, gregkh@linuxfoundation.org,
devel@driverdev.osuosl.org, knaack.h@gmx.de, lars@metafoo.de,
pmeerw@pmeerw.net, linux-kernel@vger.kernel.org,
Jon.Brenner@ams.com
Subject: Re: [PATCH v2 8/9] staging: iio: tsl2x7x: migrate in_illuminance0_integration_time sysfs attribute to iio_chan_spec
Date: Sun, 9 Jul 2017 18:43:42 +0100 [thread overview]
Message-ID: <20170709184342.58277fb8@kernel.org> (raw)
In-Reply-To: <20170706225626.6716-9-masneyb@onstation.org>
On Thu, 6 Jul 2017 18:56:25 -0400
Brian Masney <masneyb@onstation.org> wrote:
> The driver explicitly creates the in_illuminance0_integration_time sysfs
> attribute outside the IIO core. This attribute is available in the IIO
> core so this patches migrates the attribute to be created by
> the iio_chan_spec.
>
> Signed-off-by: Brian Masney <masneyb@onstation.org>
> ---
> drivers/staging/iio/light/tsl2x7x.c | 68 +++++++++++--------------------------
> 1 file changed, 19 insertions(+), 49 deletions(-)
>
> diff --git a/drivers/staging/iio/light/tsl2x7x.c b/drivers/staging/iio/light/tsl2x7x.c
> index c38bd64..033468d 100644
> --- a/drivers/staging/iio/light/tsl2x7x.c
> +++ b/drivers/staging/iio/light/tsl2x7x.c
> @@ -905,46 +905,6 @@ static ssize_t in_proximity0_calibscale_available_show(struct device *dev,
> return snprintf(buf, PAGE_SIZE, "%s\n", "1 2 4 8");
> }
>
> -static ssize_t in_illuminance0_integration_time_show(struct device *dev,
> - struct device_attribute *attr,
> - char *buf)
> -{
> - struct tsl2X7X_chip *chip = iio_priv(dev_to_iio_dev(dev));
> - int y, z;
> -
> - y = (TSL2X7X_MAX_TIMER_CNT - (u8)chip->tsl2x7x_settings.als_time) + 1;
> - z = y * TSL2X7X_MIN_ITIME;
> - y /= 1000;
> - z %= 1000;
> -
> - return snprintf(buf, PAGE_SIZE, "%d.%03d\n", y, z);
> -}
> -
> -static ssize_t in_illuminance0_integration_time_store(struct device *dev,
> - struct device_attribute *attr,
> - const char *buf, size_t len)
> -{
> - struct iio_dev *indio_dev = dev_to_iio_dev(dev);
> - struct tsl2X7X_chip *chip = iio_priv(indio_dev);
> - struct tsl2x7x_parse_result result;
> - int ret;
> -
> - ret = iio_str_to_fixpoint(buf, 100, &result.integer, &result.fract);
> - if (ret)
> - return ret;
> -
> - result.fract /= 3;
> - chip->tsl2x7x_settings.als_time =
> - TSL2X7X_MAX_TIMER_CNT - (u8)result.fract;
> -
> - dev_info(&chip->client->dev, "%s: als time = %d",
> - __func__, chip->tsl2x7x_settings.als_time);
> -
> - tsl2x7x_invoke_change(indio_dev);
> -
> - return IIO_VAL_INT_PLUS_MICRO;
> -}
> -
> static IIO_CONST_ATTR(in_illuminance0_integration_time_available,
> ".00272 - .696");
>
> @@ -1369,7 +1329,13 @@ static int tsl2x7x_read_raw(struct iio_dev *indio_dev,
> *val = chip->tsl2x7x_settings.als_gain_trim;
> ret = IIO_VAL_INT;
> break;
> -
> + case IIO_CHAN_INFO_INT_TIME:
> + *val = (TSL2X7X_MAX_TIMER_CNT - chip->tsl2x7x_settings.als_time)
> + + 1;
> + *val2 = (*val * TSL2X7X_MIN_ITIME) % 1000;
> + *val /= 1000;
> + ret = IIO_VAL_INT_PLUS_MICRO;
> + break;
> default:
> ret = -EINVAL;
> }
> @@ -1445,7 +1411,13 @@ static int tsl2x7x_write_raw(struct iio_dev *indio_dev,
> case IIO_CHAN_INFO_CALIBBIAS:
> chip->tsl2x7x_settings.als_gain_trim = val;
> break;
> + case IIO_CHAN_INFO_INT_TIME:
> + chip->tsl2x7x_settings.als_time =
> + TSL2X7X_MAX_TIMER_CNT - (val2 / 3);
Is that 3 the same one represented by MIN_ITME?
Looks like it so would be easier to review if it was using the
constant.
Thanks,
Jonathan
>
> + dev_info(&chip->client->dev, "%s: als time = %d",
> + __func__, chip->tsl2x7x_settings.als_time);
> + break;
> default:
> return -EINVAL;
> }
> @@ -1459,8 +1431,6 @@ static DEVICE_ATTR_RO(in_proximity0_calibscale_available);
>
> static DEVICE_ATTR_RO(in_illuminance0_calibscale_available);
>
> -static DEVICE_ATTR_RW(in_illuminance0_integration_time);
> -
> static DEVICE_ATTR_RW(in_illuminance0_target_input);
>
> static DEVICE_ATTR_WO(in_illuminance0_calibrate);
> @@ -1540,7 +1510,6 @@ static irqreturn_t tsl2x7x_event_handler(int irq, void *private)
>
> static struct attribute *tsl2x7x_ALS_device_attrs[] = {
> &dev_attr_in_illuminance0_calibscale_available.attr,
> - &dev_attr_in_illuminance0_integration_time.attr,
> &iio_const_attr_in_illuminance0_integration_time_available.dev_attr.attr,
> &dev_attr_in_illuminance0_target_input.attr,
> &dev_attr_in_illuminance0_calibrate.attr,
> @@ -1555,7 +1524,6 @@ static struct attribute *tsl2x7x_PRX_device_attrs[] = {
>
> static struct attribute *tsl2x7x_ALSPRX_device_attrs[] = {
> &dev_attr_in_illuminance0_calibscale_available.attr,
> - &dev_attr_in_illuminance0_integration_time.attr,
> &iio_const_attr_in_illuminance0_integration_time_available.dev_attr.attr,
> &dev_attr_in_illuminance0_target_input.attr,
> &dev_attr_in_illuminance0_calibrate.attr,
> @@ -1572,7 +1540,6 @@ static struct attribute *tsl2x7x_PRX2_device_attrs[] = {
>
> static struct attribute *tsl2x7x_ALSPRX2_device_attrs[] = {
> &dev_attr_in_illuminance0_calibscale_available.attr,
> - &dev_attr_in_illuminance0_integration_time.attr,
> &iio_const_attr_in_illuminance0_integration_time_available.dev_attr.attr,
> &dev_attr_in_illuminance0_target_input.attr,
> &dev_attr_in_illuminance0_calibrate.attr,
> @@ -1710,7 +1677,8 @@ static const struct tsl2x7x_chip_info tsl2x7x_chip_info_tbl[] = {
> .type = IIO_LIGHT,
> .indexed = 1,
> .channel = 0,
> - .info_mask_separate = BIT(IIO_CHAN_INFO_PROCESSED),
> + .info_mask_separate = BIT(IIO_CHAN_INFO_PROCESSED) |
> + BIT(IIO_CHAN_INFO_INT_TIME),
> }, {
> .type = IIO_INTENSITY,
> .indexed = 1,
> @@ -1749,7 +1717,8 @@ static const struct tsl2x7x_chip_info tsl2x7x_chip_info_tbl[] = {
> .type = IIO_LIGHT,
> .indexed = 1,
> .channel = 0,
> - .info_mask_separate = BIT(IIO_CHAN_INFO_PROCESSED)
> + .info_mask_separate = BIT(IIO_CHAN_INFO_PROCESSED) |
> + BIT(IIO_CHAN_INFO_INT_TIME),
> }, {
> .type = IIO_INTENSITY,
> .indexed = 1,
> @@ -1797,7 +1766,8 @@ static const struct tsl2x7x_chip_info tsl2x7x_chip_info_tbl[] = {
> .type = IIO_LIGHT,
> .indexed = 1,
> .channel = 0,
> - .info_mask_separate = BIT(IIO_CHAN_INFO_PROCESSED),
> + .info_mask_separate = BIT(IIO_CHAN_INFO_PROCESSED) |
> + BIT(IIO_CHAN_INFO_INT_TIME),
> }, {
> .type = IIO_INTENSITY,
> .indexed = 1,
next prev parent reply other threads:[~2017-07-09 17:43 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-07-06 22:56 [PATCH v2 0/9] staging: iio: tsl2x7x: staging cleanups Brian Masney
2017-07-06 22:56 ` [PATCH v2 1/9] staging: iio: tsl2x7x: add of_match table for device tree support Brian Masney
2017-07-06 22:56 ` Brian Masney
2017-07-09 17:19 ` Jonathan Cameron
2017-07-09 17:19 ` Jonathan Cameron
2017-07-06 22:56 ` [PATCH v2 2/9] staging: iio: tsl2x7x: add device tree documentation Brian Masney
2017-07-06 22:56 ` Brian Masney
2017-07-09 17:20 ` Jonathan Cameron
2017-07-09 17:20 ` Jonathan Cameron
2017-07-10 14:15 ` Rob Herring
2017-07-10 14:15 ` Rob Herring
2017-07-06 22:56 ` [PATCH v2 3/9] staging: iio: tsl2x7x: remove redundant power_state sysfs attribute Brian Masney
2017-07-09 17:26 ` Jonathan Cameron
2017-07-06 22:56 ` [PATCH v2 4/9] staging: iio: tsl2x7x: remove tsl2x7x_i2c_read() Brian Masney
2017-07-09 17:28 ` Jonathan Cameron
2017-07-06 22:56 ` [PATCH v2 5/9] staging: iio: tsl2x7x: cleaned up i2c calls in tsl2x7x_als_calibrate() Brian Masney
2017-07-09 17:28 ` Jonathan Cameron
2017-07-06 22:56 ` [PATCH v2 6/9] staging: iio: tsl2x7x: refactor {read,write}_event_value to allow handling multiple iio_event_infos Brian Masney
2017-07-09 17:29 ` Jonathan Cameron
2017-07-06 22:56 ` [PATCH v2 7/9] staging: iio: tsl2x7x: use usleep_range() instead of mdelay() Brian Masney
2017-07-09 17:31 ` Jonathan Cameron
2017-07-06 22:56 ` [PATCH v2 8/9] staging: iio: tsl2x7x: migrate in_illuminance0_integration_time sysfs attribute to iio_chan_spec Brian Masney
2017-07-09 17:43 ` Jonathan Cameron [this message]
2017-07-06 22:56 ` [PATCH v2 9/9] staging: iio: tsl2x7x: check return value from tsl2x7x_invoke_change() Brian Masney
2017-07-09 17:47 ` Jonathan Cameron
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20170709184342.58277fb8@kernel.org \
--to=jic23@kernel.org \
--cc=Jon.Brenner@ams.com \
--cc=devel@driverdev.osuosl.org \
--cc=gregkh@linuxfoundation.org \
--cc=knaack.h@gmx.de \
--cc=lars@metafoo.de \
--cc=linux-iio@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=masneyb@onstation.org \
--cc=pmeerw@pmeerw.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.