GitHub/moto-9609/android_kernel_motorola_exynos9610.git
9 years agoiio: mma8452: Add highpass filter configuration.
Martin Fuzzey [Mon, 1 Jun 2015 13:39:56 +0000 (15:39 +0200)]
iio: mma8452: Add highpass filter configuration.

Allow the cutoff frequency of the high pass filter to be configured.

Signed-off-by: Martin Fuzzey <mfuzzey@parkeon.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
9 years agoiio: mma8452: Add support for transient event debouncing
Martin Fuzzey [Mon, 1 Jun 2015 13:39:54 +0000 (15:39 +0200)]
iio: mma8452: Add support for transient event debouncing

Allow the debouce counter for transient events to be configured
using the sysfs attribute events/in_accel_thresh_rising_period

Signed-off-by: Martin Fuzzey <mfuzzey@parkeon.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
9 years agoiio: mma8452: Basic support for transient events.
Martin Fuzzey [Mon, 1 Jun 2015 13:39:52 +0000 (15:39 +0200)]
iio: mma8452: Basic support for transient events.

The event is triggered when the highpass filtered absolute acceleration
exceeds the threshold.

Signed-off-by: Martin Fuzzey <mfuzzey@parkeon.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
9 years agoiio: magnetometer: mmc35240: Add compensation for raw values
Daniel Baluta [Fri, 5 Jun 2015 11:03:15 +0000 (14:03 +0300)]
iio: magnetometer: mmc35240: Add compensation for raw values

This patch adds compensation formula to raw readings, borrowed
from Memsic's input driver.

Signed-off-by: Daniel Baluta <daniel.baluta@intel.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
9 years agoiio: magnetometer: mmc35240: Fix sensitivity on z-axis
Daniel Baluta [Fri, 5 Jun 2015 11:03:14 +0000 (14:03 +0300)]
iio: magnetometer: mmc35240: Fix sensitivity on z-axis

Datasheet says (Page 2) that typical value for sensitivity
for 16 bits mode on Z-axis is 770. Anyhow, looking at the
input driver provided by Memsic the value for MMC35240 is
1024.

Also, testing shows that using 1024 for Z-axis senzitivity
offers better results.

Fixes: abeb6b1e7b ("iio: magnetometer: Add support for MEMSIC MMC35240")
Signed-off-by: Daniel Baluta <daniel.baluta@intel.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
9 years agoiio: magnetometer: mmc35240: Use a smaller sleep value
Daniel Baluta [Fri, 5 Jun 2015 11:03:13 +0000 (14:03 +0300)]
iio: magnetometer: mmc35240: Use a smaller sleep value

According to datasheet, Page 8, minimum wait time to complete
measurement is 10ms. Adjusting this value will increase the
userspace polling rate.

Fixes: abeb6b1e7b ("iio: magnetometer: Add support for MEMSIC MMC35240")
Signed-off-by: Daniel Baluta <daniel.baluta@intel.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
9 years agoiio: magnetometer: mmc35240: Fix broken processed value
Daniel Baluta [Fri, 5 Jun 2015 11:03:12 +0000 (14:03 +0300)]
iio: magnetometer: mmc35240: Fix broken processed value

The current computation for fractional part of the magnetic
field is broken. This patch fixes it by taking a different
approach. We expose the raw reading in milli Gauss (to avoid
rounding errors) with a scale of 0.001.

Thus the final computation is done in userspace where floating
point operation are more relaxed.

Fixes: abeb6b1e7b ("iio: magnetometer: Add support for MEMSIC MMC35240")
Signed-off-by: Daniel Baluta <daniel.baluta@intel.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
9 years agoiio: magnetometer: mmc35240: NULL terminate attribute array
Daniel Baluta [Fri, 5 Jun 2015 11:03:11 +0000 (14:03 +0300)]
iio: magnetometer: mmc35240: NULL terminate attribute array

This avoid nasty crashes when registering the IIO device.

Fixes: abeb6b1e7b ("iio: magnetometer: Add support for MEMSIC MMC35240")
Signed-off-by: Daniel Baluta <daniel.baluta@intel.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
9 years agoiio: magnetometer: mmc35240: i2c device name should be lower case
Daniel Baluta [Fri, 5 Jun 2015 11:03:10 +0000 (14:03 +0300)]
iio: magnetometer: mmc35240: i2c device name should be lower case

This is the standard convention for i2c device name and
also this is the name used in some Intel platforms DT
files.

Fixes: abeb6b1e7b ("iio: magnetometer: Add support for MEMSIC MMC35240")
Signed-off-by: Daniel Baluta <daniel.baluta@intel.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
9 years agoiio: light: signedness bug in stk3310_write_raw()
Dan Carpenter [Wed, 27 May 2015 08:24:25 +0000 (11:24 +0300)]
iio: light: signedness bug in stk3310_write_raw()

"index" needs to be signed for the error handling to work.

Fixes: be9e6229d676 ('iio: light: Add support for Sensortek STK3310')
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
9 years agoiio: magnetometer: correct a harmless off by one check
Dan Carpenter [Wed, 27 May 2015 08:20:52 +0000 (11:20 +0300)]
iio: magnetometer: correct a harmless off by one check

The line before limits i to 0-3 so the existing code works fine but the
check is still off by one and >= is intended instead of >.

Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Reviewed-by: Daniel Baluta <daniel.baluta@intel.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
9 years agoiio: Require strict scan mask matching in hardware mode
Lars-Peter Clausen [Fri, 29 May 2015 16:14:22 +0000 (18:14 +0200)]
iio: Require strict scan mask matching in hardware mode

In hardware mode we can not use the software demuxer, this means that the
selected scan mask needs to match one of the available scan masks exactly.

It also means that all attached buffers need to use the same scan mask.
Given that when operating in hardware mode there is typically only a single
buffer attached to the device this not an issue. Add a sanity check to make
sure that only a single buffer is attached in hardware mode nevertheless.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
9 years agoiio: Specify supported modes for buffers
Lars-Peter Clausen [Fri, 29 May 2015 16:14:21 +0000 (18:14 +0200)]
iio: Specify supported modes for buffers

For each buffer type specify the supported device modes for this buffer.
This allows us for devices which support multiple different operating modes
to pick the correct operating mode based on the modes supported by the
attached buffers.

It also prevents that buffers with conflicting modes are attached
to a device at the same time or that a buffer with a non-supported mode is
attached to a device (e.g. in-kernel callback buffer to a device only
supporting hardware mode).

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
9 years agoiio: Always compute masklength
Lars-Peter Clausen [Fri, 29 May 2015 16:14:20 +0000 (18:14 +0200)]
iio: Always compute masklength

Even if no userspace consumer buffer is attached to the IIO device at
registration we still need to compute the masklength, since it is possible
that a in-kernel consumer buffer is going to get attached to the device at
a later point.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
9 years agostaging: iio_simple_dummy: fix module_param type
Vladimirs Ambrosovs [Sat, 30 May 2015 08:20:17 +0000 (11:20 +0300)]
staging: iio_simple_dummy: fix module_param type

Fix the module_param "instances" type to uint, since the variable type
holding the value is unsigned.

Signed-off-by: Vladimirs Ambrosovs <rodriguez.twister@gmail.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
9 years agostaging: iio_simple_dummy: fix return types
Vladimirs Ambrosovs [Sat, 30 May 2015 08:20:16 +0000 (11:20 +0300)]
staging: iio_simple_dummy: fix return types

The functions iio_dummy_remove(), iio_simple_dummy_events_unregister() and
iio_dummy_evgen_release_irq() were changed to return void instead of int.

Signed-off-by: Vladimirs Ambrosovs <rodriguez.twister@gmail.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
9 years agostaging: iio_simple_dummy: fix init function
Vladimirs Ambrosovs [Sat, 30 May 2015 08:20:15 +0000 (11:20 +0300)]
staging: iio_simple_dummy: fix init function

This patch fixes the init function for the iio_simple_dummy driver.
The main issues were absence of kfree for the allocated array, and no
devices being removed in case the probe function fails, running in a loop.

Signed-off-by: Vladimirs Ambrosovs <rodriguez.twister@gmail.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
9 years agoiio: buffer: remove unneeded test
Laurent Navet [Sat, 30 May 2015 20:35:36 +0000 (22:35 +0200)]
iio: buffer: remove unneeded test

The same code is executed regardless ret value, so this test
can be removed.
Also fix coverity scan CID 1268786.

Signed-off-by: Laurent Navet <laurent.navet@gmail.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
9 years agotools:iio:iio_utils: pass strings as const
Hartmut Knaack [Sun, 31 May 2015 12:40:36 +0000 (14:40 +0200)]
tools:iio:iio_utils: pass strings as const

Mark strings, which are not supposed to be changed (basedir, filename,
value), as const in function parameters.

Signed-off-by: Hartmut Knaack <knaack.h@gmx.de>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
9 years agotools:iio: rework program parameters
Hartmut Knaack [Sun, 31 May 2015 12:40:22 +0000 (14:40 +0200)]
tools:iio: rework program parameters

In generic_buffer.c: sort program parameters alphabetically and provide
     usage information
In lsiio.c: drop unused parameters

Signed-off-by: Hartmut Knaack <knaack.h@gmx.de>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
9 years agotools:iio:iio_utils: initialize count during declaration
Hartmut Knaack [Sun, 31 May 2015 12:40:21 +0000 (14:40 +0200)]
tools:iio:iio_utils: initialize count during declaration

In build_channel_array(), count can be initialized already during variable
declaration.

Signed-off-by: Hartmut Knaack <knaack.h@gmx.de>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
9 years agotools:iio:iio_utils: move up reset of sysfsfp
Hartmut Knaack [Sun, 31 May 2015 12:40:20 +0000 (14:40 +0200)]
tools:iio:iio_utils: move up reset of sysfsfp

In iioutils_get_type() it is logically better fitting to have sysfsfp
assigned zero right after closing it.

Signed-off-by: Hartmut Knaack <knaack.h@gmx.de>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
9 years agotools:iio:iio_utils: refactor assignment of is_signed
Hartmut Knaack [Sun, 31 May 2015 12:40:19 +0000 (14:40 +0200)]
tools:iio:iio_utils: refactor assignment of is_signed

Change the assignment of *is_signed in iioutils_get_type() to a one-liner,
as already done with *be.

Signed-off-by: Hartmut Knaack <knaack.h@gmx.de>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
9 years agotools:iio:iio_event_monitor: refactor events output
Hartmut Knaack [Sun, 31 May 2015 12:40:18 +0000 (14:40 +0200)]
tools:iio:iio_event_monitor: refactor events output

Refactor the code in print_event() to reduce code duplication and better
reflect that the type is output unconditionally, as well as cascade the
dependency of the diff-channel. Saves a few lines of code, as well.

Signed-off-by: Hartmut Knaack <knaack.h@gmx.de>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
9 years agotools:iio: return values directly
Hartmut Knaack [Sun, 31 May 2015 12:40:17 +0000 (14:40 +0200)]
tools:iio: return values directly

Return directly, if no common cleanup is required.

Signed-off-by: Hartmut Knaack <knaack.h@gmx.de>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
9 years agotools:iio:iio_utils: add missing documentation
Hartmut Knaack [Sun, 31 May 2015 12:40:16 +0000 (14:40 +0200)]
tools:iio:iio_utils: add missing documentation

Fully document public functions and elements.

Signed-off-by: Hartmut Knaack <knaack.h@gmx.de>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
9 years agotools:iio:lsiio: add error handling
Hartmut Knaack [Sun, 31 May 2015 12:40:15 +0000 (14:40 +0200)]
tools:iio:lsiio: add error handling

Add error handling to calls which can indicate a major problem by
returning an error code.
This also involves to change the type of dump_devices() from void to int.

Signed-off-by: Hartmut Knaack <knaack.h@gmx.de>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
9 years agotools:iio:iio_utils: add error handling
Hartmut Knaack [Sun, 31 May 2015 12:40:14 +0000 (14:40 +0200)]
tools:iio:iio_utils: add error handling

Add error handling to calls which can indicate a major problem by
returning an error code.
This also sets ret to -ENOENT in iioutils_get_type() and
iioutils_get_param_float() to indicate if no matching directory entry was
found.

Signed-off-by: Hartmut Knaack <knaack.h@gmx.de>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
9 years agotools:iio:iio_event_monitor: add error handling
Hartmut Knaack [Sun, 31 May 2015 12:40:05 +0000 (14:40 +0200)]
tools:iio:iio_event_monitor: add error handling

Add error handling to calls which can indicate a major problem by
returning an error code.

Signed-off-by: Hartmut Knaack <knaack.h@gmx.de>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
9 years agotools:iio:generic_buffer: add error handling
Hartmut Knaack [Sun, 31 May 2015 12:40:04 +0000 (14:40 +0200)]
tools:iio:generic_buffer: add error handling

Add error handling to calls which can indicate a major problem by
returning an error code.

Signed-off-by: Hartmut Knaack <knaack.h@gmx.de>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
9 years agotools:iio:generic_buffer: catch errors for arguments conversion
Hartmut Knaack [Sun, 31 May 2015 12:40:03 +0000 (14:40 +0200)]
tools:iio:generic_buffer: catch errors for arguments conversion

Add handler to catch errors on conversion of numerical arguments.

Signed-off-by: Hartmut Knaack <knaack.h@gmx.de>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
9 years agotools:iio: catch errors in string allocation
Hartmut Knaack [Sun, 31 May 2015 12:40:02 +0000 (14:40 +0200)]
tools:iio: catch errors in string allocation

This patch catches errors in string allocation in generic_buffer.c,
iio_event_monitor.c, iio_utils.c and lsiio.c.

Signed-off-by: Hartmut Knaack <knaack.h@gmx.de>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
9 years agotools:iio:iio_utils: mark private function static
Hartmut Knaack [Sun, 31 May 2015 12:40:01 +0000 (14:40 +0200)]
tools:iio:iio_utils: mark private function static

Functions _write_sysfs_int() and _write_sysfs_string() are supposed to
be called only by public wrappers, so make them static.

Signed-off-by: Hartmut Knaack <knaack.h@gmx.de>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
9 years agotools:iio:iio_utils: implement digit calculation
Hartmut Knaack [Sun, 31 May 2015 12:40:00 +0000 (14:40 +0200)]
tools:iio:iio_utils: implement digit calculation

Previously, the return value of sscanf() was treated as an indication of
the digits it would have read. Yet, sscanf() only returns the amount of
valid matches.
Therefore, introduce a function to calculate the decimal digits of the
read number and use this one to commence a colon search, as originally
intended.

Signed-off-by: Hartmut Knaack <knaack.h@gmx.de>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
9 years agotools:iio:iio_utils: check amount of matches
Hartmut Knaack [Sun, 31 May 2015 12:39:59 +0000 (14:39 +0200)]
tools:iio:iio_utils: check amount of matches

fscanf() usually returns the number of input items successfully matched
and assigned, which can be fewer than provided (or even zero).
Add a check in iioutils_get_type() to make sure all items are matched.

Signed-off-by: Hartmut Knaack <knaack.h@gmx.de>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
9 years agotools:iio:generic_buffer: sign-extend and shift data
Hartmut Knaack [Sun, 31 May 2015 12:39:58 +0000 (14:39 +0200)]
tools:iio:generic_buffer: sign-extend and shift data

Refactor process_scan() to handle signed and unsigned data, respect shifts
and the data mask for 2, 4 and 8 byte sized scan elements.

Signed-off-by: Hartmut Knaack <knaack.h@gmx.de>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
9 years agotools:iio:generic_buffer: pass up right error code
Hartmut Knaack [Sun, 31 May 2015 12:39:57 +0000 (14:39 +0200)]
tools:iio:generic_buffer: pass up right error code

find_type_by_name() returns a valid error code in case of an error. Pass
this code up instead of an artificial one.

Signed-off-by: Hartmut Knaack <knaack.h@gmx.de>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
9 years agotools:iio:generic_buffer: fix check of errno
Hartmut Knaack [Sun, 31 May 2015 12:39:56 +0000 (14:39 +0200)]
tools:iio:generic_buffer: fix check of errno

Since errno contains the value of any of the defined error names, a
negation will not lead to the desired match.

Signed-off-by: Hartmut Knaack <knaack.h@gmx.de>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
9 years agotools:iio:iio_event_monitor: save right errno
Hartmut Knaack [Sun, 31 May 2015 12:39:49 +0000 (14:39 +0200)]
tools:iio:iio_event_monitor: save right errno

Move up error handling code to preserve the errno coming from ioctl(),
before it may be changed by close().

Signed-off-by: Hartmut Knaack <knaack.h@gmx.de>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
9 years agotools:iio: save errno first
Hartmut Knaack [Sun, 31 May 2015 12:39:48 +0000 (14:39 +0200)]
tools:iio: save errno first

The man-page of errno states, that errno should be saved before doing any
library call, as that call may have changed the value of errno. So, when
encountering any error, save errno first.
This patch affects generic_buffer.c, iio_event_monitor.c and iio_utils.c.

Signed-off-by: Hartmut Knaack <knaack.h@gmx.de>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
9 years agotools:iio:lsiio: add closedir before exit
Hartmut Knaack [Sun, 31 May 2015 12:39:47 +0000 (14:39 +0200)]
tools:iio:lsiio: add closedir before exit

In dump_channels() the DIR *dp was left open on exit. Close it and check
for errors.

Signed-off-by: Hartmut Knaack <knaack.h@gmx.de>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
9 years agotools:iio:iio_utils: fix allocation handling
Hartmut Knaack [Sun, 31 May 2015 12:39:45 +0000 (14:39 +0200)]
tools:iio:iio_utils: fix allocation handling

In build_channel_array(), count needs to be decreased in more places since
current->name and current->generic_name would be freed on the error path,
although they have not been allocated, yet.
This also requires to free current->name, when it is allocated, but
current->generic_name is not yet allocated.

Signed-off-by: Hartmut Knaack <knaack.h@gmx.de>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
9 years agotools:iio: free channel-array completely
Hartmut Knaack [Sun, 31 May 2015 12:39:44 +0000 (14:39 +0200)]
tools:iio: free channel-array completely

In iio_utils.c build_channel_array() dynamically allocates the string
generic_name in the current iio_channel_info, which doesn't got freed in
case of an error.
This dynamically allocated channel-array is used by generic_buffer, and
needs to be freed on the error/exit path.

Signed-off-by: Hartmut Knaack <knaack.h@gmx.de>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
9 years agotools:iio:iio_utils: free scan_el_dir on exit
Hartmut Knaack [Sun, 31 May 2015 12:39:43 +0000 (14:39 +0200)]
tools:iio:iio_utils: free scan_el_dir on exit

In the error path, the string scan_el_dir got freed, while it was missing when
build_channel_array() finished without errors.

Signed-off-by: Hartmut Knaack <knaack.h@gmx.de>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
9 years agotools:iio:generic_buffer: free dev_dir_name on exit
Hartmut Knaack [Sun, 31 May 2015 12:39:42 +0000 (14:39 +0200)]
tools:iio:generic_buffer: free dev_dir_name on exit

Make sure to free dev_dir_name in case of an error or regular exit.

Signed-off-by: Hartmut Knaack <knaack.h@gmx.de>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
9 years agotools:iio:generic_buffer: fix order of freeing data
Hartmut Knaack [Sun, 31 May 2015 12:39:41 +0000 (14:39 +0200)]
tools:iio:generic_buffer: fix order of freeing data

data gets allocated before buffer_access, so it should be freed in reverse
order. Otherwise, if allocating buffer_access fails, an attempt to free it
would be taken, which should not happen.

Signed-off-by: Hartmut Knaack <knaack.h@gmx.de>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
9 years agoiio: accel: Add support for Sensortek STK8BA50
Tiberiu Breana [Mon, 18 May 2015 11:49:50 +0000 (14:49 +0300)]
iio: accel: Add support for Sensortek STK8BA50

Minimal implementation of an IIO driver for the Sensortek
STK8BA50 3-axis accelerometer. Datasheet:
http://szgsensor.com/uploads/soft/141229/STK8BA50%D2%E5%BC%CE.pdf

Includes:
- ACPI support;
- read_raw for x,y,z axes;
- reading and setting the scale (range) parameter.
- power management

Signed-off-by: Tiberiu Breana <tiberiu.a.breana@intel.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
9 years agoiio: __iio_update_buffers: Leave device in sane state on error
Lars-Peter Clausen [Mon, 18 May 2015 11:34:49 +0000 (13:34 +0200)]
iio: __iio_update_buffers: Leave device in sane state on error

Currently when something goes wrong at some step when disabling the buffers
we immediately abort. This has the effect that the enable/disable calls are
no longer balanced. So make sure that even if one step in the disable
sequence fails the other steps are still executed.

The other issue is that when either enable or disable fails buffers that
were active at that time stay active while the device itself is disabled.
This leaves things in a inconsistent state and can cause unbalanced
enable/disable calls. Furthermore when enable fails we restore the old scan
mask, but still keeps things disabled.

Given that verification of the configuration was performed earlier and it
is valid at the point where we try to enable/disable the most likely reason
of failure is a communication failure with the device or maybe a
out-of-memory situation. There is not really a good recovery strategy in
such a case, so it makes sense to leave the device disabled, but we should
still leave it in a consistent state.

What the patch does if disable/enable fails is to deactivate all buffers
and make sure that the device will be in the same state as if all buffers
had been manually disabled.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
9 years agoiio: __iio_update_buffers: Split enable and disable path into helper functions
Lars-Peter Clausen [Mon, 18 May 2015 11:34:48 +0000 (13:34 +0200)]
iio: __iio_update_buffers: Split enable and disable path into helper functions

__iio_update_buffers is already a rather large function with many different
error paths and it is going to get even larger. This patch factors out the
device enable and device disable paths into separate helper functions.

The patch also re-implements iio_disable_all_buffers() using the new
iio_disable_buffers() function removing a fair bit of redundant code.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
9 years agoiio: __iio_update_buffers: Verify configuration before starting to apply it
Lars-Peter Clausen [Mon, 18 May 2015 11:34:47 +0000 (13:34 +0200)]
iio: __iio_update_buffers: Verify configuration before starting to apply it

Currently __iio_update_buffers() verifies whether the new configuration
will work in the middle of the update sequence. This means if the new
configuration is invalid we need to rollback the changes already made. This
patch moves the validation of the new configuration at the beginning of
__iio_update_buffers() and will not start to make any changes if the new
configuration is invalid.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
9 years agoiio:adc128s052: add support for adc122s021
Urs Fässler [Mon, 18 May 2015 13:22:44 +0000 (15:22 +0200)]
iio:adc128s052: add support for adc122s021

Signed-off-by: Urs Fässler <urs.fassler@bytesatwork.ch>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
9 years agoiio: Add I/Q modifiers
Lars-Peter Clausen [Fri, 22 May 2015 16:17:38 +0000 (18:17 +0200)]
iio: Add I/Q modifiers

I/Q modifiers can be used to denote signals which are represented by a
in-phase and a quadrature component.

The ABI documentation describes the I and Q modifiers for current and
voltage channels for now as those will be the most likely users.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
9 years agoDocumentation: bindings: document the Berlin ADC driver
Antoine Tenart [Mon, 18 May 2015 09:19:19 +0000 (11:19 +0200)]
Documentation: bindings: document the Berlin ADC driver

Following the addition of a Berlin ADC driver, this patch adds the
corresponding bindings documentation.

Signed-off-by: Antoine Tenart <antoine.tenart@free-electrons.com>
Acked-by: Jonathan Cameron <jic23@kernel.org>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
9 years agoiio: adc: add support for Berlin
Antoine Tenart [Mon, 18 May 2015 09:19:18 +0000 (11:19 +0200)]
iio: adc: add support for Berlin

This patch adds the support of the Berlin ADC, available on Berlin SoCs.
This ADC has 8 channels available, with one connected to a temperature
sensor.

The particularity here, is that the temperature sensor connected to the
ADC has its own registers, and both the ADC and the temperature sensor
must be configured when using it.

Signed-off-by: Antoine Tenart <antoine.tenart@free-electrons.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
9 years agoiio: accel: Add support for Sensortek STK8312
Tiberiu Breana [Tue, 12 May 2015 15:48:42 +0000 (18:48 +0300)]
iio: accel: Add support for Sensortek STK8312

Minimal implementation of an IIO driver for the Sensortek
STK8312 3-axis accelerometer. Datasheet:
http://www.syi-group.com/uploadpic/data/201361817562681623.pdf

Includes:
- ACPI support;
- read_raw for x,y,z axes;
- reading and setting the scale (range) parameter.
- power management

Signed-off-by: Tiberiu Breana <tiberiu.a.breana@intel.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
9 years agoiio: accel: bmc150: decouple buffer and triggers
Vlad Dogaru [Tue, 12 May 2015 14:03:24 +0000 (17:03 +0300)]
iio: accel: bmc150: decouple buffer and triggers

If the interrupt pins are not available, we should still be able to use
the buffer with an external trigger.  However, we won't be able to use
the hardware fifo since we have no means of signalling when the
watermark is reached.

I also added a comment to indicate that the timestamps in
bmc150_accel_data are only used for hardware fifo, since initially I was
confused about duplication with pf->timestamp.

Signed-off-by: Vlad Dogaru <vlad.dogaru@intel.com>
Reviewed-by: Octavian Purdila <octavian.purdila@intel.com>
Reviewed-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
9 years agoiio: core: add high pass filter attributes
Martin Fuzzey [Wed, 13 May 2015 10:26:42 +0000 (12:26 +0200)]
iio: core: add high pass filter attributes

Add a high pass filter attribute for measurements
(like the existing low pass)

Also add both high and low pass attributes for events.

Signed-off-by: Martin Fuzzey <mfuzzey@parkeon.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
9 years agoiio: mma8452: Add access to registers via DebugFS
Martin Fuzzey [Wed, 13 May 2015 10:26:40 +0000 (12:26 +0200)]
iio: mma8452: Add access to registers via DebugFS

Signed-off-by: Martin Fuzzey <mfuzzey@parkeon.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
9 years agoiio: mma8452: Initialise before activating
Martin Fuzzey [Wed, 13 May 2015 10:26:38 +0000 (12:26 +0200)]
iio: mma8452: Initialise before activating

Many of the hardware configuration registers may only be modified while the
device is inactive.

Currently the probe code first activates the device and then modifies the
registers (eg to set the scale). This doesn't actually work but is not
noticed since the scale used is the default value.

While at it also issue a hardware reset command at probe time.

Signed-off-by: Martin Fuzzey <mfuzzey@parkeon.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
9 years agoiio: gyro: bmg160: decouple buffer and triggers
Vlad Dogaru [Wed, 13 May 2015 13:30:09 +0000 (16:30 +0300)]
iio: gyro: bmg160: decouple buffer and triggers

Make it possible to use buffering with an external trigger, such as one
based on sysfs or hrtimer.

Signed-off-by: Vlad Dogaru <vlad.dogaru@intel.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
9 years agoiio: gyro: bmg160: remove redundant field
Vlad Dogaru [Wed, 13 May 2015 13:30:08 +0000 (16:30 +0300)]
iio: gyro: bmg160: remove redundant field

Replace the 'timestamp' field in struct bmg160_data with the identically
named field in iio_poll_func and with calls to iio_get_time_ns().

The reported timestamps may be slightly different, but the advantage is
that we no longer assume that the buffer of bmg160 is triggered by its
own trigger.

Signed-off-by: Vlad Dogaru <vlad.dogaru@intel.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
9 years agoiio: __iio_update_buffers: Perform request_update() only for new buffers
Lars-Peter Clausen [Wed, 13 May 2015 14:04:46 +0000 (16:04 +0200)]
iio: __iio_update_buffers: Perform request_update() only for new buffers

We only have to call the request_update() callback for a newly inserted
buffer. The configuration of the already previously active buffers will not
have changed.

This also allows us to move the request_update() call to the beginning of
__iio_update_buffers(), before any currently active buffers are stopped.
This makes the error handling a lot easier since no changes were made to
the buffer list and no rollback needs to be performed.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
9 years agoiio: __iio_update_buffers: Slightly refactor scan mask memory management
Lars-Peter Clausen [Wed, 13 May 2015 14:04:45 +0000 (16:04 +0200)]
iio: __iio_update_buffers: Slightly refactor scan mask memory management

Add a small helper function iio_free_scan_mask() that takes a mask and
frees its memory if the scan masks for the device are dynamically
allocated, otherwise does nothing. This means we don't have to open-code
the same check over and over again in __iio_update_buffers.

Also free compound_mask as soon a we are done using it. This constrains its
usage to a specific region of the function will make further refactoring
and splitting the function into smaller sub-parts more easier.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
9 years agoiio: Replace printk in __iio_update_buffers with dev_dbg
Lars-Peter Clausen [Wed, 13 May 2015 14:04:44 +0000 (16:04 +0200)]
iio: Replace printk in __iio_update_buffers with dev_dbg

While more verbose error messages are useful for debugging we should really
not put those error messages into the kernel log for normal errors that are
already reported to the application via the error code, when running in
non-debug mode.

Otherwise application authors might expect that this is part of the ABI and
to get the error they should scan the kernel log. Which would be rather
error prone itself since there is no direct mapping between a operation and
the error message so it is impossible to find out which error message
belongs to which error.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
9 years agoiio: add m62332 DAC driver
Dmitry Eremin-Solenikov [Thu, 14 May 2015 14:21:16 +0000 (17:21 +0300)]
iio: add m62332 DAC driver

m62332 is a simple 2-channel DAC used on several Sharp Zaurus boards to
control LCD voltage, backlight and sound. The driver use regulators to
control the reference voltage and enabling/disabling the DAC.

Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
9 years agoiio: ltr501: Add light channel support
Kuppuswamy Sathyanarayanan [Sat, 16 May 2015 01:23:21 +0000 (18:23 -0700)]
iio: ltr501: Add light channel support

Added support to calculate lux value from visible
and IR spectrum adc count values. Also added IIO_LIGHT
channel to enable user read the lux value directly
from device using illuminance input ABI.

Signed-off-by: Kuppuswamy Sathyanarayanan <sathyanarayanan.kuppuswamy@linux.intel.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
9 years agoiio: pressure: hid-sensor-press: Fix memory leak in probe()
Fabio Estevam [Wed, 13 May 2015 18:06:14 +0000 (15:06 -0300)]
iio: pressure: hid-sensor-press: Fix memory leak in probe()

'channels' is allocated via kmemdup and it is never freed in the
subsequent error paths.

Use 'indio_dev->channels' directly instead, so that we avoid such
memory leak problem.

Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Reviewed-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
9 years agoiio: orientation: hid-sensor-rotation: Fix memory leak in probe()
Fabio Estevam [Wed, 13 May 2015 18:06:13 +0000 (15:06 -0300)]
iio: orientation: hid-sensor-rotation: Fix memory leak in probe()

'channels' is allocated via kmemdup and it is never freed in the
subsequent error paths.

Use 'indio_dev->channels' directly instead, so that we avoid such
memory leak problem.

Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Reviewed-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
9 years agoiio: orientation: hid-sensor-incl-3d: Fix memory leak in probe()
Fabio Estevam [Wed, 13 May 2015 18:06:12 +0000 (15:06 -0300)]
iio: orientation: hid-sensor-incl-3d: Fix memory leak in probe()

'channels' is allocated via kmemdup and it is never freed in the
subsequent error paths.

Use 'indio_dev->channels' directly instead, so that we avoid such
memory leak problem.

Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Reviewed-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
9 years agoiio: light: hid-sensor-als.c: Fix memory leak in probe()
Fabio Estevam [Wed, 13 May 2015 18:06:11 +0000 (15:06 -0300)]
iio: light: hid-sensor-als.c: Fix memory leak in probe()

'channels' is allocated via kmemdup and it is never freed in the
subsequent error paths.

Use 'indio_dev->channels' directly instead, so that we avoid such
memory leak problem.

Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Reviewed-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
9 years agoiio: gyro: hid-sensor-gyro-3d: Fix memory leak in probe()
Fabio Estevam [Wed, 13 May 2015 18:06:10 +0000 (15:06 -0300)]
iio: gyro: hid-sensor-gyro-3d: Fix memory leak in probe()

'channels' is allocated via kmemdup and it is never freed in the
subsequent error paths.

Use 'indio_dev->channels' directly instead, so that we avoid such
memory leak problem.

Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Reviewed-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
9 years agoiio: accel: hid-sensor-accel-3d: Fix memory leak in probe()
Fabio Estevam [Wed, 13 May 2015 18:06:09 +0000 (15:06 -0300)]
iio: accel: hid-sensor-accel-3d: Fix memory leak in probe()

'channels' is allocated via kmemdup and it is never freed in the
subsequent error paths.

Use 'indio_dev->channels' directly instead, so that we avoid such
memory leak problem.

Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Reviewed-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
9 years agoiio: ltr501: Fix proximity threshold boundary check
Kuppuswamy Sathyanarayanan [Fri, 15 May 2015 23:42:56 +0000 (16:42 -0700)]
iio: ltr501: Fix proximity threshold boundary check

Currently, proximity sensor boundary check is done
inside the switch block but outside the case
statement.Since this code will never get executed,
moved the check outside the switch case statement.

   867          case IIO_PROXIMITY:
   868                  switch (dir) {
   // Following line has been moved outside the switch block.
   869                  if (val > LTR501_PS_THRESH_MASK)
   870                          return -EINVAL;
   871                  case IIO_EV_DIR_RISING:

Signed-off-by: Kuppuswamy Sathyanarayanan <sathyanarayanan.kuppuswamy@linux.intel.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
9 years agoiio:temp:mlx90614 trivial drop of unnecessary ret return from write_raw.
Jonathan Cameron [Sat, 2 May 2015 10:35:02 +0000 (11:35 +0100)]
iio:temp:mlx90614 trivial drop of unnecessary ret return from write_raw.

This is mostly part of an effort to clean out our current warnings
and make the autobuilder build reports more useful.

Still a worthwhile if trivial cleanup!

Signed-off-by: Jonathan Cameron <jic23@kernel.org>
Reported-by: kbuild test robot <fengguang.wu@intel.com>
Cc: Vianney le Clément de Saint-Marcq <vianney.leclement@essensium.com>
Cc: Peter Meerwald <pmeerw@pmeerw.net>
9 years agoiio: adc: ti_am335x_adc: make sample delay, open delay, averaging DT parameters
Vignesh R [Tue, 31 Mar 2015 11:12:37 +0000 (16:42 +0530)]
iio: adc: ti_am335x_adc: make sample delay, open delay, averaging DT parameters

Add optional DT properties to set open delay, sample delay and number
of averages per sample for each adc step. Open delay, sample delay
and averaging are some of the parameters that affect the sampling rate
and accuracy of the sample. Making these parameters configurable via
DT will help in balancing speed vs accuracy.

Signed-off-by: Vignesh R <vigneshr@ti.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
9 years agoiio: acpi: Add support for ACPI0008 Ambient Light Sensor
Gabriele Mazzotta [Sat, 2 May 2015 12:30:57 +0000 (14:30 +0200)]
iio: acpi: Add support for ACPI0008 Ambient Light Sensor

This driver adds the initial support for the ACPI Ambient Light Sensor
as defined in Section 9.2 of the ACPI specification (Revision 5.0) [1].

Sensors complying with the standard are exposed as ACPI devices with
ACPI0008 as hardware ID and provide standard methods by which the OS
can query properties of the ambient light environment the system is
currently operating in.

This driver currently allows only to get the current ambient light
illuminance reading through the _ALI method, but is ready to be
extended extended to handle _ALC, _ALT and _ALP as well.

[1] http://www.acpi.info/DOWNLOADS/ACPIspec50.pdf

Signed-off-by: Martin Liska <marxin.liska@gmail.com>
Signed-off-by: Marek Vasut <marex@denx.de>
Signed-off-by: Gabriele Mazzotta <gabriele.mzt@gmail.com>
Cc: Zhang Rui <rui.zhang@intel.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
9 years agoimu: inv_mpu6050: adds device tree bindings
Varka Bhadram [Fri, 24 Apr 2015 09:23:07 +0000 (14:53 +0530)]
imu: inv_mpu6050: adds device tree bindings

Signed-off-by: Varka Bhadram <varkab@cdac.in>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
9 years agoiio: hid-sensor-press: Constify platform_device_id
Krzysztof Kozlowski [Fri, 1 May 2015 15:53:38 +0000 (00:53 +0900)]
iio: hid-sensor-press: Constify platform_device_id

The platform_device_id is not modified by the driver and core uses it as
const.

Signed-off-by: Krzysztof Kozlowski <k.kozlowski.k@gmail.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
9 years agoiio: hid-sensor-rotation: Constify platform_device_id
Krzysztof Kozlowski [Fri, 1 May 2015 15:53:37 +0000 (00:53 +0900)]
iio: hid-sensor-rotation: Constify platform_device_id

The platform_device_id is not modified by the driver and core uses it as
const.

Signed-off-by: Krzysztof Kozlowski <k.kozlowski.k@gmail.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
9 years agoiio: hid-sensor-incl-3d: Constify platform_device_id
Krzysztof Kozlowski [Fri, 1 May 2015 15:53:36 +0000 (00:53 +0900)]
iio: hid-sensor-incl-3d: Constify platform_device_id

The platform_device_id is not modified by the driver and core uses it as
const.

Signed-off-by: Krzysztof Kozlowski <k.kozlowski.k@gmail.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
9 years agoiio: hid-sensor-magn-3d: Constify platform_device_id
Krzysztof Kozlowski [Fri, 1 May 2015 15:53:35 +0000 (00:53 +0900)]
iio: hid-sensor-magn-3d: Constify platform_device_id

The platform_device_id is not modified by the driver and core uses it as
const.

Signed-off-by: Krzysztof Kozlowski <k.kozlowski.k@gmail.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
9 years agoiio: light: hid-sensor-prox: Constify platform_device_id
Krzysztof Kozlowski [Fri, 1 May 2015 15:53:34 +0000 (00:53 +0900)]
iio: light: hid-sensor-prox: Constify platform_device_id

The platform_device_id is not modified by the driver and core uses it as
const.

Signed-off-by: Krzysztof Kozlowski <k.kozlowski.k@gmail.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
9 years agoiio: light: hid-sensor-als: Constify platform_device_id
Krzysztof Kozlowski [Fri, 1 May 2015 15:53:33 +0000 (00:53 +0900)]
iio: light: hid-sensor-als: Constify platform_device_id

The platform_device_id is not modified by the driver and core uses it as
const.

Signed-off-by: Krzysztof Kozlowski <k.kozlowski.k@gmail.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
9 years agoiio: hid-sensor-gyro-3d: Constify platform_device_id
Krzysztof Kozlowski [Fri, 1 May 2015 15:53:32 +0000 (00:53 +0900)]
iio: hid-sensor-gyro-3d: Constify platform_device_id

The platform_device_id is not modified by the driver and core uses it as
const.

Signed-off-by: Krzysztof Kozlowski <k.kozlowski.k@gmail.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
9 years agoiio: adc: axp288: Constify platform_device_id
Krzysztof Kozlowski [Fri, 1 May 2015 15:53:31 +0000 (00:53 +0900)]
iio: adc: axp288: Constify platform_device_id

The platform_device_id is not modified by the driver and core uses it as
const.

Signed-off-by: Krzysztof Kozlowski <k.kozlowski.k@gmail.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
9 years agoiio: hid-sensor-accel-3d: Constify platform_device_id
Krzysztof Kozlowski [Fri, 1 May 2015 15:53:30 +0000 (00:53 +0900)]
iio: hid-sensor-accel-3d: Constify platform_device_id

The platform_device_id is not modified by the driver and core uses it as
const.

Signed-off-by: Krzysztof Kozlowski <k.kozlowski.k@gmail.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
9 years agoiio: light: add support for ROHM BH1710/BH1715/BH1721/BH1750/BH1751 ambient light...
Tomasz Duszynski [Sun, 3 May 2015 18:37:21 +0000 (20:37 +0200)]
iio: light: add support for ROHM BH1710/BH1715/BH1721/BH1750/BH1751 ambient light sensors

Add support for ROHM BH1710/BH1715/BH1721/BH1750/BH1751 ambient light
sensors.

Signed-off-by: Tomasz Duszynski <tduszyns@gmail.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
9 years agoiio: make tools more cross-compilation friendly
Linus Walleij [Tue, 5 May 2015 08:42:12 +0000 (10:42 +0200)]
iio: make tools more cross-compilation friendly

When cross-compiling the IIO tools we need to opportunity to
specify a cross compiler prefix and some extra CFLAGS. This
patch enables this in the same way as for other stuff in
tools.

Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Acked-by: Daniel Baluta <daniel.baluta@intel.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
9 years agoiio: magnetometer: Add ACPI support for MMC35240
Daniel Baluta [Fri, 24 Apr 2015 15:58:32 +0000 (18:58 +0300)]
iio: magnetometer: Add ACPI support for MMC35240

We assume that ACPI device tables use MMC35240 to
identify MEMSIC's 3 axis magnetic sensor.

Signed-off-by: Daniel Baluta <daniel.baluta@intel.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
9 years agoiio: magnetometer: mmc35240: Add PM sleep support
Daniel Baluta [Fri, 24 Apr 2015 15:58:31 +0000 (18:58 +0300)]
iio: magnetometer: mmc35240: Add PM sleep support

We rely on regmap to save the state of the registers at suspend,
and then we do an explicit sync at resume.

Signed-off-by: Daniel Baluta <daniel.baluta@intel.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
9 years agoiio: magnetometer: Add support for MEMSIC MMC35240 sensor
Daniel Baluta [Fri, 24 Apr 2015 15:58:30 +0000 (18:58 +0300)]
iio: magnetometer: Add support for MEMSIC MMC35240 sensor

Minimal implementation for MMC35240 3-axis magnetometer
sensor. It provides processed readings and possiblity to change
the sampling frequency.

Signed-off-by: Daniel Baluta <daniel.baluta@intel.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
9 years agoiio: magn: bmc150_magn: add oversampling ratio
Irina Tirdea [Wed, 29 Apr 2015 18:16:40 +0000 (21:16 +0300)]
iio: magn: bmc150_magn: add oversampling ratio

Export the oversampling ratio so that the user can change the
number of repetions for x/y/z axis.

The sampling frequency is limited by the oversampling ratio.
The available sampling frequencies might change depending
on the values of oversampling_ratio.

The specification can be downloaded from:
http://ae-bst.resource.bosch.com/media/products/dokumente/bmc150/BST-BMC150-DS000-04.pdf.

Signed-off-by: Irina Tirdea <irina.tirdea@intel.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
9 years agoiio: core: Introduce IIO_CHAN_INFO_OVERSAMPLING_RATIO
Irina Tirdea [Wed, 29 Apr 2015 18:16:39 +0000 (21:16 +0300)]
iio: core: Introduce IIO_CHAN_INFO_OVERSAMPLING_RATIO

Some magnetometers can perform a number of repetitions in HW
for each measurement to increase accuracy. One example is
Bosch BMC150:
http://ae-bst.resource.bosch.com/media/products/dokumente/bmc150/BST-BMC150-DS000-04.pdf.

Introduce an interface to set the oversampling ratio
for these devices.

Signed-off-by: Irina Tirdea <irina.tirdea@intel.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
9 years agoiio: magn: bmc150_magn: Add devicetree binding documentation
Irina Tirdea [Wed, 29 Apr 2015 18:16:38 +0000 (21:16 +0300)]
iio: magn: bmc150_magn: Add devicetree binding documentation

Add binding documentation for Bosch BMC150 magnetometer.

Signed-off-by: Irina Tirdea <irina.tirdea@intel.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
9 years agoiio: magn: Add support for BMC150 magnetometer
Irina Tirdea [Wed, 29 Apr 2015 18:16:37 +0000 (21:16 +0300)]
iio: magn: Add support for BMC150 magnetometer

Add support for the Bosh BMC150 Magnetometer.
The specification can be downloaded from:
http://ae-bst.resource.bosch.com/media/products/dokumente/bmc150/BST-BMC150-DS000-04.pdf.
The chip contains both an accelerometer and a magnetometer.
This patch adds support only for the magnetometer part.

The temperature compensation formulas are based on bmm050_api.c
authored by contact@bosch.sensortec.com.

Signed-off-by: Irina Tirdea <irina.tirdea@intel.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
9 years agoStaging: iio: Allow compile test of GPIO consumers if !GPIOLIB
Geert Uytterhoeven [Tue, 5 May 2015 16:32:36 +0000 (18:32 +0200)]
Staging: iio: Allow compile test of GPIO consumers if !GPIOLIB

The GPIO subsystem provides dummy GPIO consumer functions if GPIOLIB is
not enabled. Hence drivers that depend on GPIOLIB, but use GPIO consumer
functionality only, can still be compiled if GPIOLIB is not enabled.

Relax the dependency on GPIOLIB if COMPILE_TEST is enabled, where
appropriate.

Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
Cc: Jonathan Cameron <jic23@kernel.org>
Cc: linux-iio@vger.kernel.org
Cc: devel@driverdev.osuosl.org
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
9 years agoiio: Allow compile test of GPIO consumers if !GPIOLIB
Geert Uytterhoeven [Tue, 5 May 2015 16:32:23 +0000 (18:32 +0200)]
iio: Allow compile test of GPIO consumers if !GPIOLIB

The GPIO subsystem provides dummy GPIO consumer functions if GPIOLIB is
not enabled. Hence drivers that depend on GPIOLIB, but use GPIO consumer
functionality only, can still be compiled if GPIOLIB is not enabled.

Relax the dependency on GPIOLIB if COMPILE_TEST is enabled, where
appropriate.

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>
9 years agoiio: light: Add threshold interrupt support for STK3310
Tiberiu Breana [Mon, 27 Apr 2015 15:34:01 +0000 (18:34 +0300)]
iio: light: Add threshold interrupt support for STK3310

Added interrupt support for proximity threshold events
to the stk3310 driver.

Signed-off-by: Tiberiu Breana <tiberiu.a.breana@intel.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
9 years agoiio: light: Add support for Sensortek STK3310
Tiberiu Breana [Mon, 27 Apr 2015 15:34:00 +0000 (18:34 +0300)]
iio: light: Add support for Sensortek STK3310

Minimal implementation of an IIO driver for the Sensortek
STK3310 ambient light and proximity sensor. The STK3311
model is also supported.

Includes:
- ACPI support;
- read_raw and write_raw;
- reading and setting configuration parameters for gain/scale
  and integration time for both ALS and PS.
- power management

Signed-off-by: Tiberiu Breana <tiberiu.a.breana@intel.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
9 years agoMerge tag 'iio-for-v4.2a' of git://git.kernel.org/pub/scm/linux/kernel/git/jic23...
Greg Kroah-Hartman [Sat, 9 May 2015 16:15:50 +0000 (18:15 +0200)]
Merge tag 'iio-for-v4.2a' of git://git./linux/kernel/git/jic23/iio into staging-next

Jonathan writes:

First round of new drivers, functionality and cleanups for the 4.2 cycle

New drivers / device support
* st sensors driver, lsm303dlh magnetometer support.
* ltr501 - support ltr301 and ltr559 chips.

New functionality
* IIO_CHAN_INFO_CALIBEMISSIVITY for thermopile sensors.
* kxcjk1013 - make driver operational with external trigger.
* Add iio targets to the tools Makefile.

Cleanups
* st sensors - more helpful error message if device id wrong or irq request
  fails, explicitly make the Block Data Update optional rather
  than relying on writes to address 0 not doing anything, make interrupt
  support optional (Not always wired, and not all devices actually have
  an interrupt line.)
* kxcjk-1013 white space additions for readability, add the KXCJ9000 ACPI
  id as seen in the wild.
* sx9500 - GPIO reset support, refactor the GPIO interrupt code, add power
  management, optimize power usage by powering down when possible, rename
  the gpio interrupt pin to be more useful, trivial return path simplification,
  trivial formatting fixes.
* isl29018 -  move towards ABI compliance with a view to moving this driver
  out of staging, add some brackets to ensure code works as expected.  Note
  there is no actual bug as the condition being tested is always true
  (with current devices).
* ltr501 - add regmap support to get caching etc for later patches,
  fix a parameter sanity check that always fails (bug introduced
  earlier in this series), ACPI enumeration support,
  interrupt rate control support, interrupt support in general and
  integration time control support, code alignment cleanups.
* mma9553 - a number of little cleanups following a review from Hartmut
  after I'd already applied the original driver patch.
* tmp006 - prefix some defines with TMP006 for consistency.
* tsl4531 - cleanup some wrong prefixes, presumably from copy and paste.
* mlx90614 - check for errors in read values, add power management,
  add emissivity setting, add device tree binding documentation,
  fix a duplicate const warning.
* ti_am335x_adc - refactor the DT parsing into a separate function.