• Greg Kroah-Hartman's avatar
    Merge tag 'iio-for-5.14a' of... · 6771fb0b
    Greg Kroah-Hartman authored
    Merge tag 'iio-for-5.14a' of https://git.kernel.org/pub/scm/linux/kernel/git/jic23/iio into staging-next
    
    Jonathan writes:
    
    1st set of new IIO/counter device support, features and cleanup for 5.14
    
    There are a couple of large cleanup sets in here alongside a number of new
    drivers.
    
    Note an immutable branch merged to add a stub for i2c_verify_client()
    as needed to avoid a build issue in the fxls8962af driver as a result of a
    workaround for a device errata that only applies when i2c interface is used.
    
    Counters
    ========
    
    New device support
    * intel,quadrature encoder peripheral found on Elkhart Lake platforms.
      - New driver.
    
    IIO
    ===
    
    New device support
    * amstaos,tsl2591 ambient light sensor.
      - New driver + bindings
      - Follow up fix to ensure some local variables are suitable for error
        handling.
    * fsl,fxls8962af + fsl,fxls8964af accelerometers
      - New driver + bindings
      - Includes an errata work around that cause a build bot failure fixed
        by adding a stub to i2c.
    * kionix,kxcjk-1013
      - Add support for KX023-1025 device.  Mostly a different register map
        that needed to be supported.
    * murata,sca3300 accelerometer
      - New driver + bindings
    * st,lsm9ds0 IMU
      - Rework of st,sensors driver to cleanly support this new glue driver
        that enables the two parts of the LSM9DS0.
    * ti,tsc2046 touchscreen controller ADC.
      - New driver. Intent here is to use this with existing IIO consumer
        drivers such as resistive-adc-touch.
      - Follow up fix to avoid an issue with unsigned subtraction in error
        check.
    * ti,tmp117 digital temperature sensor
      - New driver + bindings
    
    Features
    * adi,ad5755
      - Add missing dt-binding doc
    * adi,ad7298
      - Add ACPI ID used on Intel Galileo Gen 1 boards.
      - Add missing dt-binding doc
    * adi,ad7476
      - Add missing dt-binding doc
    * adi,ad7746
      - Add missing dt-binding doc for this driver that will hopefully move out
        of staging shortly. Update staging driver to use the binding instead of
        platform data.
    * adi,adis16201 + adis16209
      - Add missing dt-binding doc
    * adi,adis16480
      - Support burst mode for adis16495 and adis16497 parts.
    * bosch,bma220
      - Add missing dt-binding doc
    * fsl,mma7455
      - Add missing dt-binding doc
    * iio-rescale
      - Support handling of processed channels from provider.  Some ADCs
        require (typically non linear) calibration functions to be applied,
        and so provide only IIO_CHAN_INFO_PROCESSED read back. They can be
        used as providers to the iio-rescale driver which needs to handle them
        somewhat differently from IIO_CHAN_INFO_RAW
    * sensiron,sps30
      - Support the serial interface.  Note this required significant
        refactoring of existing driver.
    * st,st-sensors
      - Add mount matrix support for normal dt-binding whilst continuing to
        support the odd ACPI approach for accelerometers.
    * ti,dac082s085 + similar
      - Add missing dt-binding doc
    * trivial-devices - add entries for
      - memsic,mx4005, memsic,mx6255 and memsic,mxc6655
      - sensortek,stk8312 and sensortek,stk8ba50
    
    Cleanup / minor fixes
    * core
      - Use devm_add_action_or_reset() to replace boilerplate in several
        driver and core IIO devm_* functions.
      - Fix an error path issue introduced by above, that could return an
        error pointer rather than the expected null from dev_iio_device_alloc()
      - Move more IIO internals related fields from struct iio_dev to
        struct iio_dev_opaque.
      - Drop unused final update of in_loc in demux setup.
    * Docs
      - Move some docs from driver specific to core dos to avoid replication
        of names which the documentation builder does not allow.
        Note this means adding a few device specific notes to the general docs
        to cover the more unusual uses of the ABI.
      - ABI: Move old buffer/* and scan_elements/* docs to obsolete as now we
        have the bufferX/* variant.  Not we are not getting rid of these
        interfaces, just encouraging new code to use the new interface.
    * IIO wide:
      - Tidy up new cases of dev.parent etc being set in drivers as the core
        now does it.
      - Fix more cases of possible miss-aligned buffers when passed to
        iio_push_to_buffers_with_timestamp().  Note we only have one known
        instance of anyone seeing this bug actually happening, so this has been
        a low priority cleanup effort for several cycles.
      - sysfs_emit() used in more drivers.
      - Runtime pm tidy up and use of pm_runtime_resume_and_get()
      - Buffer alignment fixes as iio_push_to_buffers_with_timestamp requires
        that the timestamp when inserted by naturally aligned + consumers can
        assume that all fields are naturally aligned. Part of a long running
        effort, with at least 2 more series to come tackling additional
        variants.
      - Stop specifying "mount-matrix" property name in every lookup of the
        mount matrix from firmware by hard coding it in the core.
    * adi,ad7476
      - Handle the variety of different regulators used by the parts supported
        by this driver (came up in dt-binding review)
    * adi,ad7746
      - Trivial drop of if (ret) return ret; return 0; pattern
      - Tidy up comments
      - Pull capdac setup out to own function.
    * adi,ad7766
      - Trivial drop of if (ret) return ret; return 0; pattern
    * adi,adis
      - Avoid returning error codes in interrupt handlers.
      - Handle a failure in spi_write in the trigger handler.
      - Rework to add updating of device page after changing it.
      - Don't push data to IIO buffers when read failed.
      - Add configuration of burst max speed to core avoid handling this in
        each driver.
      - Use the adis_dev_lock() helper in adis16260 and adis16136 drivers.
      - Excessive includes cleanup via include-what-you-use static checker
        after zero day highlighted that these needed updating.
    * afe
      - Amend binding to add #io-channel-cells, thus allowing this IIO
        consumer to also be an IIO provider.
    * aosong,am2315
      - Drop ACPI id. Unlikely this one is in the wild and it isn't valid
        ACPI naming.
    * bosch,bma180
      - Adding missing bandwidth settings (500, 1000 Hz)
    * bosch,bme680
      - Drop ACPI id. Unlikely this one is in the wild and it isn't valid
        ACPI naming.
    * ep93xx_adc,
      - Drop a redundant error print.
    * maxim,max118
      - Convert remainder of probe() to devm_ managed functions.
      - Avoid some repeated jumping back and forth between iio_dev and
        spi structures.
    * maxim,max11100
      - Use get_unaligned_be16() instead of open coding.
      - Convert remainder of probe() to devm_ managed functions.
    * samsung,exynos_adc
      - Unused error value dropped.
    * sensiron,sgp30
      - Drop use of %hx in favor of %x and letting the normal type conversion
        work.
    * sensortek,stk8312
      - Add lowercase device id and note uppercase version deprecated.
      - Drop ACPI id. Unlikely this one is in the wild and it isn't valid
        ACPI naming.
    * sprx,sc72xx_adc
      - add MODULE_DEVICE_TABLE
    * st,lsm6dsx
      - Fix docs of valid ODRs
    * st,sensors
      - dt-binding rework.  Two efforts on this crossed in a previous cycle
        so this update cherry picks the best of the two yaml conversions.
      - Don't copy the channel spec array as now ext_info is no longer modified.
    * st,stm32-adc
      - tidy up some docs that were marked as kernel-doc but aren't.
    * ti,adc081c, ti,adc0832, ti,adc108s102 and ti,adc161s626
      - Convert remainder of probe() functions to devm_ managed functions
        to simplify error handing and remove paths.
    
    * tag 'iio-for-5.14a' of https://git.kernel.org/pub/scm/linux/kernel/git/jic23/iio: (171 commits)
      i2c: core: Add stub for i2c_verify_client() if !CONFIG_I2C
      iio: adis: Cleanout unused headers
      iio: accel: bma180: Add missing 500 Hz / 1000 Hz bandwidth
      counter: Add support for Intel Quadrature Encoder Peripheral
      staging: iio: cdc: ad7746: extract capac setup to own function
      staging: iio: cdc: ad7746: clean up probe return
      staging: iio: cdc: ad7746: remove ordinary comments
      iio: adc: ti-adc161s626: Use devm managed functions for all of probe.
      iio: adc: ti-adc108s102: Use devm managed functions for all of probe()
      iio: adc: ti-adc0832: Use devm managed functions for all of probe()
      iio: adc: ti-adc081c: Use devm managed functions for all of probe()
      iio: adc: max1118: Avoid jumping back and forth between spi and iio structures
      iio: adc: max1118: Use devm_ managed functions for all of probe
      iio: adc: max11100: Use devm_ functions for rest of probe()
      iio: adc: max11100: Use get_unaligned_be16() rather than opencoding.
      iio: chemical: sgp30: Drop use of %hx in format string.
      iio: gyro: st_gyro: Support mount matrix
      iio: magnetometer: st_magn: Support mount matrix
      iio: accel: st_sensors: Stop copying channels
      iio: accel: st_sensors: Support generic mounting matrix
      ...
    6771fb0b
fxas21002c_core.c 25.8 KB