Second set of new drivers, functionality and cleanup for IIO in the 4.3 cycle (+ some fixes)
Jonathan Cameron
maintainerThe 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 supportLinus 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
Quoted 7 lines · Jonathan Cameron
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.gittags/iio-for-4.3b-2
I had to do a merge conflict resolution in one driver, it was pretty trivial, but if you could check I got it right, that would be great.
thanks,
greg k-h
Jonathan Cameron
maintainerQuoted 7 lines · Greg KH
Quoted 6 lines · Jonathan Cameron
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:
Quoted 8 lines
Quoted 1 line
git://git.kernel.org/pub/scm/linux/kernel/git/jic23/iio.gittags/iio-for-4.3b-2I had to do a merge conflict resolution in one driver, it was pretty trivial, but if you could check I got it right, that would be great.
thanks,
greg k-h
I guess that would be the mlx90614.c (mentioned in the reply to the previous pull request so knew that one was coming!)
Looks fine to me.
Thanks
Jonathan