Skip to contentSkip to conversation

Second set of new drivers, functionality and cleanup for IIO in the 4.3 cycle (+ some fixes)

GIT PULL Jonathan Cameron 1 participant 1 message Aug 12, 2015 IIO

lore
Share & tools
lore

Jonathan Cameron

author maintainer
#0 lore raw

The following changes since commit b8d1f261fe7e4967593a5637d62991b6197a03f8:

staging: dgap: remove duplicate code (2015-07-16 10:19:55 -0700)

are available in the git repository at:

git://git.kernel.org/pub/scm/linux/kernel/git/jic23/iio.git tags/iio-for-4.3b-2

for you to fetch changes up to 41d903c00051d8f31c98a8136edbac67e6f8688f:

iio: event: Remove negative error code from iio_event_poll (2015-08-12 19:26:39 +0100)

----------------------------------------------------------------
Second set of new device support, features and cleanup for the 4.3 cycle. Take 2 also includes a fix set that was too late for the 4.2 cycle.

As we had a lot of tools and docs work in this set, I have broken those out into their own categories in this description.

Fixes from the pull request '4th set of IIO fixes for the 4.2 cycle'.
* Poll functions for both event chardev and the buffer one were returning negative error codes (via a positive value).
* A recent change to lsiio adding some error handling that was wrong and stopped the tool working.
* bmg160 was missing some dependencies in Kconfig
* berlin2-adc had a misshandled register (wrote a value rather than a bitmap)

New device support
* TI opt3001 light sensor
* TXC PA12 ALS and proximity sensor.
* mcp3301 ADC support (in mcp320x driver)
* ST lsm303agr accelerometer and magnetometer drivers (plus some st-sensors common support to allow different WHOAMI register addresses, devices with fixed scale and allow interrupt equiped magnetometers).
* ADIS16305, ADIS16367, ADIS16445IMUs (in the adis16400 driver)
* ADIS16266 gyro (in the adis16260 driver)
* ADIS16137 gyro (in the adis16136 driver)

New functionality
* mmc35240 DT bindings.
* Inverse unit conversion macros to aid handing of values written to sysfs attributes.

Core cleanup
* Forward declaration of struct iio_trigger to avoid a compile warning.

Driver cleanup / fixes
* mxs-lradc
- Clarify which parts are supported.
- Fix spelling erorrs.
- Missing/extra includes
- reorder includes
- add datasheet name listings for all usable channels (to allow them to be bound by name from consumer drivers)
* acpi-als - add some function prefixes as per general iio style.
* bmc150_magn - replace a magic value with the existing define.
* vf610 - determine possible sample frequencies taking into account the electrical characteristics (defining a minimum sample time)
* dht11
- whitespace
- additional docs
- avoid mulitple assignments in one line
- Use the new funciton ktime_get_resolution_ns to cleanup a nasty trick previously used for timing.
* Fix all drivers that consider 0 a valid IRQ for historical reasons.
* Export I2C module alias info where previously missing (to allow autoprobing)
* Export OF module alias info where previously missing.
* mmc35240 - switch some variables into arrays to improve readability.
* mlx90614 - define some magic numbers for readability.
* bmc150_magn
- expand area locked by a mutex to cover all the use of the

    data->buffer.

- use descriptive naming for a mask instead of a magic value.
* berin2-adc
- pass up an error code rather that a generic error
- constify the iio_chan_spec
- some other little tidy ups.
* stk8312
- fix a dependency on triggered buffers in kconfig
- add a check for invalid attribute values
- improve error handling by returning error codes where possible and return immediately where relevant
- rework macro defs to use GENMASK etc
- change some variable types to reduce unnecessary casting
- clean up code style
- drop a local buffer copy for bulk reads and use the one in data->buffer instead.
* adis16400 - the adis16448 gyroscope scale was wrong.
* adis16480 - some more wrong scales for various parts.
* adis16300 - has an undocumented product id and serial number registers so use them.
* iio_simple_dummy - fix some wrong code indentation.
* bmc150-accel - use the chip ID to detect the chip present rather than verifying the expected part was there. This was in response to a wrong ACPI entry on the WinBook TW100.
* mma8452
- fix _get_hp_filter_index
- drop a double include
- pass up an error code rather than rewriting it
- range check input values to attribute writes
- register defs tidy up using GENMASK and reordering them to be easier to follow.
- various coding style cleanups
- put the Kconfig entry in the write place (alphabetically).

Tools related
* Tools cleanup - drop an explicity NULL comparison, some unnecessary braces, use the ARRAY_SIZE macro, send error messages to stderr instead of dropping them in the middle of normal output.
* Fix tools to allow that scale and offset attributes are optional.
* More tools fixes including allowing true 32bit data (previously an overflow prevented more than 31bits)
* Drop a stray header guard that ended up in a c file.
* Make calc_digits static as it isn't exported or in the header.
* Set ci_array pointer to NULL after free as a protection against non safe usage of the tools core code. Also convert a double pointer to a single one as the extra level of indirection was unnecessary.

Docs
* DocBook introduction by Daniel Baluta. Glad we are beginning to draw together some more introductory docs to suplement the various tools / examples.
* Drop bytes_per_datum sysfs attribute docs as it no longer exists.
* A whole load of missing / fixing of kernel-doc for the core of IIO.
* Document the trigger name sysfs attribute in the ABI docs.
* Minor typos in the ABI docs related to power down modes.

----------------------------------------------------------------
Adriana Reus (1):
iio: light: Add support for TXC PA12 als and proximity sensor

Andrea Galbusera (1):

      iio: adc: mcp320x: Add support for mcp3301

Andreas Dannenberg (1):
iio: light: add support for TI's opt3001 light sensor

Bastien Nocera (2):
iio:accel:bmc150-accel: Move bmc150_accel_chip_init() iio:accel:bmc150-accel: Use the chip ID to detect sensor variant

Cristina Opriceana (14):
iio: Documentation: Remove bytes_per_datum attribute
tools: iio: Remove explicit NULL comparison
tools: iio: Remove unnecessary braces
tools: iio: Add ARRAY_SIZE macro
tools: iio: Send error messages to stderr
iio: core: Add function params for kernel docs
iio: buffer: Fix kernel docs warnings
iio: event: Add missing fields in kernel docs
include: linux: iio: Fix function parameter name in kernel doc
include: linux: iio: Add missing kernel doc field
iio: Documentation: Add trigger name attribute ABI documentation
iio: trigger: Add missing fields in kernel docs
iio: industrialio-buffer: Fix iio_buffer_poll return value
iio: event: Remove negative error code from iio_event_poll

Crt Mori (1):
iio: mlx90614: Define magic numbers

Daniel Baluta (1):
DocBook: Add initial documentation for IIO

Giuseppe Barba (5):
iio: st-sensors: add configuration for WhoAmI address
iio: st-sensors: add support for single full scale device
iio: st_magn: Add irq trigger handling
iio: st-accel: add support for lsm303agr accelerometer
iio: st-magn: add support for lsm303agr magnetometer

Harald Geyer (4):
iio: dht11: whitespace changes to make checkpatch.pl --strict happy
iio: dht11: add comment to make checkpatch.pl --strict happy
iio: dht11: avoid multiple assignments to make checkpatch.pl --strict happy
iio: dht11: Use new function ktime_get_resolution_ns()

Hartmut Knaack (23):
iio:light:acpi-als: add missing prefixes iio:magnetometer:bmc150_magn: replace magic value iio:magnetometer:bmc150_magn: expand mutex in trigger_handler iio:magnetometer:bmc150_magn: use descriptive name for mask iio:adc:berlin2-adc: pass up real error code iio:adc:berlin2-adc: constify iio_chan_spec iio:adc:berlin2-adc: use short operator format iio:adc:berlin2-adc: use channel-array size directly iio:accel:stk8312: add triggered buffer dependency iio:accel:stk8312: check for invalid value iio:accel:stk8312: improve error handling iio:accel:stk8312: rework macro definitions iio:accel:stk8312: use appropriate variable types iio:accel:stk8312: code style cleanup iio:accel:stk8312: drop local buffer iio:accel:mma8452: fix _get_hp_filter_index iio:accel:mma8452: drop double include iio:accel:mma8452: pass up real error code iio:accel:mma8452: check values to be written iio:accel:mma8452: rework register definitions iio:accel:mma8452: coding style cleanup iio:accel:mma8452: reorder Kconfig entry iio:adc:berlin2-adc: Fix register definition

Irina Tirdea (4):
iio: magn: bmc150_magn: add locking comment for runtime resume
iio: magn: bmc150_magn: do not set power state twice when setting trigger state
tools: iio: fix mask for 32 bit sensor data
tools: iio: print error message when buffer enable fails

Jandy Gou (2):
iio: magnetometer: mmc35240: Add DT binding
iio: magnetometer: mmc35240: Add DT binding doc

Javier Martinez Canillas (2):
iio: Export I2C module alias information in missing drivers
iio: Export OF module alias information in missing drivers

Joo Aun Saw (5):
tools: iio: make scale and offset files optional
tools: iio: iio_utils: remove unnecessary define guard
tools: iio: iio_utils: Make calc_digits static
tools: iio: Set caller's ci_array pointer to NULL after free
tools: iio: remove unnecessary double pointer

Lars Svensson (1):
staging: iio_simple_dummy: Fix indentation errors

Lars-Peter Clausen (9):

      iio: adis16400: Fix adis16448 gyroscope scale
      iio: Add inverse unit conversion macros
      iio: adis16480: Fix scale factors
      iio: adis16400: adis16300 has product ID and serial number
      iio: adis16400: Add ADIS16305 support
      iio: adis16260: Add ADIS16266 support
      iio: adis16400: Add ADIS16367 support
      iio: adis16400: Add ADIS16445 support
      iio: adis16136: Add ADIS16137 support

Linus Walleij (1):
iio: lsiio: fix error code handling error

Markus Pargmann (1):
iio: bmg160: IIO_BUFFER and IIO_TRIGGERED_BUFFER are required

Octavian Purdila (1):

      iio: fix drivers that consider 0 as a valid IRQ in client->irq

Pengyu Ma (1):
iio: declare struct to fix warning

Sanchayan Maity (1):
iio: adc: vf610: Determine sampling frequencies by using minimum sample time

Stefan Wahren (6):
iio: mxs-lradc: clarify supported devices
iio: mxs-lradc: fix some spelling errors
iio: mxs-lradc: add missing include
iio: mxs-lradc: remove unnecessary header includes
iio: mxs-lradc: reorder header includes
iio: mxs-lradc: add datasheet name for every usable channel

Teodora Baluta (1):
iio: mmc35240: minor change to improve code readibility

Vladimir Barinov (1):
iio: Fix typos in ABI documentation

 Documentation/ABI/testing/sysfs-bus-iio            |  13 +-
 .../ABI/testing/sysfs-bus-iio-trigger-sysfs        |   9 +
 Documentation/DocBook/Makefile                     |   2 +-
 Documentation/DocBook/iio.tmpl                     | 697 ++++++++++++++++++
 .../devicetree/bindings/iio/adc/mcp320x.txt        |   1 +
 .../devicetree/bindings/iio/adc/vf610-adc.txt      |   5 +
 .../bindings/iio/magnetometer/mmc35240.txt         |  13 +
 .../devicetree/bindings/iio/st-sensors.txt         |   2 +
 .../bindings/staging/iio/adc/mxs-lradc.txt         |   2 +-
 drivers/iio/accel/Kconfig                          |  26 +-
 drivers/iio/accel/bmc150-accel.c                   | 156 ++--
 drivers/iio/accel/kxcjk-1013.c                     |   2 +-
 drivers/iio/accel/mma8452.c                        | 217 +++---
 drivers/iio/accel/mma9553.c                        |   2 +-
 drivers/iio/accel/st_accel.h                       |   1 +
 drivers/iio/accel/st_accel_core.c                  |   6 +
 drivers/iio/accel/st_accel_i2c.c                   |   5 +
 drivers/iio/accel/st_accel_spi.c                   |   1 +
 drivers/iio/accel/stk8312.c                        | 107 +--
 drivers/iio/accel/stk8ba50.c                       |   1 +
 drivers/iio/adc/Kconfig                            |   4 +-
 drivers/iio/adc/berlin2-adc.c                      |  22 +-
 drivers/iio/adc/mcp320x.c                          |  16 +-
 drivers/iio/adc/vf610_adc.c                        |  79 +-
 drivers/iio/common/st_sensors/st_sensors_core.c    |  52 +-
 drivers/iio/gyro/Kconfig                           |   3 +-
 drivers/iio/gyro/adis16136.c                       |   6 +
 drivers/iio/gyro/adis16260.c                       | 137 +++-
 drivers/iio/gyro/st_gyro_core.c                    |   3 +
 drivers/iio/humidity/dht11.c                       |  65 +-
 drivers/iio/imu/adis16400_core.c                   |  46 +-
 drivers/iio/imu/adis16480.c                        |  39 +-
 drivers/iio/imu/kmx61.c                            |   8 +-
 drivers/iio/industrialio-buffer.c                  |  17 +-
 drivers/iio/industrialio-core.c                    |  25 +-
 drivers/iio/industrialio-event.c                   |   8 +-
 drivers/iio/industrialio-trigger.c                 |  27 +-
 drivers/iio/light/Kconfig                          |  21 +
 drivers/iio/light/Makefile                         |   2 +
 drivers/iio/light/acpi-als.c                       |  18 +-
 drivers/iio/light/cm32181.c                        |   1 +
 drivers/iio/light/cm3232.c                         |   1 +
 drivers/iio/light/cm36651.c                        |   1 +
 drivers/iio/light/gp2ap020a00f.c                   |   1 +
 drivers/iio/light/opt3001.c                        | 804 +++++++++++++++++++++
 drivers/iio/light/pa12203001.c                     | 483 +++++++++++++
 drivers/iio/light/stk3310.c                        |   1 +
 drivers/iio/magnetometer/bmc150_magn.c             |  24 +-
 drivers/iio/magnetometer/mmc35240.c                |  33 +-
 drivers/iio/magnetometer/st_magn.h                 |   3 +
 drivers/iio/magnetometer/st_magn_buffer.c          |   7 +
 drivers/iio/magnetometer/st_magn_core.c            |  98 ++-
 drivers/iio/magnetometer/st_magn_i2c.c             |   5 +
 drivers/iio/magnetometer/st_magn_spi.c             |   1 +
 drivers/iio/pressure/st_pressure_core.c            |   3 +
 drivers/iio/temperature/mlx90614.c                 |  20 +-
 drivers/staging/iio/adc/mxs-lradc.c                | 122 ++--
 drivers/staging/iio/iio_simple_dummy_events.c      |   4 +-
 include/linux/iio/common/st_sensors.h              |   2 +
 include/linux/iio/consumer.h                       |   2 +-
 include/linux/iio/iio.h                            |  17 +
 include/linux/iio/sysfs.h                          |   3 +-
 include/linux/iio/trigger.h                        |   3 +
 tools/iio/generic_buffer.c                         |  48 +-
 tools/iio/iio_event_monitor.c                      |  17 +-
 tools/iio/iio_utils.c                              | 136 ++--
 tools/iio/iio_utils.h                              |   4 +-
 tools/iio/lsiio.c                                  |  16 +-
 68 files changed, 3150 insertions(+), 576 deletions(-)
 create mode 100644 Documentation/DocBook/iio.tmpl
 create mode 100644 Documentation/devicetree/bindings/iio/magnetometer/mmc35240.txt
 create mode 100644 drivers/iio/light/opt3001.c
 create mode 100644 drivers/iio/light/pa12203001.c