1. 16 Apr, 2019 36 commits
  2. 04 Apr, 2019 4 commits
    • Greg Kroah-Hartman's avatar
      Merge tag 'iio-for-5.2a-2' of... · 932f9892
      Greg Kroah-Hartman authored
      Merge tag 'iio-for-5.2a-2' of git://git.kernel.org/pub/scm/linux/kernel/git/jic23/iio into staging-next
      
      Jonathan writes:
      
      First set of new device support, features and fixes for IIO in the 5.2 cycle
      
      Staging graduations
      * ad7780
        - Move this ADC driver out of staging.  Included adding some new features
          along the way (see below). Also added DT bindings.
      
      New device support
      * adis16480
        - Support the ADIS16495 and ADIS16497 IMU devices making
          heavy use of refactoring of various aspects of the driver in precursor
          patches.
      * lsm6dsx
        - Support for the ASM330LHH 6-axis (accelerometer + gyro) sensor.
        - Support for the LSM6DS0X
      * matbotix mb1232
        - New driver for this ultrasound ranging device family. Including bindings.
        - Supports mb1202, mb1212, mb1222, mb1232, mb1242, mb7040 and mb7137.
      * max31856
        - New driver for this thermocouple temperature sensor.
      * meson saradc
        - Support the Meson-G12A (ID addition only).
      * stmpe-adc
        - New driver supporting generic ADC alongside touchscreen support which
          previously existed. Includes DT bindings.
      * vcnl4000
        - Support for the vcln4040 proximity and light sensor, including adding
          DT bindings for this and parts previously supported.
      
      Features
      * core
        - Allow reading of mount matrices from ACPI in addition to DT.
        - Common binding for theromcouple types.
      * ad5933
        - Add ABI docs as there are a few 'unsual' elements about this
          device - perhaps because it's our only impedance analyser.
      * ad7780
        - Add gain and filter gpio support + readback of current gain and filter.
      * adis16480
        - Allow selection fo the dataready pin to be used.
        - Device tree ID table and binding documentation.
        - Support external clock modes, including new bindings.
      * bma180
        - Mount matrix support.
      * bmc150
        - Mount matrix support.
      * bmg160
        - Mount matrix support.
        - DT id table and bindings doc.
      * bmp280
        - Put calibration data into the entropy pool.
      * hmc5843
        - Mount matrix support.
      * itg3200
        - Mount matrix support.
      * kxcjk1013
        - Device tree id table, and binding docs.
      * lpc32xx
        - Add scale when regulator specified including DT docs for regulator.
      * pms7003
        - Add device IDs for all supported parts to driver and binding.
      * stm32-dfsdm
        - Enable hw consumer support, scan mode control and a complex set of
          triggered buffer modes.
        - Power management.
      * stm32-lptimer-counter
        - power management.
        - Document the pinctrl sleep state binding.
      * ti-ads7950
        - GPIO pin support.
      
      Cleanups, minor fixes
      * core
        - Use bitmap_zalloc to make it explicit that is what we are doing.
        - Tidy up all the Kconfig files (which had slowly gotten messy)
        - Fix a forwards definition missing issue in iio/driver.h
      * ad sigma delta core
        - Improve handling of SPI bus locking vs CS assertion.  This has been
          wrong a long time so not rushing this in.
      * ad5064
        - Mlock to local lock.
      * ad5933 (staging cleanup)
        - Multiline comment fixes.
        - Include ordering.
        - SPDX.
        - Tidy up Kconfig help which was a bit missleading.
        - Change some non standard attributes to ABI defined ones.
      * ad7124
        - White space fix.
      * ad7192
        - White space.
        - Use DT clock binding.
        - Improve error reporting.
        - Platform data to DT conversion.
        - Use read_avail callback, mostly to avoid the endless series of
          patches from new contributors trying to falsely put spaces around
          the negative sign.
      * ad7280a
        - Add brackets to macros to avoid potential precedence isseus.
        - Add temp vars for event codes to reduce indent and improved readability.
        - Clean out som CamelCase notation.
        - White space.
      * ad7606
        - Fix broken file naming in MAINTAINERS.
      * ad7780
        - Missing switch defaults to supress warnings and harden the code slightly.
        - Set pattern masks more directly.
        - Add ID values and masks for all supported chips.
        - SPDX + add Renato as a copyright holder as he has done a lot of work on
          this driver.
        - Add brackets to macros to avoid potential precedence issues.
      * ad7923
        - White space fixes.
        - Use BIT macro to improve readability.
        - Add brackets to macros to avoid potential precedence issues.
        - Tidy up a null comparisom.
      * ad9523
        - Fix a typo in naming of variables.
      * adis16400
        - Combine trigger file into main code as no advantage in separate files.
          Rename core file to just adis16400.
        - Squash the header into the c file now there is only one file.
        - Generalize burst mode to support new variants.
      * ak8975
        - Local variable to improve readability around mount matrix support.
      * as3935
        - Avoid potential race by ensuring remove does exact opposite of
          probe rather than a slightly different order.
      * cross_ec
        - Drop some unnecessary includes.
        - Fix some warning and the slightly 'unusual' code.
        - Add some docs for non obvious function.
        - SPDX
      * hmc5843
        - Potential unhandled error case.
      * iio trigger core
        - Print an error if there is no available irq due to max consumers per
          trigger being set to low.
      * iio loop trigger
        - Drop an unlikely on IS_ERR as IS_ERR already has the annotation.
      * ingenic-adc
        - Drop a redundant dev_err call as devm_ioremap_resource reports the same
          internally.
      * lmp91000
        - Drop some unncessary parentheses and white space tidy up.
        - Invert and if statement to improve readability.
        - Fix a wrong error message.
      * lpc32xx
        - Header sorting + drop some unused ones.
      * mma8542
        - Mark a switch fallthrough.
      * mpu6050
        - Add a local variable to improve code readability around mount matrix
          support.
      * mxs-lradc-adc
        - Handle devm_iio_trigger_alloc failure.
      * sps30
        - Fix up a kernel version in the ABI docs.
      * srf04
        - DT binding doc converted to yaml.
      * ssp_sensors
        - Supress a clang build warning due to lack of visibility of conditional
          within a iio_push_to_buffers_with_timestamp.  (reasonable false warning!)
      * st_accel
        - Drop pointless less than 0 comparisom of unsigned int.
      * stm32-dfsdm
        - Improve accuracy of spi_master_frequency calculation.
        - Improve calculation fo sampling frequency.
        - Rework various internals to simplify adding triggered buffer support.
        - Claim direct mode to avoid racing around read_raw and being in buffered
          mode.
      * stmpe
        - Fix a clang false positive warning.
      * ti-ads7950
        - Use local lock rather than using the core mlock when not locking around
          the device mode.
      * vcnl4000
        - Use word writes instead of byte writes.  It seems byte writes are fine
          for some parts (undocument) but not others that the driver will shortly
          support.
      
      Other
      * mailmap
        - Add email address change for Sean Nyekjaer.  Update in relevant drivers
      
      * tag 'iio-for-5.2a-2' of git://git.kernel.org/pub/scm/linux/kernel/git/jic23/iio: (129 commits)
        iio: ad_sigma_delta: Properly handle SPI bus locking vs CS assertion
        iio: adc: stm32-dfsdm: add PM support
        iio: adc: stm32-dfsdm: improve sampling frequency accuracy
        staging: iio: adc: ad7280a: Tab alignment
        MAINTAINERS: Fix the link to ad7606 dt-bindings
        iio:temperature: Add MAX31856 thermocouple support
        iio:temperature:max31856:Add device tree bind info
        dt-bindings: iio/temperature: Add thermocouple types (and doc)
        devantech-srf04.yaml: transform DT binding to YAML
        iio: frequency: ad9523: Fix typo in ad9523_platform_data
        iio: Make possible to include driver.h first
        dt-bindings: iio: add Bosch BMG160 gyroscope sensor
        iio: gyro: bmg160: add device tree compatibility table
        staging: iio: adc: ad7192: Use read_avail for available attributes
        dt-bindings: iio: light: add vcnl4040 devicetree bindings
        iio: light: vcnl4000 add support for the VCNL4040 proximity and light sensor
        dt-bindings: iio: light: add vcnl4000 devicetree bindings
        iio: light: vcnl4000 add devicetree hooks
        iio: light: vcnl4000 use word writes instead of byte writes
        iio: adc: stm32-dfsdm: claim direct mode for raw read and settings
        ...
      932f9892
    • Lars-Peter Clausen's avatar
      iio: ad_sigma_delta: Properly handle SPI bus locking vs CS assertion · df1d80ae
      Lars-Peter Clausen authored
      For devices from the SigmaDelta family we need to keep CS low when doing a
      conversion, since the device will use the MISO line as a interrupt to
      indicate that the conversion is complete.
      
      This is why the driver locks the SPI bus and when the SPI bus is locked
      keeps as long as a conversion is going on. The current implementation gets
      one small detail wrong though. CS is only de-asserted after the SPI bus is
      unlocked. This means it is possible for a different SPI device on the same
      bus to send a message which would be wrongfully be addressed to the
      SigmaDelta device as well. Make sure that the last SPI transfer that is
      done while holding the SPI bus lock de-asserts the CS signal.
      Signed-off-by: default avatarLars-Peter Clausen <lars@metafoo.de>
      Signed-off-by: default avatarAlexandru Ardelean <Alexandru.Ardelean@analog.com>
      Signed-off-by: default avatarJonathan Cameron <Jonathan.Cameron@huawei.com>
      df1d80ae
    • Fabrice Gasnier's avatar
      iio: adc: stm32-dfsdm: add PM support · 6ec417d2
      Fabrice Gasnier authored
      Add PM and runtime PM support to STM32 DFSDM drivers:
      - stm32-dfsdm-core: manage clocks.
      - stm32-dfsdm-adc: restore channels configuration upon resume. Also stop
        restart everything in case of buffer mode.
      Signed-off-by: default avatarFabrice Gasnier <fabrice.gasnier@st.com>
      Signed-off-by: default avatarJonathan Cameron <Jonathan.Cameron@huawei.com>
      6ec417d2
    • Fabrice Gasnier's avatar
      iio: adc: stm32-dfsdm: improve sampling frequency accuracy · 9f57110d
      Fabrice Gasnier authored
      The sample frequency is driven using the oversampling ratio depending
      on the SPI bus frequency.
      Currently, oversampling ratio is computed by an entire division:
      - spi_freq / sample_freq. This may result in inaccurate value.
      Using DIV_ROUND_CLOSEST improves resulting sample frequency, which is
      useful for audio that requests fixed rates (such as: 8, 16 or 32 kHz).
      BTW, introduce new routine to re-factor sample frequency setting, and
      move frequency accuracy message from warning to debug level.
      Signed-off-by: default avatarFabrice Gasnier <fabrice.gasnier@st.com>
      Signed-off-by: default avatarJonathan Cameron <Jonathan.Cameron@huawei.com>
      9f57110d