lkml.org 
[lkml]   [2017]   [Jul]   [6]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v2 8/9] staging: iio: tsl2x7x: migrate in_illuminance0_integration_time sysfs attribute to iio_chan_spec
    Date
    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);

    + 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,
    --
    2.9.4
    \
     
     \ /
      Last update: 2017-07-07 00:59    [W:2.136 / U:0.444 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site