summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* iio: magnetometer: correct a harmless off by one checkDan Carpenter2015-06-011-1/+1
| | | | | | | | | 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>
* iio: Require strict scan mask matching in hardware modeLars-Peter Clausen2015-06-011-5/+20
| | | | | | | | | | | | | 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>
* iio: Specify supported modes for buffersLars-Peter Clausen2015-06-015-3/+24
| | | | | | | | | | | | | | | 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>
* iio: Always compute masklengthLars-Peter Clausen2015-06-011-6/+9
| | | | | | | | | | 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>
* staging: iio_simple_dummy: fix module_param typeVladimirs Ambrosovs2015-06-011-1/+1
| | | | | | | | 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>
* staging: iio_simple_dummy: fix return typesVladimirs Ambrosovs2015-06-015-20/+8
| | | | | | | | 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>
* staging: iio_simple_dummy: fix init functionVladimirs Ambrosovs2015-06-011-1/+8
| | | | | | | | | 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>
* iio: buffer: remove unneeded testLaurent Navet2015-06-011-2/+0
| | | | | | | | | 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>
* tools:iio:iio_utils: pass strings as constHartmut Knaack2015-06-012-15/+22
| | | | | | | | 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>
* tools:iio: rework program parametersHartmut Knaack2015-06-012-23/+38
| | | | | | | | | 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>
* tools:iio:iio_utils: initialize count during declarationHartmut Knaack2015-06-011-2/+1
| | | | | | | | 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>
* tools:iio:iio_utils: move up reset of sysfsfpHartmut Knaack2015-06-011-1/+1
| | | | | | | | 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>
* tools:iio:iio_utils: refactor assignment of is_signedHartmut Knaack2015-06-011-4/+1
| | | | | | | | 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>
* tools:iio:iio_event_monitor: refactor events outputHartmut Knaack2015-06-011-14/+10
| | | | | | | | | 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>
* tools:iio: return values directlyHartmut Knaack2015-06-013-21/+16
| | | | | | | 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>
* tools:iio:iio_utils: add missing documentationHartmut Knaack2015-06-012-7/+83
| | | | | | | Fully document public functions and elements. Signed-off-by: Hartmut Knaack <knaack.h@gmx.de> Signed-off-by: Jonathan Cameron <jic23@kernel.org>
* tools:iio:lsiio: add error handlingHartmut Knaack2015-05-311-12/+32
| | | | | | | | | 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>
* tools:iio:iio_utils: add error handlingHartmut Knaack2015-05-311-42/+223
| | | | | | | | | | | 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>
* tools:iio:iio_event_monitor: add error handlingHartmut Knaack2015-05-311-2/+7
| | | | | | | | 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>
* tools:iio:generic_buffer: add error handlingHartmut Knaack2015-05-311-4/+14
| | | | | | | | 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>
* tools:iio:generic_buffer: catch errors for arguments conversionHartmut Knaack2015-05-311-0/+9
| | | | | | | 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>
* tools:iio: catch errors in string allocationHartmut Knaack2015-05-314-6/+24
| | | | | | | | 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>
* tools:iio:iio_utils: mark private function staticHartmut Knaack2015-05-311-2/+3
| | | | | | | | 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>
* tools:iio:iio_utils: implement digit calculationHartmut Knaack2015-05-311-4/+31
| | | | | | | | | | | | 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>
* tools:iio:iio_utils: check amount of matchesHartmut Knaack2015-05-311-0/+4
| | | | | | | | | 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>
* tools:iio:generic_buffer: sign-extend and shift dataHartmut Knaack2015-05-311-35/+62
| | | | | | | | 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>
* tools:iio:generic_buffer: pass up right error codeHartmut Knaack2015-05-311-2/+2
| | | | | | | | 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>
* tools:iio:generic_buffer: fix check of errnoHartmut Knaack2015-05-311-1/+1
| | | | | | | | 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>
* tools:iio:iio_event_monitor: save right errnoHartmut Knaack2015-05-311-3/+5
| | | | | | | | 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>
* tools:iio: save errno firstHartmut Knaack2015-05-313-11/+11
| | | | | | | | | | 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>
* tools:iio:lsiio: add closedir before exitHartmut Knaack2015-05-311-1/+1
| | | | | | | | 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>
* tools:iio:iio_utils: fix allocation handlingHartmut Knaack2015-05-311-0/+4
| | | | | | | | | | | 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>
* tools:iio: free channel-array completelyHartmut Knaack2015-05-312-2/+10
| | | | | | | | | | | 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>
* tools:iio:iio_utils: free scan_el_dir on exitHartmut Knaack2015-05-311-0/+1
| | | | | | | | 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>
* tools:iio:generic_buffer: free dev_dir_name on exitHartmut Knaack2015-05-311-1/+3
| | | | | | | 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>
* tools:iio:generic_buffer: fix order of freeing dataHartmut Knaack2015-05-311-2/+2
| | | | | | | | | 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>
* iio: accel: Add support for Sensortek STK8BA50Tiberiu Breana2015-05-233-0/+313
| | | | | | | | | | | | | | | 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>
* iio: __iio_update_buffers: Leave device in sane state on errorLars-Peter Clausen2015-05-231-36/+46
| | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* iio: __iio_update_buffers: Split enable and disable path into helper functionsLars-Peter Clausen2015-05-231-88/+103
| | | | | | | | | | | | __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>
* iio: __iio_update_buffers: Verify configuration before starting to apply itLars-Peter Clausen2015-05-231-63/+101
| | | | | | | | | | | | 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>
* iio:adc128s052: add support for adc122s021Urs Fässler2015-05-233-10/+28
| | | | | Signed-off-by: Urs Fässler <urs.fassler@bytesatwork.ch> Signed-off-by: Jonathan Cameron <jic23@kernel.org>
* iio: Add I/Q modifiersLars-Peter Clausen2015-05-233-0/+50
| | | | | | | | | | | 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>
* Documentation: bindings: document the Berlin ADC driverAntoine Tenart2015-05-231-0/+19
| | | | | | | | | 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>
* iio: adc: add support for BerlinAntoine Tenart2015-05-233-0/+386
| | | | | | | | | | | | | 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>
* iio: accel: Add support for Sensortek STK8312Tiberiu Breana2015-05-173-0/+403
| | | | | | | | | | | | | | | 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>
* iio: accel: bmc150: decouple buffer and triggersVlad Dogaru2015-05-171-20/+35
| | | | | | | | | | | | | | | | 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>
* iio: core: add high pass filter attributesMartin Fuzzey2015-05-175-0/+37
| | | | | | | | | | 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>
* iio: mma8452: Add access to registers via DebugFSMartin Fuzzey2015-05-171-0/+25
| | | | | Signed-off-by: Martin Fuzzey <mfuzzey@parkeon.com> Signed-off-by: Jonathan Cameron <jic23@kernel.org>
* iio: mma8452: Initialise before activatingMartin Fuzzey2015-05-171-4/+33
| | | | | | | | | | | | | | 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>
* iio: gyro: bmg160: decouple buffer and triggersVlad Dogaru2015-05-171-24/+32
| | | | | | | | 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>
OpenPOWER on IntegriCloud