Markezana, William [Mon, 6 Jun 2016 08:12:11 +0000 (08:12 +0000)]
iio: ms5637 Add Measurement Specialties explicit MS5805 and MS5837 support
Signed-off-by: William Markezana <william.markezana@meas-spec.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
Martin Kepplinger [Fri, 3 Jun 2016 12:51:52 +0000 (14:51 +0200)]
iio: mma8452: update Freescale company information
NXP took over Freescale, so add NXP to the driver descriptions
Signed-off-by: Martin Kepplinger <martink@posteo.de>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
Martin Kepplinger [Fri, 3 Jun 2016 12:51:51 +0000 (14:51 +0200)]
iio: mma8452: update device description in header comments
Signed-off-by: Martin Kepplinger <martink@posteo.de>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
Martin Kepplinger [Fri, 3 Jun 2016 12:51:50 +0000 (14:51 +0200)]
iio: mma8452: update contact information for Martin Kepplinger
Signed-off-by: Martin Kepplinger <martink@posteo.de>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
Alison Schofield [Wed, 8 Jun 2016 00:19:05 +0000 (17:19 -0700)]
iio: light: gp2ap020a00f: use iio helper function to lock direct mode
Replace the code that guarantees the device stays in direct mode
with iio_device_claim_direct_mode() which does same. Includes a
tiny bit of refactoring (single case -> if) and simplified return
flow.
Also prevents a theoretical race condition by effectively taking the lock
a little earlier than before.
Signed-off-by: Alison Schofield <amsfield22@gmail.com>
Cc: Daniel Baluta <daniel.baluta@gmail.com>
Acked-by: Jacek Anaszewski <j.anaszewski@samsung.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
Alison Schofield [Tue, 7 Jun 2016 05:08:33 +0000 (22:08 -0700)]
iio: light: isl29125: use iio helper function to guarantee direct mode
Replace the code that guarantees the device stays in direct mode
with iio_device_claim_direct_mode() which does same. This allows
removal of an unused lock in the device private global data.
Signed-off-by: Alison Schofield <amsfield22@gmail.com>
Cc: Daniel Baluta <daniel.baluta@gmail.com>
Acked-by: Peter Meerwald-Stadler <pmeerw@pmeerw.net>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
Alison Schofield [Tue, 7 Jun 2016 05:10:23 +0000 (22:10 -0700)]
iio: light: tcs3472: use iio helper function to guarantee direct mode
Replace the code that guarantees the device stays in direct mode
with iio_device_claim_direct_mode() which does same. This allows
removal of an unused lock in the device private global data.
Also prevents a previous race condition when a buffer is enabled whilst
a raw read is going on.
Signed-off-by: Alison Schofield <amsfield22@gmail.com>
Cc: Daniel Baluta <daniel.baluta@gmail.com>
Acked-by: Peter Meerwald-Stadler <pmeerw@pmeerw.net>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
Alison Schofield [Tue, 7 Jun 2016 05:09:21 +0000 (22:09 -0700)]
iio: light: tcs3414: use iio helper function to guarantee direct mode
Replace the code that guarantees the device stays in direct mode
with iio_device_claim_direct_mode() which does same. This allows
removal of an unused lock in the device private global data.
Also prevents a possible race around a buffer being enabled whilst
a read is going on.
Signed-off-by: Alison Schofield <amsfield22@gmail.com>
Cc: Daniel Baluta <daniel.baluta@gmail.com>
Acked-by: Peter Meerwald-Stadler <pmeerw@pmeerw.net>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
Matt Ranostay [Wed, 8 Jun 2016 04:18:04 +0000 (21:18 -0700)]
iio: proximity: lidar: switch to iio_device_claim_*_mode helpers
Switch from using indio_dev->mlock to the iio_device_claim_*_mode
helper functions.
Signed-off-by: Matt Ranostay <mranostay@gmail.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
Jonathan Cameron [Sun, 6 Mar 2016 20:02:56 +0000 (20:02 +0000)]
iio:trigger: Experimental kthread tight loop trigger (thread only)
This patch is in response to that of
Gregor Boirie <gregor.boirie@parrot.com>
who proposed using a tight kthread within a device driver (be it with the
support factored out into a helper library) in order to basically spin as
fast as possible.
It is meant as a talking point rather than a formal proposal of the code
(though we are heading towards that I think).
Also gives people some working code to mess around with.
I proposed that this could be done with a trigger with a few constraints
and this is the proof (be it ugly) of that.
There are some constraints though, some of which we would want to relax
if this were to move forward.
* Will only run the thread part of the registered pollfunc. This is to
avoid the overhead of jumping in and out of interrupt context. Is the
overhead significant? Not certain but feels like it should be!
* This limitation precludes any device that 'must' do some work in
interrupt context. However, that is true of few if any drivers and
I suspect that any that do will be restricted to using triggers they
provide themselves. Usually we have a top half mainly to grab a
timestamp as soon after the dataready type signal as possible.
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
Acked-by: Daniel Baluta <daniel.baluta@intel.com>
Andrew F. Davis [Tue, 31 May 2016 17:00:07 +0000 (12:00 -0500)]
iio: adc: ti_am335x_adc: use SIMPLE_DEV_PM_OPS helper macro
Replace ifdefs with SIMPLE_DEV_PM_OPS helper macro.
Signed-off-by: Andrew F. Davis <afd@ti.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
Andrew F. Davis [Tue, 31 May 2016 17:00:12 +0000 (12:00 -0500)]
iio: adc: ti_am335x_adc: use variable names for sizeof() operator
Fix the code formatting to use the kernel preferred style
of using the actual variables to determize the size using
the sizeof() operator.
Signed-off-by: Andrew F. Davis <afd@ti.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
Alison Schofield [Wed, 1 Jun 2016 04:35:49 +0000 (21:35 -0700)]
iio: adc: ad7791: claim direct mode when writing frequency
Driver was checking for direct mode and trying to lock it, but
left a gap where mode could change before the desired operation.
Use iio_device_claim_direct_mode() to guarantee device stays in
direct mode.
Refactor function to clarify look-up followed by lock sequence.
Signed-off-by: Alison Schofield <amsfield22@gmail.com>
Cc: Daniel Baluta <daniel.baluta@gmail.com>
Acked-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
Alison Schofield [Thu, 2 Jun 2016 04:28:14 +0000 (21:28 -0700)]
iio: adc: ad7793: claim direct mode when writing frequency
Driver was checking for direct mode and trying to lock it, but
left a gap where mode could change before the desired operation.
Use iio_device_claim_direct_mode() to guarantee device stays in
direct mode.
Refactor function to clarify look-up followed by lock sequence.
Signed-off-by: Alison Schofield <amsfield22@gmail.com>
Cc: Daniel Baluta <daniel.baluta@gmail.com>
Acked-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
Crestez Dan Leonard [Mon, 23 May 2016 18:39:58 +0000 (21:39 +0300)]
iio: iio_generic_buffer: Add --trigger-num option
Signed-off-by: Crestez Dan Leonard <leonard.crestez@intel.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
Crestez Dan Leonard [Mon, 23 May 2016 18:39:57 +0000 (21:39 +0300)]
iio: iio_generic_buffer: Add --device-num option
This makes it possible to distinguish between iio devices with the same
name.
Signed-off-by: Crestez Dan Leonard <leonard.crestez@intel.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
Crestez Dan Leonard [Mon, 23 May 2016 18:39:56 +0000 (21:39 +0300)]
iio: iio_generic_buffer: Cleanup when receiving signals
This will clean (disable buffer/trigger/channels) when doing
something like a CTRL-C. Otherwise restarting generic_buffer requires a
manual echo 0 > buffer/enable
This also cleanup up all the code freeing string buffers at
the end of main. We initialize all pointers to NULL so that cleanup can
all be done under a single error label.
Signed-off-by: Crestez Dan Leonard <leonard.crestez@intel.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
Matt Ranostay [Tue, 24 May 2016 06:27:30 +0000 (23:27 -0700)]
iio: proximity: as3935: remove redundant MODULE_ALIAS
MODULE_ALIAS isn't needed since the module name is the same as the alias
defined.
Signed-off-by: Matt Ranostay <mranostay@gmail.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
Daniel Baluta [Tue, 24 May 2016 12:42:28 +0000 (15:42 +0300)]
iio: magnetometer: bmc150: Document Bosch supported chips
bmc150 driver supports also BMC156 and BMM150 chips.
Signed-off-by: Daniel Baluta <daniel.baluta@intel.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
Matt Ranostay [Wed, 25 May 2016 04:29:20 +0000 (21:29 -0700)]
iio: chemical: atlas-ph-sensor: add EC feature
Signed-off-by: Matt Ranostay <mranostay@gmail.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
Matt Ranostay [Wed, 25 May 2016 04:29:19 +0000 (21:29 -0700)]
iio: electricalconductivity: add IIO_ELECTRICALCONDUCTIVITY type
Signed-off-by: Matt Ranostay <mranostay@gmail.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
Matt Ranostay [Wed, 25 May 2016 04:29:18 +0000 (21:29 -0700)]
iio: chemical: atlas-ph-sensor: reorg driver to allow multiple chips
Signed-off-by: Matt Ranostay <mranostay@gmail.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
Daniel Baluta [Tue, 24 May 2016 15:03:55 +0000 (18:03 +0300)]
tools: iio: Rename generic_buffer to iio_generic_buffer
This makes it clear that generic_buffer is an IIO tool
and also complies with filename conventions in tools/iio.
Signed-off-by: Daniel Baluta <daniel.baluta@intel.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
Peter Robinson [Wed, 25 May 2016 13:31:13 +0000 (14:31 +0100)]
tools: iio: Add ability to install/uninstall
Add options to the Makefile for install/uninstall similar to other tools.
Signed-off-by: Peter Robinson <pbrobinson@gmail.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
Alison Schofield [Tue, 24 May 2016 19:20:24 +0000 (12:20 -0700)]
iio: adc: ad799x: use iio helper function to guarantee direct mode
Replace the code that guarantees the device stays in direct mode
with iio_device_claim_direct_mode() which does same.
Signed-off-by: Alison Schofield <amsfield22@gmail.com>
Acked-by: Daniel Baluta <daniel.baluta@gmail.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
Alison Schofield [Tue, 24 May 2016 19:19:49 +0000 (12:19 -0700)]
iio: adc: ad7923: use iio helper function to guarantee direct mode
Replace the code that guarantees the device stays in direct mode
with iio_device_claim_direct_mode() which does same.
Signed-off-by: Alison Schofield <amsfield22@gmail.com>
Acked-by: Daniel Baluta <daniel.baluta@gmail.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
Alison Schofield [Tue, 24 May 2016 19:18:43 +0000 (12:18 -0700)]
iio: adc: ad7887: use iio helper function to guarantee direct mode
Replace the code that guarantees the device stays in direct mode
with iio_device_claim_direct_mode() which does same.
Signed-off-by: Alison Schofield <amsfield22@gmail.com>
Acked-by: Daniel Baluta <daniel.baluta@gmail.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
Alison Schofield [Tue, 24 May 2016 19:18:06 +0000 (12:18 -0700)]
iio: adc: ad7476: use iio helper function to guarantee direct mode
Replace the code that guarantees the device stays in direct mode
with iio_device_claim_direct_mode() which does same.
Signed-off-by: Alison Schofield <amsfield22@gmail.com>
Acked-by: Daniel Baluta <daniel.baluta@gmail.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
Alison Schofield [Tue, 24 May 2016 19:16:23 +0000 (12:16 -0700)]
iio: adc: ad7266: claim direct mode during sensor read
Driver was checking for direct mode but not locking it down.
Use iio_device_claim_direct_mode() to guarantee device stays
in direct mode.
Signed-off-by: Alison Schofield <amsfield22@gmail.com>
Acked-by: Daniel Baluta <daniel.baluta@gmail.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
Gregor Boirie [Tue, 19 Apr 2016 09:18:40 +0000 (11:18 +0200)]
iio:st_sensors: fix power regulator usage
Ensure failure to enable power regulators is properly handled.
Signed-off-by: Gregor Boirie <gregor.boirie@parrot.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
Gregor Boirie [Tue, 19 Apr 2016 09:18:39 +0000 (11:18 +0200)]
iio:st_sensors: emulate SMBus block read if needed
Use SMBus "block read" protocol only when supported by adapter.
Signed-off-by: Gregor Boirie <gregor.boirie@parrot.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
Gregor Boirie [Tue, 19 Apr 2016 09:18:38 +0000 (11:18 +0200)]
iio:st_sensors: unexport st_sensors_get_buffer_element
Remove st_sensors_get_buffer_element symbol export since not explicitly
used outside of st_sensors driver.
Signed-off-by: Gregor Boirie <gregor.boirie@parrot.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
Gregor Boirie [Tue, 19 Apr 2016 09:18:32 +0000 (11:18 +0200)]
iio:st_pressure:initial lps22hb sensor support
Initial support for ST LPS22HB pressure sensor. Datasheet:
http://www2.st.com/resource/en/datasheet/lps22hb.pdf
Features:
* pressure data and timestamping channels
* sampling frequency selection
* interrupt based trigger
* over I2C or SPI
Signed-off-by: Gregor Boirie <gregor.boirie@parrot.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
Jonathan Cameron [Sat, 14 May 2016 17:42:08 +0000 (18:42 +0100)]
iio: triggers: Make trigger ops structure explicitly non optional.
This structure has not been optional for a long time (if ever) but the
code implies that it is. As we then use it later in a fashion that would
crash if it was in fact NULL, it's inconsistent so fix it up by removing
unnecessary checks.
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
Matt Ranostay [Tue, 17 May 2016 22:02:03 +0000 (15:02 -0700)]
iio: adc: ti-ads1015: add datasheet names
Add datasheet names for ADC channels to allow iio consumers access.
Signed-off-by: Matt Ranostay <matt.ranostay@intel.com>
Acked-by: Daniel Baluta <daniel.baluta@intel.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
Geert Uytterhoeven [Sun, 22 May 2016 09:06:22 +0000 (11:06 +0200)]
MAINTAINERS: Add file patterns for staging iio device tree bindings
Submitters of device tree binding documentation may forget to CC
the subsystem maintainer if this is missing.
Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
Cc: Jonathan Cameron <jic23@kernel.org>
Cc: linux-iio@vger.kernel.org
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
Geert Uytterhoeven [Sun, 22 May 2016 09:05:57 +0000 (11:05 +0200)]
MAINTAINERS: Add file patterns for iio device tree bindings
Submitters of device tree binding documentation may forget to CC
the subsystem maintainer if this is missing.
Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
Cc: Jonathan Cameron <jic23@kernel.org>
Cc: Hartmut Knaack <knaack.h@gmx.de>
Cc: Lars-Peter Clausen <lars@metafoo.de>
Cc: Peter Meerwald-Stadler <pmeerw@pmeerw.net>
Cc: linux-iio@vger.kernel.org
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
Matt Ranostay [Thu, 5 May 2016 05:57:30 +0000 (22:57 -0700)]
iio: pressure: bmp280: add humidity support
Enable humidity support for the BME280 part
Signed-off-by: Matt Ranostay <matt.ranostay@intel.com>
Acked-by: Vlad Dogaru <vlad.dogaru@intel.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
Alison Schofield [Sun, 15 May 2016 18:37:27 +0000 (11:37 -0700)]
iio: light: jsa1212: remove unneeded i2c check functionality test
This driver does not call i2c_smbus_read|write_byte_data(),
so remove the corresponding functionality test. It uses regmap
to handle byte transfers transparently.
Signed-off-by: Alison Schofield <amsfield22@gmail.com>
Reviewed-by:Kuppuswamy Sathyanarayanan <sathyanarayanan.kuppuswamy@linux.intel.com>
Reviewed-by: Matt Ranostay <matt.ranostay@intel.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
Quentin Schulz [Wed, 18 May 2016 15:16:18 +0000 (17:16 +0200)]
iio: adc: nau7802: Expose possible gains in sysfs
The Nuvoton NAU7802 ADC is able to adjust its gain but prior knowledge of
its possible values was required to adjust it. Users had to guess the
possible gain values based on the ADC datasheet or on this driver's code.
This exposes the possible values in the in_voltage_scale_available file of
each nau7802 ADC device. The gain is set for the whole ADC and is therefore
not configurable by channel. Thus, there exists only one
in_voltage_scale_available file for each nau7802 ADC device even if it has
two separate channels.
Signed-off-by: Quentin Schulz <quentin.schulz@free-electrons.com>
Acked-by: Alexandre Belloni <alexandre.belloni@free-electrons.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
Cristina Moraru [Thu, 19 May 2016 05:55:46 +0000 (08:55 +0300)]
iio: max5487: Add support for Maxim digital potentiometers
Add implementation for Maxim MAX5487, MAX5488, MAX5489
digital potentiometers.
Datasheet:
http://datasheets.maximintegrated.com/en/ds/MAX5487-MAX5489.pdf
Signed-off-by: Cristina Moraru <cristina.moraru09@gmail.com>
CC: Daniel Baluta <daniel.baluta@intel.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
Javier Martinez Canillas [Tue, 17 May 2016 16:25:37 +0000 (12:25 -0400)]
iio: Export I2C module alias information
The I2C drivers have an i2c_device_id array but that information isn't
exported to the modules using the MODULE_DEVICE_TABLE() macro. So the
modules autoloading won't work if the I2C device is registered using
OF or legacy board files due missing alias information in the modules.
The issue was found using Kieran Bingham's coccinelle semantic patch:
https://lkml.org/lkml/2016/5/10/520
Signed-off-by: Javier Martinez Canillas <javier@osg.samsung.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
Tiberiu Breana [Mon, 16 May 2016 11:58:23 +0000 (14:58 +0300)]
iio: accel: Add triggered buffer support for BMA220
Signed-off-by: Tiberiu Breana <tiberiu.a.breana@intel.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
Matt Ranostay [Mon, 16 May 2016 05:18:46 +0000 (22:18 -0700)]
iio: adc: ti-ads1015: add support for ADS1115 part
TI ADS1115 is a 16-bit resolution ADC that is register map
compatible with the ADS1015 device.
Signed-off-by: Matt Ranostay <matt.ranostay@intel.com>
Acked-by: Daniel Baluta <daniel.baluta@intel.com>
Acked-by: Crt Mori <cmo@melexis.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
Daniel Baluta [Tue, 26 Apr 2016 12:39:58 +0000 (15:39 +0300)]
iio: magn: Add support for BMM150 magnetometer
BMM150 is register compatible with magnetometer part of
BMC156.
Datasheet is at:
http://www.mouser.com/ds/2/783/BST-BMM150-DS001-01-786480.pdf
Signed-off-by: Daniel Baluta <daniel.baluta@intel.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
Tiberiu Breana [Thu, 5 May 2016 15:48:55 +0000 (18:48 +0300)]
iio: accel: Add support for Bosch BMA220
This commit adds basic support for the Bosch Sensortec BMA220
digital triaxial acceleration sensor.
The device datasheet can be found here:
http://www.mouser.com/pdfdocs/BSTBMA220DS00308.PDF
Includes:
- raw readings
- ACPI detection
- power management
Signed-off-by: Tiberiu Breana <tiberiu.a.breana@intel.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
Matt Ranostay [Thu, 12 May 2016 04:47:48 +0000 (21:47 -0700)]
iio: potentiometer: tpl0102: remove unneeded i2c check functionality test
Actually I2C_FUNC_SMBUS_WORD_DATA isn't need for this device, and regmap
handles all single byte reads transparently.
Signed-off-by: Matt Ranostay <mranostay@gmail.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
Martin Kepplinger [Mon, 25 Apr 2016 12:08:25 +0000 (14:08 +0200)]
iio: mma8452: add support for oversampling ratio
This adds the following sysfs files according to the iio ABI:
-rw-r--r-- 4096 in_accel_oversampling_ratio
-r--r--r-- 4096 in_accel_oversampling_ratio_available
Internally, the device knows about 4 different power modes that differ
in oversampling ratio (and power consumption). We just show the user
what oversampling ratio(s) is/are available, depending on the current
frequency.
The referenced table in the datasheets makes it easier to understand.
Signed-off-by: Martin Kepplinger <martink@posteo.de>
Signed-off-by: Christoph Muellner <christoph.muellner@theobroma-systems.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
Daniel Baluta [Mon, 25 Apr 2016 13:15:53 +0000 (16:15 +0300)]
Documentation: iio: Add IIO software devices docs
Signed-off-by: Daniel Baluta <daniel.baluta@intel.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
Daniel Baluta [Mon, 25 Apr 2016 13:15:52 +0000 (16:15 +0300)]
iio: dummy: Convert IIO dummy to configfs
We register a new device type named "dummy", this will create a
configfs entry under:
* /config/iio/devices/dummy.
Creating dummy devices is now as simple as:
$ mkdir /config/iio/devices/dummy/my_dummy_device
Signed-off-by: Daniel Baluta <daniel.baluta@intel.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
Daniel Baluta [Mon, 25 Apr 2016 13:15:51 +0000 (16:15 +0300)]
iio: Add support for creating IIO devices via configfs
This is similar with support for creating triggers via configfs.
Devices will be hosted under:
* /config/iio/devices
We allow users to register "device types" under:
* /config/iio/devices/<device_types>/
Signed-off-by: Daniel Baluta <daniel.baluta@intel.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
Andrew F. Davis [Sun, 1 May 2016 20:37:03 +0000 (15:37 -0500)]
iio: health/
afe4404: ENSEPGAIN is part of CONTROL2 register
Rename this definition, no functional changes.
Signed-off-by: Andrew F. Davis <afd@ti.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
Andrew F. Davis [Sun, 1 May 2016 20:37:02 +0000 (15:37 -0500)]
iio: health/afe440x: Remove unused definitions
These definitions are not currently used and if the functionality
they represent is needed the values should be added back to a table
for easy userspace use.
Signed-off-by: Andrew F. Davis <afd@ti.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
Andrew F. Davis [Sun, 1 May 2016 20:37:01 +0000 (15:37 -0500)]
iio: health/afe440x: Match LED currents to stages
The current channel number for the LEDs should match the stage
number that they are active during, fix this here.
Signed-off-by: Andrew F. Davis <afd@ti.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
Andrew F. Davis [Sun, 1 May 2016 20:37:00 +0000 (15:37 -0500)]
iio: health/afe440x: Make gain settings a modifier for the stages
Currently the TIA gain settings are exported to userspace as sysfs
entries that do not clearly represent their internal relation to the
sampling stages. The gain settings are enabled on a per-stage basis,
this can be seen in figure 24 of the current
AFE4404 datasheet.
These gain settings should therefore be tied to the channels that are
read during these stages. Make this change here.
Signed-off-by: Andrew F. Davis <afd@ti.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
Andrew F. Davis [Sun, 1 May 2016 20:36:59 +0000 (15:36 -0500)]
iio: health/afe440x: Use regmap fields
These drivers can use regmap fields to access fields in registers, this
allows us to remove some macros/defines and simplify code, do this here.
Signed-off-by: Andrew F. Davis <afd@ti.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
Andrew F. Davis [Sun, 1 May 2016 20:36:58 +0000 (15:36 -0500)]
iio: health/afe440x: Remove channel names
These AFEs have 4 ADC mesuring stages (called LED2, ALED2, LED1, and
ALED1 in the datasheet), we map these as channels, these stages can serve
different purposes depending on the application. For instance the
AFE4404
has an additional LED (LED3), this LED can be timed to be active during
stage 2 (or anystage, but the datasheet describes this case and the name
of the stage reflects this use). This ability is used further in upcoming
parts that tie the front-end gain and the LED timings together. For these
reasons we remove explicit naming the channels.
Without channel names it is best that the index numbers are in order to
match the stage number, reorder the channel numbers.
Signed-off-by: Andrew F. Davis <afd@ti.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
Andrew F. Davis [Sun, 1 May 2016 20:36:57 +0000 (15:36 -0500)]
iio: health/
afe4404: Remove LED3 input channel
Input channel LED3 is only an alias for stage ALED2, this virtual channel
does nothing for us, remove this channel.
Signed-off-by: Andrew F. Davis <afd@ti.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
Andrew F. Davis [Sun, 1 May 2016 20:36:56 +0000 (15:36 -0500)]
iio: health/afe440x: Remove unneeded offset handling
No channel in the
afe4403 driver has IIO_CHAN_INFO_OFFSET set so
remove the handlers for this.
Signed-off-by: Andrew F. Davis <afd@ti.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
Andrew F. Davis [Sun, 1 May 2016 20:36:55 +0000 (15:36 -0500)]
iio: health/afe440x: Fix scan_index assignment
The LED channels are not scannable and so scan_index should
be negative, fix this here.
Signed-off-by: Andrew F. Davis <afd@ti.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
Andrew F. Davis [Sun, 1 May 2016 20:36:54 +0000 (15:36 -0500)]
iio: health/afe440x: Always use separate gain values
Locking the two gain stages to the same setting adds no value for us,
so initialize them as unlocked and remove the sysfs for unlocking them.
This also allows us to greatly simplify showing and setting the gain
registers.
Signed-off-by: Andrew F. Davis <afd@ti.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
Andrew F. Davis [Sun, 1 May 2016 20:36:53 +0000 (15:36 -0500)]
iio: health/afe440x: Remove unneeded initializers
The drivers set some register values during initialization that can be
set at runtime, these defaults were used in testing but are not
necessary, remove these.
Signed-off-by: Andrew F. Davis <afd@ti.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
Andrew F. Davis [Sun, 1 May 2016 20:36:52 +0000 (15:36 -0500)]
iio: health/afe440x: Remove of_match_ptr and ifdefs
The drivers DT tables are not built-in when OF is not enabled, this does
not save us enough to justify ugly ifdefs. Clean this up.
Signed-off-by: Andrew F. Davis <afd@ti.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
Andrew F. Davis [Sun, 1 May 2016 20:36:51 +0000 (15:36 -0500)]
iio: health/afe440x: Fix kernel-doc format
Fix kernel-doc formatting for structs, and while we are making little
fixes, clarify the module description and update the copywrite.
Signed-off-by: Andrew F. Davis <afd@ti.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
Daniel Baluta [Fri, 29 Apr 2016 11:42:35 +0000 (14:42 +0300)]
imu: bmi160: Add avail frequency and scale attributes
Signed-off-by: Daniel Baluta <daniel.baluta@intel.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
Stefan Wahren [Sat, 23 Apr 2016 19:57:59 +0000 (19:57 +0000)]
iio: mxs-lradc: disable only masked channels in mxs_lradc_hw_stop
Disabling of the touchscreen IRQs should be done in
mxs_lradc_disable_ts. So disable only the masked virtual channels
in mxs_lradc_hw_stop and finally remove the unused function
mxs_lradc_irq_en_mask.
Signed-off-by: Stefan Wahren <stefan.wahren@i2se.com>
Reviewed-by: Marek Vasut <marex@denx.de>
Tested-by: Marek Vasut <marex@denx.de>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
Stefan Wahren [Sat, 23 Apr 2016 19:57:58 +0000 (19:57 +0000)]
iio: mxs-lradc: remove mxs_lradc_ts_unregister
After using devm_input_allocate_device for registration
the function mxs_lradc_ts_unregister isn't necessary anymore
since mxs_lradc_ts_close already does the job.
Signed-off-by: Stefan Wahren <stefan.wahren@i2se.com>
Suggested-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Acked-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
Stefan Wahren [Sat, 23 Apr 2016 19:57:57 +0000 (19:57 +0000)]
iio: mxs-lradc: simplify TS registration
This patch simplifies the TS registration of mxs-lradc by
using devm_input_allocate_device.
Signed-off-by: Stefan Wahren <stefan.wahren@i2se.com>
Reviewed-by: Marek Vasut <marex@denx.de>
Acked-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
Constantin Musca [Tue, 3 May 2016 12:05:45 +0000 (15:05 +0300)]
iio: accel: Add support for Freescale MMA7660FC
Minimal implementation of an IIO driver for the Freescale
MMA7660FC 3-axis accelerometer. Datasheet:
http://www.nxp.com/files/sensors/doc/data_sheet/MMA7660FC.pdf
Includes:
- ACPI support;
- read_raw for x,y,z axes;
- reading and setting the scale (range) parameter.
- power management
Signed-off-by: Constantin Musca <constantin.musca@intel.com>
Reviewed-by: Martin Klepplinger <martink@posteo.de>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
Crestez Dan Leonard [Fri, 29 Apr 2016 19:05:32 +0000 (22:05 +0300)]
iio: ak8975: Support adapters limited to BYTE_DATA
The device has simple 8-bit registers but the driver incorrectly uses
block or word reads without checking functionality bits.
Fix by using i2c_smbus_read_i2c_block_data_or_emulated instead of
i2c_smbus_read_i2c_block_data or i2c_smbus_read_word_data. This will
check functionality bits and use the fastest available transfer method.
Signed-off-by: Crestez Dan Leonard <leonard.crestez@intel.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
Crestez Dan Leonard [Wed, 20 Apr 2016 13:15:13 +0000 (16:15 +0300)]
iio: inv_mpu6050: Add explicit support for MPU9150
This device is a package containing a MPU6050-like sensor and an AK8975
magnetometer. The magnetometer component is supported by the existing
ak8975 driver.
This patch also rephrases the Kconfig descriptions.
Signed-off-by: Crestez Dan Leonard <leonard.crestez@intel.com>
Acked-by: Ge Gao <ggao@invensense.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
Crestez Dan Leonard [Wed, 20 Apr 2016 13:15:12 +0000 (16:15 +0300)]
iio: inv_mpu6050: Add spi_device_id for INV_MPU6500
Signed-off-by: Crestez Dan Leonard <leonard.crestez@intel.com>
Acked-by: Ge Gao <ggao@invensense.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
Crestez Dan Leonard [Wed, 20 Apr 2016 13:15:11 +0000 (16:15 +0300)]
iio: inv_mpu6050: Check WHO_AM_I register on probe
This can be used to distinguish mpu6500. This is a warning rather than
an error because the differences are mostly irrelevant and it's nice to
avoid breaking users with slightly incorrect ACPI/DT.
Signed-off-by: Crestez Dan Leonard <leonard.crestez@intel.com>
Acked-by: Ge Gao <ggao@invensense.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
Crestez Dan Leonard [Wed, 20 Apr 2016 13:15:10 +0000 (16:15 +0300)]
iio: inv_mpu6050: Remove inv_mpu6050_hw.num_reg
This field was unused and incorrect for mpu6500.
Signed-off-by: Crestez Dan Leonard <leonard.crestez@intel.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
Crestez Dan Leonard [Wed, 20 Apr 2016 13:15:09 +0000 (16:15 +0300)]
iio: inv_mpu6050: Cleanup hw_info mapping
The hw_info array was indexed by enum inv_devices chip_type despite the
fact that the enumeration had more members than the array and was
ordered differently.
The patch cleans this up and adds explicit chip_types to i2c/spi/acpi
IDs. It also adds some stricter checks inside the driver core.
This happened to work so far because the differences between the
supported models are very minor.
Signed-off-by: Crestez Dan Leonard <leonard.crestez@intel.com>
Acked-by: Ge Gao <ggao@invensense.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
Akinobu Mita [Sun, 24 Apr 2016 13:52:11 +0000 (22:52 +0900)]
iio: pressure: bmp280: add ability to control oversampling rate
This adds ability to control the oversampling ratio of the temperature
and pressure measurement for both bmp180 and bmp280.
Signed-off-by: Akinobu Mita <akinobu.mita@gmail.com>
Acked-by: Vlad Dogaru <vlad.dogaru@intel.com>
Cc: Christoph Mair <christoph.mair@gmail.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
Akinobu Mita [Sun, 24 Apr 2016 13:52:10 +0000 (22:52 +0900)]
iio: pressure: bmp280: add support for BMP180
This adds support for the BMP180 to the bmp280 iio driver.
The BMP180 has already been supported by misc/bmp085 driver but it
doesn't use iio framework. This change adds the kconfig dependency
not to be selected both of them in order to avoid any issues.
Signed-off-by: Akinobu Mita <akinobu.mita@gmail.com>
Acked-by: Vlad Dogaru <vlad.dogaru@intel.com>
Cc: Christoph Mair <christoph.mair@gmail.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
Crestez Dan Leonard [Mon, 18 Apr 2016 14:31:57 +0000 (17:31 +0300)]
max44000: Initial triggered buffer support
Signed-off-by: Crestez Dan Leonard <leonard.crestez@intel.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
Crestez Dan Leonard [Mon, 18 Apr 2016 14:31:56 +0000 (17:31 +0300)]
max44000: Expose ambient sensor scaling
This patch exposes ALSTIM as illuminance_integration_time and ALSPGA as
illuminance_scale.
Changing ALSTIM also changes the number of bits available in the data
register. This is handled inside raw value reading because:
* It's very easy to shift a few bits
* It allows SCALE and INT_TIME to be completely independent controls
* Buffer support requires constant scan_type.realbits per-channel
Signed-off-by: Crestez Dan Leonard <leonard.crestez@intel.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
Crestez Dan Leonard [Mon, 18 Apr 2016 14:31:55 +0000 (17:31 +0300)]
max44000: Support controlling LED current output
This is exposed as an output channel with "led" as an extend_name.
Other sensors also have support for controlling an external LED. It's
not clear that simply exposing an undecorated output channel is the
correct approach.
Signed-off-by: Crestez Dan Leonard <leonard.crestez@intel.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
Crestez Dan Leonard [Mon, 18 Apr 2016 14:31:54 +0000 (17:31 +0300)]
max44000: Initial support for proximity reading
The proximity sensor relies on sending pulses to an external IR led and
it is disabled by default on powerup. The driver will enable it with a
default power setting.
Signed-off-by: Crestez Dan Leonard <leonard.crestez@intel.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
Crestez Dan Leonard [Mon, 18 Apr 2016 14:31:53 +0000 (17:31 +0300)]
max44000: Initial support
This just adds support for reporting illuminance with default settings.
Important default registers are written on probe because the device
otherwise lacks a reset function.
Signed-off-by: Crestez Dan Leonard <leonard.crestez@intel.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
Tiberiu Breana [Mon, 18 Apr 2016 14:50:44 +0000 (17:50 +0300)]
iio: humidity: Add triggered buffer support for AM2315
Signed-off-by: Tiberiu Breana <tiberiu.a.breana@intel.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
Tiberiu Breana [Mon, 18 Apr 2016 14:50:43 +0000 (17:50 +0300)]
iio: humidity: Add support for AM2315
Add basic support for the Aosong AM2315 relative humidity
and ambient temperature sensor.
Includes support for raw readings and ACPI detection.
Datasheet:
http://www.aosong.com/asp_bin/Products/en/AM2315.pdf
Signed-off-by: Tiberiu Breana <tiberiu.a.breana@intel.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
Marek Vasut [Mon, 18 Apr 2016 14:05:24 +0000 (16:05 +0200)]
iio: pressure: hp03: Add Hope RF HP03 sensor support
Add support for HopeRF pressure and temperature sensor.
This device uses two fixed I2C addresses, one for storing
calibration coefficients and another for accessing the ADC.
Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Matt Ranostay <mranostay@gmail.com>
Cc: Jonathan Cameron <jic23@kernel.org>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
Crestez Dan Leonard [Tue, 19 Apr 2016 12:02:11 +0000 (15:02 +0300)]
iio: st_gyro: Add lsm9ds0-gyro support
This device has an identical interface to other supported sensors and the patch
only adds IDs.
Signed-off-by: Crestez Dan Leonard <leonard.crestez@intel.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
Dan Carpenter [Fri, 22 Apr 2016 10:04:14 +0000 (13:04 +0300)]
iio: light: apds9960: silence uninitialized variable warning
It causes a static checker warning if we use "buf" on the failure path
so move that inside the if statement.
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
Gregor Boirie [Wed, 20 Apr 2016 17:23:45 +0000 (19:23 +0200)]
iio:imu:mpu6050: enhance mounting matrix support
Add a new rotation matrix sysfs attribute compliant with IIO core
mounting matrix API.
Matrix is retrieved from "in_anglvel_mount_matrix" and
"in_accel_mount_matrix" sysfs attributes. It is declared into mpu6050 DTS
entry as a "mount-matrix" property.
Old interface is kept for backward userspace compatibility and may be
retrieved from legacy platform_data mechanism only.
Signed-off-by: Gregor Boirie <gregor.boirie@parrot.com>
Acked-by: Rob Herring <robh@kernel.org>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
Gregor Boirie [Wed, 20 Apr 2016 17:23:44 +0000 (19:23 +0200)]
iio:ak8975: add mounting matrix support
Expose a rotation matrix to indicate userspace the chip orientation with
respect to the overall hardware system.
Matrix is retrieved from "in_mount_matrix". It is declared into ak8975 DTS
entry as a "mount-matrix" property.
Signed-off-by: Gregor Boirie <gregor.boirie@parrot.com>
Acked-by: Rob Herring <robh@kernel.org>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
Gregor Boirie [Wed, 20 Apr 2016 17:23:43 +0000 (19:23 +0200)]
iio:core: mounting matrix support
Expose a rotation matrix to indicate userspace the chip placement with
respect to the overall hardware system. This is needed to adjust
coordinates sampled from a sensor chip when its position deviates from the
main hardware system.
Final coordinates computation is delegated to userspace since:
* computation may involve floating point arithmetics ;
* it allows an application to combine adjustments with arbitrary
transformations.
This 3 dimentional space rotation matrix is expressed as 3x3 array of
strings to support floating point numbers. It may be retrieved from a
"[<dir>_][<type>_]mount_matrix" sysfs attribute file. It is declared into a
device / driver specific DTS property or platform data.
Signed-off-by: Gregor Boirie <gregor.boirie@parrot.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
Alison Schofield [Sun, 10 Apr 2016 19:08:14 +0000 (12:08 -0700)]
iio: gyro: bmg160: use regmap to retrieve struct device
Driver includes struct regmap and struct device in its global data.
Remove the struct device and use regmap API to retrieve device info.
Patch created using Coccinelle plus manual edits.
Signed-off-by: Alison Schofield <amsfield22@gmail.com>
Reviewed-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
Alison Schofield [Sun, 10 Apr 2016 19:05:13 +0000 (12:05 -0700)]
iio: accel: bmc150: use regmap to retrieve struct device
Driver includes struct regmap and struct device in its global data.
Remove the struct device and use regmap API to retrieve device info.
Patch created using Coccinelle plus manual edits.
Signed-off-by: Alison Schofield <amsfield22@gmail.com>
Reviewed-by: Irina Tirdea <irina.tirdea@intel.com>
Reviewed-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
Peter Meerwald-Stadler [Sun, 20 Mar 2016 15:20:24 +0000 (16:20 +0100)]
iio: Add Vishay VEML6070 UV A light sensor driver
ultraviolet (UV) light sensor with I2C interface with a peak
sensitivity at 355 nm
strangely, chip uses two addresses 0x38 and 0x39 for LSB and
MSB data, resp.
datasheet: http://www.vishay.com/docs/84277/veml6070.pdf
Signed-off-by: Peter Meerwald-Stadler <pmeerw@pmeerw.net>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
Laxman Dewangan [Wed, 6 Apr 2016 10:31:08 +0000 (16:01 +0530)]
iio: Add resource managed APIs devm_iio_channel_{get,release) in devres
Add following APIs in the list of managed resources of IIO:
devm_iio_channel_get()
devm_iio_channel_get_all()
devm_iio_channel_release()
devm_iio_channel_release_all()
Signed-off-by: Laxman Dewangan <ldewangan@nvidia.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
Laxman Dewangan [Wed, 6 Apr 2016 10:31:07 +0000 (16:01 +0530)]
iio: core: Add devm_ APIs for iio_channel_{get,release}_all
Some of kernel driver uses the IIO framework to get the sensor
value via ADC or IIO HW driver. The client driver get iio channel
by iio_channel_get_all() and release it by calling
iio_channel_release_all().
Add resource managed version (devm_*) of these APIs so that if client
calls the devm_iio_channel_get_all() then it need not to release it
explicitly, it can be done by managed device framework when driver
get un-binded.
This reduces the code in error path and also need of .remove callback in
some cases.
Signed-off-by: Laxman Dewangan <ldewangan@nvidia.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
Laxman Dewangan [Wed, 6 Apr 2016 10:31:06 +0000 (16:01 +0530)]
iio: core: Add devm_ APIs for iio_channel_{get,release}
Some of kernel driver uses the IIO framework to get the sensor
value via ADC or IIO HW driver. The client driver get iio channel
by iio_channel_get() and release it by calling iio_channel_release().
Add resource managed version (devm_*) of these APIs so that if client
calls the devm_iio_channel_get() then it need not to release it explicitly,
it can be done by managed device framework when driver get un-binded.
This reduces the code in error path and also need of .remove callback in
some cases.
Signed-off-by: Laxman Dewangan <ldewangan@nvidia.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
Linus Walleij [Thu, 14 Apr 2016 08:26:47 +0000 (10:26 +0200)]
iio: tools: generic_buffer: auto-enable channels
If no channels are enabled when we run generic_buffer on a
device, add a command-line option to just enable all of them,
run the sampling and disable them all again afterwards.
This is extremely useful when I'm low-level testing my
sensors with interrupts and triggers, sample session:
root@Ux500:/ lsiio
Device 000: lsm303dlh_accel
Device 001: lis331dl_accel
Device 002: l3g4200d
Device 003: lsm303dlh_magn
Device 004: lps001wp
Trigger 000: lsm303dlh_accel-trigger
Trigger 001: lis331dl_accel-trigger
Trigger 002: l3g4200d-trigger
root@Ux500:/ generic_buffer -a -c 10 -n l3g4200d
iio device number being used is 2
iio trigger number being used is 2
No channels are enabled, enabling all channels
Enabling: in_anglvel_x_en
Enabling: in_anglvel_y_en
Enabling: in_anglvel_z_en
Enabling: in_timestamp_en
/sys/bus/iio/devices/iio:device2 l3g4200d-trigger
-3.593664 -0.713133 4.870143
946684863662292480
3.225546 0.867357 -4.945878
946684863671875000
-0.676413 0.127296 0.106641
946684863681488037
-0.661113 0.110160 0.128826
946684863690673828
-0.664173 0.113067 0.123471
946684863700683593
-0.664938 0.109395 0.124848
946684863710144042
-0.664173 0.110619 0.130203
946684863719512939
-0.666162 0.111231 0.132651
946684863729125976
-0.668610 0.111690 0.130662
946684863738739013
-0.660501 0.110466 0.131733
946684863748565673
Disabling: in_anglvel_x_en
Disabling: in_anglvel_y_en
Disabling: in_anglvel_z_en
Disabling: in_timestamp_en
Pure awesomeness. If some channels have been enabled through
scripts or manual interaction, nothing happens.
Cc: Peter Meerwald-Stadler <pmeerw@pmeerw.net>
Acked-by: Daniel Baluta <daniel.baluta@intel.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
Linus Walleij [Thu, 14 Apr 2016 08:45:21 +0000 (10:45 +0200)]
iio: st_sensors: support open drain mode
Some types of ST Sensors can be connected to the same IRQ line
as other peripherals using open drain. Add a device tree binding
and a sensor data property to flip the right bit in the interrupt
control register to enable open drain mode on the INT line.
If the line is set to be open drain, also tag on IRQF_SHARED
to the IRQ flags when requesting the interrupt, as the whole
point of using open drain interrupt lines is to share them with
more than one peripheral (wire-or).
Cc: devicetree@vger.kernel.org
Cc: Giuseppe Barba <giuseppe.barba@st.com>
Cc: Denis Ciocca <denis.ciocca@st.com>
Acked-by: Rob Herring <rob@kernel.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
Linus Walleij [Thu, 24 Mar 2016 13:18:05 +0000 (14:18 +0100)]
iio: st_sensors: verify interrupt event to status
This makes all ST sensor drivers check that they actually have
new data available for the requested channel(s) before claiming
an IRQ, by reading the status register (which is conveniently
the same for all ST sensors) and check that the channel has new
data before proceeding to read it and fill the buffer.
This way sensors can share an interrupt line: it can be flaged
as shared and then the sensor that did not fire will return
NO_IRQ, and the sensor that fired will handle the IRQ and
return IRQ_HANDLED.
Cc: Giuseppe Barba <giuseppe.barba@st.com>
Cc: Denis Ciocca <denis.ciocca@st.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
Linus Walleij [Thu, 24 Mar 2016 13:18:04 +0000 (14:18 +0100)]
iio: st_sensors: read each channel individually
The current buffer read code tries to optimize reads from the
sensor data registers by issuing a single read operation across
all the indata registers.
This doesn't work: when the LIS331DL accelerometer sensor is
configured to open drain, active low interrupt mode, this will
just clear the XDA (X-axis data available) bit in the STATUS_REG
register (0x27), while YDA, ZDA and even ZYXDA remain set to 1,
and the internal logic of the sensor holds the DRDY (INT1) line
asserted (the value of the status register is 0xee).
If we instead issue one read operation per enabled channel
(X, Y, Z) things start working and we can use open drain and
active low interrupts.
Note that a backported patch fixing this issue will be heading
via the fixes branch but changes in this file already in staging-next
will make that patch 'look' rather different. The code in here
is the correct one when that clash hits.
Cc: Giuseppe Barba <giuseppe.barba@st.com>
Cc: Denis Ciocca <denis.ciocca@st.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>