09 Mar, 2020

23 commits


14 Feb, 2020

6 commits


22 Jan, 2020

1 commit


18 Jan, 2020

4 commits


14 Jan, 2020

2 commits

  • In a recent change to the SPI subsystem [1], a new `delay` struct was added
    to replace the `delay_usecs`. This change replaces the current `delay_usecs`
    with `delay` for this driver.

    The `spi_transfer_delay_exec()` function [in the SPI framework] makes sure
    that both `delay_usecs` & `delay` are used (in this order to preserve
    backwards compatibility).

    [1] commit bebcfd272df6485 ("spi: introduce `delay` field for
    `spi_transfer` + spi_transfer_delay_exec()")

    Signed-off-by: Alexandru Ardelean
    Signed-off-by: Jonathan Cameron

    Alexandru Ardelean
     
  • Add missing return value check in st_lsm6dsx_read_oneshot disabling the
    sensor. The issue is reported by coverity with the following error:

    Unchecked return value:
    If the function returns an error value, the error value may be mistaken
    for a normal value.

    Addresses-Coverity-ID: 1446733 ("Unchecked return value")
    Fixes: b5969abfa8b8 ("iio: imu: st_lsm6dsx: add motion events")
    Fixes: 290a6ce11d93 ("iio: imu: add support to lsm6dsx driver")
    Signed-off-by: Lorenzo Bianconi
    Signed-off-by: Jonathan Cameron

    Lorenzo Bianconi
     

13 Jan, 2020

1 commit

  • At the moment, attempting to probe a device with ST_LSM6DS3_ID
    (e.g. using the st,lsm6ds3 compatible) fails with:

    st_lsm6dsx_i2c 1-006b: unsupported whoami [69]

    ... even though 0x69 is the whoami listed for ST_LSM6DS3_ID.

    This happens because st_lsm6dsx_check_whoami() also attempts
    to match unspecified (zero-initialized) entries in the "id" array.
    ST_LSM6DS3_ID = 0 will therefore match any entry in
    st_lsm6dsx_sensor_settings (here: the first), because none of them
    actually have all 12 entries listed in the "id" array.

    Avoid this by additionally checking if "name" is set,
    which is only set for valid entries in the "id" array.

    Note: Although the problem was introduced earlier it did not surface until
    commit 52f4b1f19679 ("iio: imu: st_lsm6dsx: add support for accel/gyro unit of lsm9ds1")
    because ST_LSM6DS3_ID was the first entry in st_lsm6dsx_sensor_settings.

    Fixes: d068e4a0f921 ("iio: imu: st_lsm6dsx: add support to multiple devices with the same settings")
    Cc: # 5.4
    Acked-by: Lorenzo Bianconi
    Signed-off-by: Stephan Gerhold
    Signed-off-by: Jonathan Cameron
    Signed-off-by: Greg Kroah-Hartman

    Stephan Gerhold
     

12 Jan, 2020

2 commits

  • All timeouts are now handled by a dedicated timeout struct. This
    variable is no longer needed.

    Signed-off-by: Nuno Sá
    Signed-off-by: Alexandru Ardelean
    Signed-off-by: Jonathan Cameron

    Nuno Sá
     
  • The adis library only allows to define a `startup_delay` which for some
    devices is enough. However, other devices define different timeouts with
    significantly different timings which could lead to devices to not wait
    enough time or to wait a lot more than necessary (which is not
    efficient). This patch introduces a new timeout struct that must be
    passed into `adis_init()`. There are mainly, for now, three timeouts
    used. This is also an introductory patch with the goal of refactoring
    `adis_initial_startup()`. New driver's (eg: adis16480, adis16460) are
    replicating code for the device initial setup. With some changes (being
    this the first one) we can pass this to `adis_initial_startup()`.

    Signed-off-by: Nuno Sá
    Signed-off-by: Alexandru Ardelean
    Signed-off-by: Jonathan Cameron

    Nuno Sá
     

10 Jan, 2020

1 commit

  • …iio into staging-next

    Jonathan writes:

    First set of new device support, features and cleanups for IIO in the 5.6 cycle

    New device support

    * ad7091r5 ADC
    - New driver with follow up patch adding scale and vref support.
    - DT bindings
    * ad7923
    - Support for ad7908, ad7918 and ad7928 added to driver.
    * bma180
    - Support the BMA254 accelerometer. Required fairly substantial rework
    to allow for small differences between this an existing parts.
    * bma400 accelerometer
    - New driver with follow up patch for regulator support.
    - DT bindings.
    * asc dlhl60d
    - New driver support this range of pressure and temperature sensors.
    - DT bindings.
    * ltc2496 ADC
    - New driver to support this ADC.
    - Split the existing LTC2497 driver generic component out and reuse.
    - DT bindings.
    * parallax ping
    - New driver supporting ultrasonic and laser tof distance sensors.
    - Bindings for these sensors.

    New features

    * core
    - New char type for read_raw returns, used for thermocouple types.
    - Rename read_first_n callback to read. The reasons behind the original
    naming are lost to the mists of time.
    * ad799x
    - Allow pm_ops to disable device completely allowing regulator power down.
    * bma180
    - Enable basic regulator support.
    * dmaengine buffer
    - Report platform data alignment requirements via new ABI.
    * max31856
    - Add option to set mains filter rejection frequency and document
    new in_temp_filter_notch_center_frequency ABI.
    - Add support for configuring HW averaging (oversampling ratio)
    - Add runtime configuration of thermocouple type and document new ABI.
    * maxim-thermocouple
    - Add read only access to thermocouple type using new ABI, includes
    adding more specific compatibles to reflect which variant of the
    chip is being used.
    * mpu6050
    - Provide option to support the PMU9150 in package magnetometer directly
    rather than via auxiliary bus.
    * stm32_adc
    - Add overrun interrupt checks to detect if this happens.
    * st_lsm6dsx
    - Enable the sensor-hub support for lsm6dsm. Includes various reworks to
    allow this.

    Cleanups and minor fixes

    * Subsystem wide
    - Tidy up indentation in Kconfig and fix alphabetical order of AD7091R5.
    - Drop linux/gpio.h and linux/of_gpio.h from drivers that don't use them.
    * ad7266
    - Convert to GPIO descriptors.
    * ad7303
    - Avoid a dance with checking if the regulator is supplied by just
    using the optional request interface.
    * ad7887
    - Simplify channel specification assignment to enable adding more devices.
    * ad7923
    - Drop some unused and largely pointless defines of BOB_N==N variety.
    - Tidy up checkpatch warnings.
    - Add missing of_device_id table.
    * adf4350
    - Convert to GPIO descriptors.
    * ak8975
    - Convert to GPIO descriptors.
    * ADIS library and drivers
    - Expand scope of txrx_lock to cover all state and rename as state_lock
    - Add unlocked read / write to allow grouping of consecutive calls under
    single lock / unlock.
    - Add unlocked check_status, reset to allow grouping under single
    lock / unlock.
    - Remove remaining uses of core mlock for local state protection.
    mlock should never be used directly as it protects tightly defined
    core IIO device management state.
    * adis16240
    - Enforce only supported SPI mode on driver load + add DT binding doc.
    * atlas-ph-sensor
    - Rename to atlas-sensor given it now covers things beyond ph sensors.
    * bma180
    - Use local dev variable to tidy up code.
    - Use c99 style explicity .member assignment to make driver more readable.
    * bmp280
    - Drop ACPI support. No evidence this was used and appropriate ID is not
    registered.
    - Allow ACPI to bind device via PRP0001
    * dmaengine buffer
    - Use dma_request_chan instead of dma_request_slave_channel_reason as that
    ABI is going away.
    - Add module info to avoid tainting the kernel.
    * hts221
    - Avoid magic number defines when only used to fill structure elements
    that are self describing.
    * lm3533
    - Drop a stray semicolon.
    * max9611
    - Cleanup enum handling to be more resilient to future changes.
    * mpu6050
    - Delete MPU9150 from supported SPI devices as doesn't provide SPI.
    - Select I2C_MUX again after kbuild issue fixed elsewhere.
    * stm32-timer
    - Drop an unnecessary register update.
    * ssp_sensors
    - Convert to GPIO descriptors.
    * st_sensors
    - drop !CONFIG_ACPI defines as ACPI_PTR() will stop them being used
    anyway.
    - Make default platform data structures __maybe_unsued.
    - Fill in some missing kernel-doc function parameters.
    * st_lsm6dsx
    - white space fixes.
    - Mark some constants that aren't always used as __maybe_unused.
    - Drop of ID table guards as they just pervent use under ACPI.
    - Switch to device properties to allow ACPI usage.
    * st_uvis25
    - Drop acpi.h include as no ACPI APIs used.
    * ti-ads1015
    - Drop legacy platform data as no one seems to be using it.
    - Use the device property API instead of OF specific.
    * ti-ads7950
    - typo fix in error message.

    * tag 'iio-for-5.6a' of git://git.kernel.org/pub/scm/linux/kernel/git/jic23/iio: (99 commits)
    iio: accel: bma180: BMA254 support
    iio: pressure: bmp280: Allow device to be enumerated from ACPI
    iio: pressure: bmp280: Drop ACPI support
    dt-bindings: iio: adc: convert sd modulator to json-schema
    iio: buffer: rename 'read_first_n' callback to 'read'
    iio: buffer-dmaengine: Report buffer length requirements
    bindings: iio: pressure: Add documentation for dlh driver
    dt-bindings: Add asc vendor
    iio: pressure: Add driver for DLH pressure sensors
    iio: buffer-dmaengine: Add module information
    iio: accel: bma180: Use explicit member assignment
    iio: accel: bma180: Basic regulator support
    iio: accel: bma180: Add dev helper variable
    iio: imu: st_lsm6dsx: enable sensor-hub support for lsm6dsm
    iio: imu: st_lsm6dsx: rename st_lsm6dsx_shub_read_reg in st_lsm6dsx_shub_read_output
    iio: imu: st_lsm6dsx: check if shub_output reg is located in primary page
    iio: imu: st_lsm6dsx: check if pull_up is located in primary page
    iio: imu: st_lsm6dsx: check if master_enable is located in primary page
    iio: imu: st_lsm6dsx: export max num of slave devices in st_lsm6dsx_shub_settings
    iio: light: remove unneeded semicolon
    ...

    Greg Kroah-Hartman