Skip to content
Permalink
Liam-Beguin/ii…
Switch branches/tags

Commits on Feb 13, 2022

  1. dt-bindings: iio: afe: add bindings for temperature transducers

    An ADC is often used to measure other quantities indirectly.
    This binding describe one case, the measurement of a temperature
    through a temperature transducer (either voltage or current).
    
    Signed-off-by: Liam Beguin <liambeguin@gmail.com>
    Reviewed-by: Rob Herring <robh@kernel.org>
    Reviewed-by: Peter Rosin <peda@axentia.se>
    Liambeguin authored and intel-lab-lkp committed Feb 13, 2022
  2. dt-bindings: iio: afe: add bindings for temperature-sense-rtd

    An ADC is often used to measure other quantities indirectly. This
    binding describe one case, the measurement of a temperature through the
    voltage across an RTD resistor such as a PT1000.
    
    Signed-off-by: Liam Beguin <liambeguin@gmail.com>
    Reviewed-by: Rob Herring <robh@kernel.org>
    Reviewed-by: Peter Rosin <peda@axentia.se>
    Liambeguin authored and intel-lab-lkp committed Feb 13, 2022
  3. iio: afe: rescale: add temperature transducers

    A temperature transducer is a device that converts a thermal quantity
    into any other physical quantity. This patch adds support for
    temperature to voltage (like the LTC2997) and temperature to current
    (like the AD590) linear transducers.
    In both cases these are assumed to be connected to a voltage ADC.
    
    Signed-off-by: Liam Beguin <liambeguin@gmail.com>
    Reviewed-by: Peter Rosin <peda@axentia.se>
    Liambeguin authored and intel-lab-lkp committed Feb 13, 2022
  4. iio: afe: rescale: add RTD temperature sensor support

    An RTD (Resistance Temperature Detector) is a kind of temperature
    sensor used to get a linear voltage to temperature reading within a
    give range (usually 0 to 100 degrees Celsius). Common types of RTDs
    include PT100, PT500, and PT1000.
    
    Signed-off-by: Liam Beguin <liambeguin@gmail.com>
    Reviewed-by: Peter Rosin <peda@axentia.se>
    Liambeguin authored and intel-lab-lkp committed Feb 13, 2022
  5. iio: test: add basic tests for the iio-rescale driver

    The iio-rescale driver supports various combinations of scale types and
    offsets. These can often result in large integer multiplications. Make
    sure these calculations are done right by adding a set of kunit test
    cases that build on top of iio-test-format.
    
    To run these tests, add the following to .kunitconfig
    	$ cat .kunitconfig
    	CONFIG_IIO=y
    	CONFIG_IIO_RESCALE_KUNIT_TEST=y
    	CONFIG_KUNIT=y
    
    Then run:
    	$ ./tools/testing/kunit/kunit.py run --kunitconfig .kunitconfig
    
    Signed-off-by: Liam Beguin <liambeguin@gmail.com>
    Reviewed-by: Peter Rosin <peda@axentia.se>
    Liambeguin authored and intel-lab-lkp committed Feb 13, 2022
  6. iio: afe: rescale: reduce risk of integer overflow

    Reduce the risk of integer overflow by doing the scale calculation on
    a 64-bit integer. Since the rescaling is only performed on *val, reuse
    the IIO_VAL_FRACTIONAL_LOG2 case.
    
    Signed-off-by: Liam Beguin <liambeguin@gmail.com>
    Reviewed-by: Peter Rosin <peda@axentia.se>
    Liambeguin authored and intel-lab-lkp committed Feb 13, 2022
  7. iio: afe: rescale: fix accuracy for small fractional scales

    The approximation caused by integer divisions can be costly on smaller
    scale values since the decimal part is significant compared to the
    integer part. Switch to an IIO_VAL_INT_PLUS_NANO scale type in such
    cases to maintain accuracy.
    
    Signed-off-by: Liam Beguin <liambeguin@gmail.com>
    Reviewed-by: Peter Rosin <peda@axentia.se>
    Liambeguin authored and intel-lab-lkp committed Feb 13, 2022
  8. iio: afe: rescale: add offset support

    This is a preparatory change required for the addition of temperature
    sensing front ends.
    
    Signed-off-by: Liam Beguin <liambeguin@gmail.com>
    Reviewed-by: Peter Rosin <peda@axentia.se>
    Liambeguin authored and intel-lab-lkp committed Feb 13, 2022
  9. iio: afe: rescale: add INT_PLUS_{MICRO,NANO} support

    Some ADCs use IIO_VAL_INT_PLUS_{NANO,MICRO} scale types.
    Add support for these to allow using the iio-rescaler with them.
    
    Signed-off-by: Liam Beguin <liambeguin@gmail.com>
    Reviewed-by: Peter Rosin <peda@axentia.se>
    Liambeguin authored and intel-lab-lkp committed Feb 13, 2022
  10. iio: afe: rescale: expose scale processing function

    In preparation for the addition of kunit tests, expose the logic
    responsible for combining channel scales.
    
    Signed-off-by: Liam Beguin <liambeguin@gmail.com>
    Reviewed-by: Peter Rosin <peda@axentia.se>
    Liambeguin authored and intel-lab-lkp committed Feb 13, 2022

Commits on Jan 30, 2022

  1. iio: afe: rescale: reorder includes

    Includes should be ordered alphabetically which is already the case,
    but follow what is done in other drivers by separation IIO specific
    headers with a blank line.
    
    Signed-off-by: Liam Beguin <liambeguin@gmail.com>
    Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
    Link: https://lore.kernel.org/r/20220108205319.2046348-6-liambeguin@gmail.com
    Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    Liambeguin authored and jic23 committed Jan 30, 2022
  2. iio: afe: rescale: use s64 for temporary scale calculations

    All four scaling coefficients can take signed values.
    Make tmp a signed 64-bit integer and switch to div_s64() to preserve
    signs during 64-bit divisions.
    
    Fixes: 8b74816 ("iio: afe: rescale: new driver")
    Signed-off-by: Liam Beguin <liambeguin@gmail.com>
    Reviewed-by: Peter Rosin <peda@axentia.se>
    Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
    Link: https://lore.kernel.org/r/20220108205319.2046348-5-liambeguin@gmail.com
    Cc: <Stable@vger.kernel.org>
    Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    Liambeguin authored and jic23 committed Jan 30, 2022
  3. iio: inkern: make a best effort on offset calculation

    iio_convert_raw_to_processed_unlocked() assumes the offset is an
    integer. Make a best effort to get a valid offset value for fractional
    cases without breaking implicit truncations.
    
    Fixes: 48e44ce ("iio:inkern: Add function to read the processed value")
    Signed-off-by: Liam Beguin <liambeguin@gmail.com>
    Reviewed-by: Peter Rosin <peda@axentia.se>
    Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
    Link: https://lore.kernel.org/r/20220108205319.2046348-4-liambeguin@gmail.com
    Cc: <Stable@vger.kernel.org>
    Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    Liambeguin authored and jic23 committed Jan 30, 2022
  4. iio: inkern: apply consumer scale when no channel scale is available

    When a consumer calls iio_read_channel_processed() and no channel scale
    is available, it's assumed that the scale is one and the raw value is
    returned as expected.
    
    On the other hand, if the consumer calls iio_convert_raw_to_processed()
    the scaling factor requested by the consumer is not applied.
    
    This for example causes the consumer to process mV when expecting uV.
    Make sure to always apply the scaling factor requested by the consumer.
    
    Fixes: adc8ec5 ("iio: inkern: pass through raw values if no scaling")
    Signed-off-by: Liam Beguin <liambeguin@gmail.com>
    Reviewed-by: Peter Rosin <peda@axentia.se>
    Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
    Link: https://lore.kernel.org/r/20220108205319.2046348-3-liambeguin@gmail.com
    Cc: <Stable@vger.kernel.org>
    Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    Liambeguin authored and jic23 committed Jan 30, 2022
  5. iio: inkern: apply consumer scale on IIO_VAL_INT cases

    When a consumer calls iio_read_channel_processed() and the channel has
    an integer scale, the scale channel scale is applied and the processed
    value is returned as expected.
    
    On the other hand, if the consumer calls iio_convert_raw_to_processed()
    the scaling factor requested by the consumer is not applied.
    
    This for example causes the consumer to process mV when expecting uV.
    Make sure to always apply the scaling factor requested by the consumer.
    
    Fixes: 48e44ce ("iio:inkern: Add function to read the processed value")
    Signed-off-by: Liam Beguin <liambeguin@gmail.com>
    Reviewed-by: Peter Rosin <peda@axentia.se>
    Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
    Link: https://lore.kernel.org/r/20220108205319.2046348-2-liambeguin@gmail.com
    Cc: <Stable@vger.kernel.org>
    Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    Liambeguin authored and jic23 committed Jan 30, 2022
  6. iio: humidity: hdc100x: Add ACPI HID table

    x86 boards may use ACPI HID "TXNW1010" for the hdc100x device.
    
    TI told us "The ACPI ID for TI is: https://uefi.org/node/1028 (TXNW),
    therefore it would most likely be appropriate to use TXNW1010."
    
    So add an ACPI match table for that accordingly.
    
    Signed-off-by: Kai-Heng Feng <kai.heng.feng@canonical.com>
    Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
    Link: https://lore.kernel.org/r/20220128042054.2062060-1-kai.heng.feng@canonical.com
    Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    khfeng authored and jic23 committed Jan 30, 2022
  7. iio: pressure: dps310: Add ACPI HID table

    x86 boards may use ACPI HID "IFX3100" for the dps310 device.
    
    Vendor told us feel free to add the ID and contact
    "Saumitra.Chafekar@infineon.com" for further questions.
    
    So add an ACPI match table for that accordingly.
    
    Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
    Signed-off-by: Kai-Heng Feng <kai.heng.feng@canonical.com>
    Link: https://lore.kernel.org/r/20220128023144.2050615-1-kai.heng.feng@canonical.com
    Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    khfeng authored and jic23 committed Jan 30, 2022
  8. iio: sx9360: fix iio event generation

    To convert SX9360 status register ["REG_STAT"], into a channel
    index, we need to right shift by |stat_offset|, not left shift.
    Also the PROXSTAT bit (3) is for channel 1 (PHM, Phase Measured), not (PHR,
    Phase Reference, channel 0), so the offset is 2 instead of 3.
    
    Fixes: 1cdb4c4 ("iio:proximity:sx9360: Add sx9360 support")
    Signed-off-by: Jongpil Jung <jongpil19.jung@samsung.com>
    Signed-off-by: Gwendal Grignou <gwendal@chromium.org>
    Link: https://lore.kernel.org/r/20220122213444.745152-1-gwendal@chromium.org
    Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    Jongpil Jung authored and jic23 committed Jan 30, 2022
  9. iio: adc: qcom-vadc-common: Re-use generic struct u32_fract

    Instead of custom data type re-use generic struct u32_fract.
    No changes intended.
    
    Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
    Link: https://lore.kernel.org/r/20220126135353.24007-4-andriy.shevchenko@linux.intel.com
    Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    andy-shev authored and jic23 committed Jan 30, 2022
  10. iio: adc: twl4030-madc: Re-use generic struct s16_fract

    Instead of custom data type re-use generic struct s16_fract.
    No changes intended.
    
    Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
    Link: https://lore.kernel.org/r/20220126135353.24007-3-andriy.shevchenko@linux.intel.com
    Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    andy-shev authored and jic23 committed Jan 30, 2022
  11. iio: adc: rn5t618: Re-use generic struct u16_fract

    Instead of custom data type re-use generic struct u16_fract.
    No changes intended.
    
    Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
    Link: https://lore.kernel.org/r/20220126135353.24007-2-andriy.shevchenko@linux.intel.com
    Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    andy-shev authored and jic23 committed Jan 30, 2022
  12. math.h: Introduce data types for fractional numbers

    Introduce a macro to produce data types like
    
    	struct TYPE_fract {
    		__TYPE numerator;
    		__TYPE denominator;
    	};
    
    to be used in the code wherever it's needed.
    
    In the following changes convert some users to it.
    
    Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
    Link: https://lore.kernel.org/r/20220126135353.24007-1-andriy.shevchenko@linux.intel.com
    Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    andy-shev authored and jic23 committed Jan 30, 2022
  13. dt-bindings: iio/adc: qcom,spmi-iadc: Fix 'reg' property in example

    The QCom SPMI PMIC child nodes are defined to have a single address cell,
    but the example has an erroneous size cell. Remove it.
    
    Signed-off-by: Rob Herring <robh@kernel.org>
    Link: https://lore.kernel.org/r/20220126231217.1633935-1-robh@kernel.org
    Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    robherring authored and jic23 committed Jan 30, 2022

Commits on Jan 23, 2022

  1. iio: adc: tsc2046: add sanity check to avoid to big allocations

    To avoid problematic devicetree configurations. Set allocation limit
    with error message and suggestion on what can be done to solve this
    issue.
    
    Signed-off-by: Oleksij Rempel <o.rempel@pengutronix.de>
    Link: https://lore.kernel.org/r/20220117082852.3370869-2-o.rempel@pengutronix.de
    Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    olerem authored and jic23 committed Jan 23, 2022
  2. iio: adc: tsc2046: add .read_raw support

    Add read_raw() support to make use of iio_hwmon and other iio clients.
    
    Signed-off-by: Oleksij Rempel <o.rempel@pengutronix.de>
    Link: https://lore.kernel.org/r/20220117082852.3370869-1-o.rempel@pengutronix.de
    Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    olerem authored and jic23 committed Jan 23, 2022
  3. iio: hw_consumer: Use struct_size() helper in kzalloc()

    Make use of the struct_size() helper instead of an open-coded version,
    in order to avoid any potential type mistakes or integer overflows that,
    in the worst scenario, could lead to heap overflows.
    
    Also, address the following sparse warnings:
    drivers/iio/buffer/industrialio-hw-consumer.c:63:23: warning: using sizeof on a flexible structure when using CF='-Wflexible-array-sizeof'
    
    Link: KSPP#174
    Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org>
    Reviewed-by: Kees Cook <keescook@chromium.org>
    Link: https://lore.kernel.org/r/20220120225243.GA37225@embeddedor
    Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    GustavoARSilva authored and jic23 committed Jan 23, 2022
  4. iio: adis: stylistic changes

    Minor stylistic changes to address checkptach complains when called with
    '--strict'.
    
    Signed-off-by: Nuno Sá <nuno.sa@analog.com>
    Link: https://lore.kernel.org/r/20220122130905.99-3-nuno.sa@analog.com
    Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    nunojsa authored and jic23 committed Jan 23, 2022
  5. adis: simplify 'adis_update_bits' macros

    There's no need to use  '__builtin_choose_expr' to choose the right
    call to 'adis_update_bits_base()'. We can change the 'BUILD_BUG_ON()'
    condition so that it makes sure only the supported sizes are
    passed in. With that, we can just use 'sizeof(val)' as the size argument
    of 'adis_update_bits_base()'.
    
    Signed-off-by: Nuno Sá <nuno.sa@analog.com>
    Link: https://lore.kernel.org/r/20220122130905.99-2-nuno.sa@analog.com
    Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    nunojsa authored and jic23 committed Jan 23, 2022
  6. MAINTAINERS: add missing files to the adis lib

    The triggered buffer support was missing in the MAINTAINERS file. Add
    them.
    
    Signed-off-by: Nuno Sá <nuno.sa@analog.com>
    Link: https://lore.kernel.org/r/20220122130905.99-1-nuno.sa@analog.com
    Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    nunojsa authored and jic23 committed Jan 23, 2022
  7. MAINTAINERS: add maintainer for ADMV8818 driver

    Add myself as maintainer for the ADMV8818 driver.
    
    Signed-off-by: Antoniu Miclaus <antoniu.miclaus@analog.com>
    Link: https://lore.kernel.org/r/20220117070039.6139-3-antoniu.miclaus@analog.com
    Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    amiclaus authored and jic23 committed Jan 23, 2022
  8. MAINTAINERS: add maintainer for ADMV1013 driver

    Add myself as maintainer for the ADMV1013 driver.
    
    Signed-off-by: Antoniu Miclaus <antoniu.miclaus@analog.com>
    Link: https://lore.kernel.org/r/20220117070039.6139-2-antoniu.miclaus@analog.com
    Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    amiclaus authored and jic23 committed Jan 23, 2022
  9. MAINTAINERS: add maintainer for AD7293 driver

    Add myself as maintainer for the AD7293 driver.
    
    Signed-off-by: Antoniu Miclaus <antoniu.miclaus@analog.com>
    Link: https://lore.kernel.org/r/20220117070039.6139-1-antoniu.miclaus@analog.com
    Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    amiclaus authored and jic23 committed Jan 23, 2022
  10. iio: sps30: Use sysfs_emit()

    sysfs_emit() is preferred over raw s*printf() for sysfs attributes since it
    knows about the sysfs buffer specifics and has some built-in checks for
    size and alignment.
    
    Use sysfs_emit() to format the custom `cleaning_period` device attribute of
    the sps30 driver.
    
    Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
    Link: https://lore.kernel.org/r/20211216185217.1054495-14-lars@metafoo.de
    Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    larsclausen authored and jic23 committed Jan 23, 2022
  11. iio: scd4x: Use sysfs_emit()

    sysfs_emit() is preferred over raw s*printf() for sysfs attributes since it
    knows about the sysfs buffer specifics and has some built-in checks for
    size and alignment.
    
    Use sysfs_emit() to format the custom `calibration_auto_enable` device
    attribute of the scd4x driver.
    
    Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
    Link: https://lore.kernel.org/r/20211216185217.1054495-13-lars@metafoo.de
    Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    larsclausen authored and jic23 committed Jan 23, 2022
  12. iio: ms_sensors: Use sysfs_emit()

    sysfs_emit() is preferred over raw s*printf() for sysfs attributes since it
    knows about the sysfs buffer specifics and has some built-in checks for
    size and alignment.
    
    Use sysfs_emit() to format the custom `battery_low` and `heater_enable`
    device attributes of the ms_sensors driver shared code.
    
    Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
    Link: https://lore.kernel.org/r/20211216185217.1054495-12-lars@metafoo.de
    Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    larsclausen authored and jic23 committed Jan 23, 2022
Older