platform/kernel/linux-rpi.git
5 years agoiio: hi8435: Use gpiod_set_value_cansleep()
Andrey Smirnov [Sun, 11 Aug 2019 05:45:11 +0000 (22:45 -0700)]
iio: hi8435: Use gpiod_set_value_cansleep()

Use gpiod_set_value_cansleep() instead of gpiod_set_value() to support
the case when reset pin is connected to a GPIO expander. See ZII VF610
SCU4 AIB for one such example.

Signed-off-by: Andrey Smirnov <andrew.smirnov@gmail.com>
Cc: linux-kernel@vger.kernel.org
Cc: linux-iio@vger.kernel.org
Cc: Jonathan Cameron <jic23@kernel.org>
Cc: Chris Healy <cphealy@gmail.com>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
5 years agoiio:st_sensors: remove buffer allocation at each buffer enable
Denis Ciocca [Mon, 5 Aug 2019 18:57:11 +0000 (11:57 -0700)]
iio:st_sensors: remove buffer allocation at each buffer enable

This patch is removing the buffer allocation at each buffer enable.
We just allocate enough memory in the main structure during probe
to cover maximum size needed (that anyway is pretty small) [16bytes].

Signed-off-by: Denis Ciocca <denis.ciocca@st.com>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
5 years agoiio: imu: inv_mpu6050: be more explicit on supported chips
Jean-Baptiste Maneyrol [Mon, 5 Aug 2019 12:26:50 +0000 (12:26 +0000)]
iio: imu: inv_mpu6050: be more explicit on supported chips

Since every chip has a different whoami, we are not supporting all
existing variant of all chips. Add an explicit supported chips
list in Kconfig description.

Signed-off-by: Jean-Baptiste Maneyrol <jmaneyrol@invensense.com>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
5 years agoiio: light: noa1305: Add support for NOA1305
Martyn Welch [Fri, 2 Aug 2019 11:42:28 +0000 (12:42 +0100)]
iio: light: noa1305: Add support for NOA1305

This driver adds the initial support for the ON Semiconductor
NOA1305 Ambient Light Sensor.

Originally written by Sergei Miroshnichenko. Found here:
  https://github.com/EmcraftSystems/linux-upstream/commit/196d6cf897e632d2cb82d45484bd7a1bfdd5b6d9

Signed-off-by: Sergei M <fizik1@yandex.com>
Signed-off-by: Martyn Welch <martyn.welch@collabora.com>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
5 years agodt-bindings: Add binding document for NOA1305
Martyn Welch [Fri, 2 Aug 2019 11:42:27 +0000 (12:42 +0100)]
dt-bindings: Add binding document for NOA1305

Document the ON Semiconductor NOA1305 ambient light sensor devicetree
bindings.

Signed-off-by: Martyn Welch <martyn.welch@collabora.com>
Reviewed-by: Rob Herring <robh@kernel.org>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
5 years agoiio: remove get_irq_data_ready() function pointer and use IRQ number directly
Denis Ciocca [Fri, 2 Aug 2019 17:59:13 +0000 (10:59 -0700)]
iio: remove get_irq_data_ready() function pointer and use IRQ number directly

Not even sure why it was there since the beginning. Just use IRQ
number in the sensor_data struct.

Signed-off-by: Denis Ciocca <denis.ciocca@st.com>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
5 years agoiio: imu: st_lsm6dsx: make IIO_CHAN_INFO_SCALE shared by type
Martin Kepplinger [Thu, 1 Aug 2019 14:39:08 +0000 (16:39 +0200)]
iio: imu: st_lsm6dsx: make IIO_CHAN_INFO_SCALE shared by type

in_accel_x_scale, in_accel_y_scale and in_accel_z_scale are always
the same. The scale is still defined to be in "info_mask_separate".

Userspace (iio-sensor-proxy and others) is not used to that and only
looks for "in_accel_scale" for the scaling factor to apply.

Change IIO_CHAN_INFO_SCALE from being separate in all channel to be
shared by type.

This removes in_accel_x_scale, in_accel_y_scale and in_accel_z_scale and
makes available in_accel_scale.

This is an ABI change, but hopefully in the 'no one will notice'
category.  The cleanup in interface is worth the small risk that
there is a custom script out there somewhere that this will break.

Signed-off-by: Martin Kepplinger <martin.kepplinger@puri.sm>
Acked-by: Lorenzo Bianconi <lorenzo@kernel.org>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
5 years agoiio: tsl2772: Use regulator_bulk_() APIs
Chuhong Yuan [Thu, 1 Aug 2019 07:36:19 +0000 (15:36 +0800)]
iio: tsl2772: Use regulator_bulk_() APIs

Use regulator_bulk_() APIs to shrink driver size.

Signed-off-by: Chuhong Yuan <hslester96@gmail.com>
Reviewed-by: Brian Masney <masneyb@onstation.org>
Tested-by: Brian Masney <masneyb@onstation.org>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
5 years agoiio: tsl2772: Use devm_iio_device_register
Chuhong Yuan [Thu, 1 Aug 2019 07:36:12 +0000 (15:36 +0800)]
iio: tsl2772: Use devm_iio_device_register

Use devm_iio_device_register, which removes the tsl2772_remove
function.

Signed-off-by: Chuhong Yuan <hslester96@gmail.com>
Reviewed-by: Brian Masney <masneyb@onstation.org>
Tested-by: Brian Masney <masneyb@onstation.org>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
5 years agoiio: tsl2772: Use devm_add_action_or_reset for tsl2772_chip_off
Chuhong Yuan [Thu, 1 Aug 2019 07:36:05 +0000 (15:36 +0800)]
iio: tsl2772: Use devm_add_action_or_reset for tsl2772_chip_off

Use devm_add_action_or_reset to call tsl2772_chip_off
when the device is removed.
This also fixes the issue that the chip is turned off
before the device is unregistered.

Not marked for stable as fairly hard to hit the bug and
this is in the middle of a set making other cleanups
to the driver.  Hence will probably need explicit backporting.

Signed-off-by: Chuhong Yuan <hslester96@gmail.com>
Fixes: c06c4d793584 ("staging: iio: tsl2x7x/tsl2772: move out of staging")
Reviewed-by: Brian Masney <masneyb@onstation.org>
Tested-by: Brian Masney <masneyb@onstation.org>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
5 years agoiio: tsl2772: Use devm_add_action_or_reset
Chuhong Yuan [Thu, 1 Aug 2019 07:35:57 +0000 (15:35 +0800)]
iio: tsl2772: Use devm_add_action_or_reset

Use devm_add_action_or_reset to remove the call to
tsl2772_disable_regulators_action to simplify the error path.

Signed-off-by: Chuhong Yuan <hslester96@gmail.com>
Reviewed-by: Brian Masney <masneyb@onstation.org>
Tested-by: Brian Masney <masneyb@onstation.org>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
5 years agoiio: Remove dev_err() usage after platform_get_irq()
Stephen Boyd [Tue, 30 Jul 2019 18:15:19 +0000 (11:15 -0700)]
iio: Remove dev_err() usage after platform_get_irq()

We don't need dev_err() messages when platform_get_irq() fails now that
platform_get_irq() prints an error message itself when something goes
wrong. Let's remove these prints with a simple semantic patch.

// <smpl>
@@
expression ret;
struct platform_device *E;
@@

ret =
(
platform_get_irq(E, ...)
|
platform_get_irq_byname(E, ...)
);

if ( \( ret < 0 \| ret <= 0 \) )
{
(
-if (ret != -EPROBE_DEFER)
-{ ...
-dev_err(...);
-... }
|
...
-dev_err(...);
)
...
}
// </smpl>

While we're here, remove braces on if statements that only have one
statement (manually).

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
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Stephen Boyd <swboyd@chromium.org>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
5 years agoiio: light: si1145: Use device-managed APIs
Chuhong Yuan [Mon, 29 Jul 2019 01:43:01 +0000 (09:43 +0800)]
iio: light: si1145: Use device-managed APIs

Use device-managed APIs to simplify the code.
The remove functions are redundant now and can
be deleted.

Signed-off-by: Chuhong Yuan <hslester96@gmail.com>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
5 years agoiio:pressure: preenable/postenable/predisable fixup for ST press buffer
Denis Ciocca [Wed, 31 Jul 2019 21:49:00 +0000 (14:49 -0700)]
iio:pressure: preenable/postenable/predisable fixup for ST press buffer

This patch is trying to cleanup for good the buffers operation functions.
There is no need of using preenable, all can be done into
postenable. Let's also use logical sequence of operations as
already done in accel driver.
Finally also rename the goto label using operation to perform and not
where it fails.

Not stable material as not fixing a 'bug' but rather bringing the
driver in line with general 'patterns' to allow a subsystem wide
cleanup.

Signed-off-by: Denis Ciocca <denis.ciocca@st.com>
Reviewed-by: Alexandru Ardelean <alexandru.ardelean@analog.com>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
5 years agoiio:magn: preenable/postenable/predisable fixup for ST magn buffer
Denis Ciocca [Wed, 31 Jul 2019 21:48:59 +0000 (14:48 -0700)]
iio:magn: preenable/postenable/predisable fixup for ST magn buffer

This patch is trying to cleanup for good the buffers operation functions.
Let's rename the goto label using operation to perform and not
where it fails.

Not stable material as not fixing a 'bug' but rather bringing the
driver in line with general 'patterns' to allow a subsystem wide
cleanup.

Signed-off-by: Denis Ciocca <denis.ciocca@st.com>
Reviewed-by: Alexandru Ardelean <alexandru.ardelean@analog.com>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
5 years agoiio:gyro: preenable/postenable/predisable fixup for ST gyro buffer
Denis Ciocca [Wed, 31 Jul 2019 21:48:58 +0000 (14:48 -0700)]
iio:gyro: preenable/postenable/predisable fixup for ST gyro buffer

This patch is trying to cleanup for good the buffers operation functions.
There is no need of using preenable, all can be done into
postenable. Let's also use logical sequence of operations as
already done in accel driver.
Finally also rename the goto label using operation to perform and not
where it fails.

Not stable material as not fixing a 'bug' but rather bringing the
driver in line with general 'patterns' to allow a subsystem wide
cleanup.

Signed-off-by: Denis Ciocca <denis.ciocca@st.com>
Reviewed-by: Alexandru Ardelean <alexandru.ardelean@analog.com>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
5 years agoiio:accel: preenable/postenable/predisable fixup for ST accel buffer
Denis Ciocca [Wed, 31 Jul 2019 21:48:57 +0000 (14:48 -0700)]
iio:accel: preenable/postenable/predisable fixup for ST accel buffer

This patch is trying to cleanup for good the buffers operation functions.
There is no need of using preenable, all can be done into
postenable.
Let's also rename the goto label using operation to perform and not
where it fails.

Note, not stable material. This is cleaning up the logic flow rather
than fixing a bug.

Signed-off-by: Denis Ciocca <denis.ciocca@st.com>
Reviewed-by: Alexandru Ardelean <alexandru.ardelean@analog.com>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
5 years agodt-bindings: iio: imu: st_lsm6dsx: add ism330dhcx device bindings
Lorenzo Bianconi [Mon, 5 Aug 2019 10:18:44 +0000 (12:18 +0200)]
dt-bindings: iio: imu: st_lsm6dsx: add ism330dhcx device bindings

Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
5 years agoiio: imu: st_lsm6dsx: add support to ISM330DHCX
Lorenzo Bianconi [Mon, 5 Aug 2019 10:18:43 +0000 (12:18 +0200)]
iio: imu: st_lsm6dsx: add support to ISM330DHCX

Add support to STM ISM330DHCX 6-axis (acc + gyro) Mems sensor
https://www.st.com/resource/en/datasheet/ism330dhcx.pdf

Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
5 years agoiio: imu: st_lsm6dsx: move iio chan definitions in st_lsm6dsx_sensor_settings
Lorenzo Bianconi [Mon, 29 Jul 2019 19:22:31 +0000 (21:22 +0200)]
iio: imu: st_lsm6dsx: move iio chan definitions in st_lsm6dsx_sensor_settings

Move IIO channel definitions in st_lsm6dsx_sensor_settings in order to
support sensors with different channels maps.
This is a preliminary patch to add support for LSM9DS1 sensor to
st_lsm6dsx driver.

Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
Tested-by: Martin Kepplinger <martin.kepplinger@puri.sm>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
5 years agoiio: imu: st_lsm6dsx: inline output acc/gyro output regs
Lorenzo Bianconi [Mon, 29 Jul 2019 19:22:30 +0000 (21:22 +0200)]
iio: imu: st_lsm6dsx: inline output acc/gyro output regs

Remove output register definition and inline register value since
they are used only for iio channel definition. This is a preliminary
patch to add support for LSM9DS1 sensor to st_lsm6dsx driver

Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
Tested-by: Martin Kepplinger <martin.kepplinger@puri.sm>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
5 years agoiio: imu: st_lsm6dsx: move fs_table in st_lsm6dsx_sensor_settings
Lorenzo Bianconi [Mon, 29 Jul 2019 19:22:29 +0000 (21:22 +0200)]
iio: imu: st_lsm6dsx: move fs_table in st_lsm6dsx_sensor_settings

Move fs_table in st_lsm6dsx_sensor_settings in order to support
sensors with different gain maps. This is a preliminary patch to add
support for LSM9DS1 sensor to st_lsm6dsx driver

Tested-by: Martin Kepplinger <martin.kepplinger@puri.sm>
Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
5 years agoiio: imu: st_lsm6dsx: move odr_table in st_lsm6dsx_sensor_settings
Lorenzo Bianconi [Mon, 29 Jul 2019 19:22:28 +0000 (21:22 +0200)]
iio: imu: st_lsm6dsx: move odr_table in st_lsm6dsx_sensor_settings

Move sensor odr table in st_lsm6dsx_sensor_settings in order to support
sensors with different odr maps. This is a preliminary patch to add
support for LSM9DS1 sensor to st_lsm6dsx driver

Tested-by: Martin Kepplinger <martin.kepplinger@puri.sm>
Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
5 years agoiio: light: cm3323: Use device-managed APIs
Chuhong Yuan [Sun, 28 Jul 2019 14:36:30 +0000 (22:36 +0800)]
iio: light: cm3323: Use device-managed APIs

Use device-managed APIs to simplify the code.
The remove functions are redundant now and can
be deleted.

Signed-off-by: Chuhong Yuan <hslester96@gmail.com>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
5 years agodt-bindings: iio: potentiometer: add max5432.yaml binding
Martin Kaiser [Wed, 31 Jul 2019 14:07:06 +0000 (16:07 +0200)]
dt-bindings: iio: potentiometer: add max5432.yaml binding

Add a binding for the Maxim Integrated MAX5432-MAX5435 family of digital
potentiometers.

Signed-off-by: Martin Kaiser <martin@kaiser.cx>
Reviewed-by: Rob Herring <robh@kernel.org>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
5 years agoiio: potentiometer: add a driver for Maxim 5432-5435
Martin Kaiser [Wed, 31 Jul 2019 14:07:05 +0000 (16:07 +0200)]
iio: potentiometer: add a driver for Maxim 5432-5435

Add a driver for the Maxim Integrated MAX5432-MAX5435 family of digital
potentiometers.

These potentiometers are connected via I2C and have 32 wiper
positions.

Supported functionality
- set the volatile wiper position
- read the potentiometer scale

Datasheet:
https://datasheets.maximintegrated.com/en/ds/MAX5432-MAX5435.pdf

Signed-off-by: Martin Kaiser <martin@kaiser.cx>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
5 years agoiio: adc: ad7606: Add debug mode for ad7616
Beniamin Bia [Thu, 18 Jul 2019 06:27:34 +0000 (09:27 +0300)]
iio: adc: ad7606: Add debug mode for ad7616

Support for register access was added for devices which have software
mode.

Signed-off-by: Beniamin Bia <beniamin.bia@analog.com>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
5 years agoiio: adc: ad7606: Add support for software mode for ad7616
Beniamin Bia [Thu, 18 Jul 2019 06:27:33 +0000 (09:27 +0300)]
iio: adc: ad7606: Add support for software mode for ad7616

Support for ad7616 running in software was added. In order
to activate the software mode, HW_RNGSEL pins must be pulled low.
Oversampling and input ranges are now configured in corresponding
registers. Ad7616 has multiple scale options when it is configured
in software mode.
Also, in order to support multiple devices in software mode, the spi
calculation of registers address must be generic. Because
the length of address and bit which specifies the read/write operation is
different for every device, calculation of address was made generic.

Signed-off-by: Beniamin Bia <beniamin.bia@analog.com>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
5 years agoiio: adc: ad7606: Allow reconfigration after reset
Beniamin Bia [Thu, 18 Jul 2019 06:27:32 +0000 (09:27 +0300)]
iio: adc: ad7606: Allow reconfigration after reset

According to datasheet, ad7616 require at least 15ms after a restart
to fully reconfigure and being able to receive new commands via spi.

Signed-off-by: Beniamin Bia <beniamin.bia@analog.com>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
5 years agoiio: adc: ad7606: Move spi dependent features to spi file
Beniamin Bia [Thu, 18 Jul 2019 06:27:31 +0000 (09:27 +0300)]
iio: adc: ad7606: Move spi dependent features to spi file

Because software mode and register access are only available in spi, they
were moved in spi file and are accessbile via bops structure.
The write_os/scale will be overwritten by sw_mode_config function.
This patch was made in order to support devices in software mode without
making the driver dependent to spi and increase the abstraction of the
core.

Signed-off-by: Beniamin Bia <beniamin.bia@analog.com>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
5 years agoiio: adc: ad7606: Move common channel definition to header
Beniamin Bia [Thu, 18 Jul 2019 06:27:30 +0000 (09:27 +0300)]
iio: adc: ad7606: Move common channel definition to header

The common channel definition which are going to be used by both core
file but also spi file, were moved in header file. Some devices have
different channel definitions when are used in software mode, feature
available only with spi, and those definitions will be added in spi file.

Signed-off-by: Beniamin Bia <beniamin.bia@analog.com>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
5 years agoiio: document bindings for mounting matrices
Linus Walleij [Thu, 21 Feb 2019 17:02:47 +0000 (18:02 +0100)]
iio: document bindings for mounting matrices

The mounting matrix for sensors was introduced in
commit dfc57732ad38 ("iio:core: mounting matrix support")

However the device tree bindings are very terse and since this is
a widely applicable property, we need a proper binding for it
that the other bindings can reference. This will also be useful
for other operating systems and sensor engineering at large.

I think all 3D sensors should support it, the current situation
is probably that the mounting information is confined in magic
userspace components rather than using the mounting matrix, which
is not good for portability and reuse.

Cc: Linus Walleij <linus.walleij@linaro.org>
Cc: Gregor Boirie <gregor.boirie@parrot.com>
Cc: Sebastian Reichel <sre@kernel.org>
Cc: Samu Onkalo <samu.onkalo@intel.com>
Cc: devicetree@vger.kernel.org
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: H. Nikolaus Schaller <hns@goldelico.com>
Reviewed-by: Rob Herring <robh@kernel.org>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
5 years agoiio: common: cros_ec_sensors: Expose cros_ec_sensors frequency range via iio sysfs
Fabien Lahoudere [Tue, 16 Jul 2019 09:11:06 +0000 (11:11 +0200)]
iio: common: cros_ec_sensors: Expose cros_ec_sensors frequency range via iio sysfs

Embedded controller return minimum and maximum frequencies, unfortunately
we have no way to know the step for all available frequencies.
Even if not complete, we can return a list of known values using the
standard read_avail callback (IIO_CHAN_INFO_SAMP_FREQ) to provide them to
userland.

Now cros_ec_* sensors provides frequencies values in sysfs like this:
"0 min max". 0 is always true to disable the sensor.

Default frequencies are provided for earlier protocol.

Signed-off-by: Nick Vaccaro <nvaccaro@chromium.org>
Signed-off-by: Fabien Lahoudere <fabien.lahoudere@collabora.com>
[rebased on top of iio/testing and solved conflicts]
Signed-off-by: Enric Balletbo i Serra <enric.balletbo@collabora.com>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
5 years agoiio: cros_ec_accel_legacy: Add support for veyron-minnie
Gwendal Grignou [Mon, 15 Jul 2019 23:14:54 +0000 (16:14 -0700)]
iio: cros_ec_accel_legacy: Add support for veyron-minnie

Veyron minnie embedded controller presents 2 accelerometers using an
older interface. Add function to query the data in cros_ec_accel.

Verify accelerometers on veyron-minnie are presented and working.

Signed-off-by: Gwendal Grignou <gwendal@chromium.org>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
5 years agoiio: cros_ec_accel_legacy: Use cros_ec_sensors_core
Gwendal Grignou [Mon, 15 Jul 2019 23:14:53 +0000 (16:14 -0700)]
iio: cros_ec_accel_legacy: Use cros_ec_sensors_core

Remove duplicate code in cros-ec-accel-legacy,
use cros-ec-sensors-core functions and structures when possible.

On glimmer, check the 2 accelerometers are presented and working.

Signed-off-by: Gwendal Grignou <gwendal@chromium.org>
Reviewed-by: Enric Balletbo i Serra <enric.balletbo@collabora.com>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
5 years agoiio: cros_ec_accel_legacy: Fix incorrect channel setting
Gwendal Grignou [Mon, 15 Jul 2019 23:14:52 +0000 (16:14 -0700)]
iio: cros_ec_accel_legacy: Fix incorrect channel setting

INFO_SCALE is set both for each channel and all channels.
iio is using all channel setting, so the error was not user visible.

Signed-off-by: Gwendal Grignou <gwendal@chromium.org>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
5 years agoiio: cros_ec: Add sign vector in core for backward compatibility
Gwendal Grignou [Mon, 15 Jul 2019 23:14:51 +0000 (16:14 -0700)]
iio: cros_ec: Add sign vector in core for backward compatibility

To allow cros_ec iio core library to be used with legacy device, add a
vector to rotate sensor data if necessary: legacy devices are not
reporting data in HTML5/Android sensor referential.

Check the data is not rotated on recent chromebooks that use the HTML5
standard to present sensor data.

Signed-off-by: Gwendal Grignou <gwendal@chromium.org>
Reviewed-by: Douglas Anderson <dianders@chromium.org>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
5 years agoiio: common: cros_ec_sensors: determine protocol version
Fabien Lahoudere [Tue, 2 Jul 2019 08:49:38 +0000 (10:49 +0200)]
iio: common: cros_ec_sensors: determine protocol version

This patch adds a function to determine which version of the
protocol is used to communicate with EC.

Signed-off-by: Nick Vaccaro <nvaccaro@chromium.org>
Signed-off-by: Fabien Lahoudere <fabien.lahoudere@collabora.com>
Reviewed-by: Gwendal Grignou <gwendal@chromium.org>
Tested-by: Gwendal Grignou <gwendal@chromium.org>
[rebased on top of iio/testing and solved conflicts]
Signed-off-by: Enric Balletbo i Serra <enric.balletbo@collabora.com>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
5 years agocounter/ftm-quaddec: Use device-managed registration API
Chuhong Yuan [Fri, 26 Jul 2019 13:39:16 +0000 (21:39 +0800)]
counter/ftm-quaddec: Use device-managed registration API

Make use of devm_counter_register.
Then we can remove redundant unregistration API
usage to make code simpler.

Signed-off-by: Chuhong Yuan <hslester96@gmail.com>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
5 years agoiio: imu: st_lsm6dsx: flip irq return logic
Sean Nyekjaer [Mon, 15 Jul 2019 07:07:15 +0000 (09:07 +0200)]
iio: imu: st_lsm6dsx: flip irq return logic

No need for using reverse logic in the irq return,
fix this by flip things around.

Signed-off-by: Sean Nyekjaer <sean@geanix.com>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
5 years agoiio: imu: st_lsm6dsx: add i3c basic support for LSM6DSO and LSM6DSR
Vitor Soares [Fri, 19 Jul 2019 13:30:55 +0000 (15:30 +0200)]
iio: imu: st_lsm6dsx: add i3c basic support for LSM6DSO and LSM6DSR

For today the st_lsm6dsx driver support LSM6DSO and LSM6DSR sensor only in
spi and i2c mode.

The LSM6DSO and LSM6DSR are also i3c capable so let's give i3c support to
them.

Signed-off-by: Vitor Soares <vitor.soares@synopsys.com>
Acked-by: Lorenzo Bianconi <lorenzo@kernel.org>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
5 years agoMerge tag 'tags/i3c/export-i3c_device_match_id' into HEAD
Jonathan Cameron [Sat, 27 Jul 2019 21:54:55 +0000 (22:54 +0100)]
Merge tag 'tags/i3c/export-i3c_device_match_id' into HEAD

Needed for the st_lsm6dsx_i3c.c driver

5 years agoiio: magnetometer: mmc35240: Fix a typo in the name of a constant
Christophe JAILLET [Sun, 21 Jul 2019 21:35:33 +0000 (23:35 +0200)]
iio: magnetometer: mmc35240: Fix a typo in the name of a constant

Everything is about mmc35240_ except MMC53240_WAIT_SET_RESET (3 and 5
switched).

This is likely a typo. Define and use MMC35240_WAIT_SET_RESET instead.

Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
5 years agoiio: pressure: hp03: convert to i2c_new_dummy_device
Wolfram Sang [Mon, 22 Jul 2019 17:26:13 +0000 (19:26 +0200)]
iio: pressure: hp03: convert to i2c_new_dummy_device

Move from i2c_new_dummy() to i2c_new_dummy_device(), so we now get an
ERRPTR which we use in error handling.

Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
5 years agoiio: light: veml6070: convert to i2c_new_dummy_device
Wolfram Sang [Mon, 22 Jul 2019 17:26:12 +0000 (19:26 +0200)]
iio: light: veml6070: convert to i2c_new_dummy_device

Move from i2c_new_dummy() to i2c_new_dummy_device(), so we now get an
ERRPTR which we use in error handling.

Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
5 years agoiio: light: cm36651: convert to i2c_new_dummy_device
Wolfram Sang [Mon, 22 Jul 2019 17:26:11 +0000 (19:26 +0200)]
iio: light: cm36651: convert to i2c_new_dummy_device

Move from i2c_new_dummy() to i2c_new_dummy_device(), so we now get an
ERRPTR which we use in error handling.

Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
5 years agodt-bindings: iio: imu: add bindings for ADIS16460
Alexandru Ardelean [Tue, 23 Jul 2019 07:36:40 +0000 (10:36 +0300)]
dt-bindings: iio: imu: add bindings for ADIS16460

This change adds device-tree bindings for the ADIS16460.

Signed-off-by: Alexandru Ardelean <alexandru.ardelean@analog.com>
Reviewed-by: Rob Herring <robh@kernel.org>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
5 years agoiio: imu: Add support for the ADIS16460 IMU
Alexandru Ardelean [Tue, 23 Jul 2019 07:36:39 +0000 (10:36 +0300)]
iio: imu: Add support for the ADIS16460 IMU

The ADIS16460 device is a complete inertial system that includes a triaxial
gyroscope and a triaxial accelerometer. It's more simplified design than
that of the ADIS16480, and does not offer the triaxial magnetometers &
pressure sensors. It does also have a temperature sensor (like the
ADIS16480).
Since it is part of the ADIS16XXX family, it re-uses parts of the ADIS
library.

Naturally, the register map is different and much more simplified than the
ADIS16480 subfamily, so it cannot be integrated into that driver. A major
difference is that the registers are not paged.

One thing that is particularly special about it, is that it requires a
higher delay between CS changes (i.e. when CS goes up, the spec recommends
that it be brought down after a minimum of 16 uS).
Other ADIS chips require (via spec) a minimum of 2 uS between CS changes.
The kernel's 10 uS default should be fine for those other chips; they
haven't been tested with lower CS change delays yet.

Datasheet:
  https://www.analog.com/media/en/technical-documentation/data-sheets/adis16460.pdf

Signed-off-by: Dragos Bogdan <dragos.bogdan@analog.com>
Signed-off-by: Michael Hennerich <michael.hennerich@analog.com>
Signed-off-by: Alexandru Ardelean <alexandru.ardelean@analog.com>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
5 years agoiio: imu: adis: Add support for SPI transfer cs_change_delay
Alexandru Ardelean [Tue, 23 Jul 2019 07:36:38 +0000 (10:36 +0300)]
iio: imu: adis: Add support for SPI transfer cs_change_delay

The ADIS16460 requires a higher delay before the next transfer. Since the
SPI framework supports configuring the delay before the next transfer, this
driver will become the first user of it.

The support for this functionality in ADIS16460 requires an addition to the
ADIS lib to support the `cs_change_delay` functionality from the SPI
subsystem.

Signed-off-by: Michael Hennerich <michael.hennerich@analog.com>
Signed-off-by: Alexandru Ardelean <alexandru.ardelean@analog.com>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
5 years agoiio: mxc4005: Use device-managed APIs
Chuhong Yuan [Fri, 26 Jul 2019 06:36:16 +0000 (14:36 +0800)]
iio: mxc4005: Use device-managed APIs

Use device-managed APIs to simplify the code.
The remove function is redundant now and can
be deleted.

Signed-off-by: Chuhong Yuan <hslester96@gmail.com>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
5 years agoiio: humidity: Use device-managed APIs
Chuhong Yuan [Fri, 26 Jul 2019 08:02:55 +0000 (16:02 +0800)]
iio: humidity: Use device-managed APIs

Use device-managed APIs to simplify the code.
The remove functions are redundant now and can
be deleted.

Signed-off-by: Chuhong Yuan <hslester96@gmail.com>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
5 years agostaging: iio: ad2s1210: Use device-managed API
Chuhong Yuan [Fri, 26 Jul 2019 11:07:42 +0000 (19:07 +0800)]
staging: iio: ad2s1210: Use device-managed API

Use device-managed API to simplify the code.
The remove function is redundant now and can
be deleted.

Signed-off-by: Chuhong Yuan <hslester96@gmail.com>
Reviewed-by: Alexandru Ardelean <alexandru.ardelean@analog.com>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
5 years agoiio: maxim_thermocouple: Use device-managed APIs
Chuhong Yuan [Fri, 26 Jul 2019 10:49:50 +0000 (18:49 +0800)]
iio: maxim_thermocouple: Use device-managed APIs

Use device-managed APIs to simplify the code.
The remove functions are redundant now and can
be deleted.

Signed-off-by: Chuhong Yuan <hslester96@gmail.com>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
5 years agoiio: make st_sensors drivers use regmap
Denis Ciocca [Thu, 18 Jul 2019 22:53:53 +0000 (15:53 -0700)]
iio: make st_sensors drivers use regmap

This patch is meant to replace the i2c/spi transfer functions with
regmap. SPI framework requires DMA safe buffers so let's add GFP_DMA
flag for memory allocation used by bulk_read functions.

Signed-off-by: Denis Ciocca <denis.ciocca@st.com>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
5 years agoiio: move 3-wire spi initialization to st_sensors_spi
Denis Ciocca [Thu, 18 Jul 2019 22:53:52 +0000 (15:53 -0700)]
iio: move 3-wire spi initialization to st_sensors_spi

Some devices need to be configured with special bit in order to
use spi 3-wire. This was done during device identification phase.
Instead, let's move this part as spi specific.
Doing this the check_device_support function becomes a simple
device id check, so let's rename it.

Signed-off-by: Denis Ciocca <denis.ciocca@st.com>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
5 years agoiio:pressure: device settings are set immediately during probe
Denis Ciocca [Thu, 18 Jul 2019 22:53:51 +0000 (15:53 -0700)]
iio:pressure: device settings are set immediately during probe

This patch set pressure settings right after probe start. This is
done in preparation of regmap that needs different configuration
based on multiread bit value.

Signed-off-by: Denis Ciocca <denis.ciocca@st.com>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
5 years agoiio:magn: device settings are set immediately during probe
Denis Ciocca [Thu, 18 Jul 2019 22:53:50 +0000 (15:53 -0700)]
iio:magn: device settings are set immediately during probe

This patch set magn settings right after probe start. This is
done in preparation of regmap that needs different configuration
based on multiread bit value.

Signed-off-by: Denis Ciocca <denis.ciocca@st.com>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
5 years agoiio:gyro: device settings are set immediately during probe
Denis Ciocca [Thu, 18 Jul 2019 22:53:49 +0000 (15:53 -0700)]
iio:gyro: device settings are set immediately during probe

This patch set gyro settings right after probe start. This is
done in preparation of regmap that needs different configuration
based on multiread bit value.

Signed-off-by: Denis Ciocca <denis.ciocca@st.com>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
5 years agoiio:accel: device settings are set immediately during probe
Denis Ciocca [Thu, 18 Jul 2019 22:53:48 +0000 (15:53 -0700)]
iio:accel: device settings are set immediately during probe

This patch set accel settings right after probe start. This is
done in preparation of regmap that needs different configuration
based on multiread bit value.

Signed-off-by: Denis Ciocca <denis.ciocca@st.com>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
5 years agoiio:pressure: introduce st_press_get_settings() function
Denis Ciocca [Thu, 18 Jul 2019 22:53:47 +0000 (15:53 -0700)]
iio:pressure: introduce st_press_get_settings() function

The function is introduced to retrieve press device settings. It will be
used by probe in order to configure regmap.

Signed-off-by: Denis Ciocca <denis.ciocca@st.com>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
5 years agoiio:magn: introduce st_magn_get_settings() function
Denis Ciocca [Thu, 18 Jul 2019 22:53:46 +0000 (15:53 -0700)]
iio:magn: introduce st_magn_get_settings() function

The function is introduced to retrieve magn device settings. It will be
used by probe in order to configure regmap.

Signed-off-by: Denis Ciocca <denis.ciocca@st.com>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
5 years agoiio:gyro: introduce st_gyro_get_settings() function
Denis Ciocca [Thu, 18 Jul 2019 22:53:45 +0000 (15:53 -0700)]
iio:gyro: introduce st_gyro_get_settings() function

The function is introduced to retrieve gyro device settings. It will be
used by probe in order to configure regmap.

Signed-off-by: Denis Ciocca <denis.ciocca@st.com>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
5 years agoiio:accel: introduce st_accel_get_settings() function
Denis Ciocca [Thu, 18 Jul 2019 22:53:44 +0000 (15:53 -0700)]
iio:accel: introduce st_accel_get_settings() function

The function is introduced to retrieve accel device settings. It will be
used by probe in order to configure regmap.

Signed-off-by: Denis Ciocca <denis.ciocca@st.com>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
5 years agoiio:common:st_sensors: add st_sensors_get_settings_index() helper function
Denis Ciocca [Thu, 18 Jul 2019 22:53:43 +0000 (15:53 -0700)]
iio:common:st_sensors: add st_sensors_get_settings_index() helper function

Extract from st_sensors_check_device_support() function the code that
is used to get the specific settings for a device. This will be used
as generic extractor by each ST driver.

Signed-off-by: Denis Ciocca <denis.ciocca@st.com>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
5 years agoiio: cros_ec: Remove replacing error code with -EIO
Gwendal Grignou [Thu, 18 Jul 2019 22:22:37 +0000 (15:22 -0700)]
iio: cros_ec: Remove replacing error code with -EIO

Due to an API misread, error code can be different for -EIO when reading
a sysfs entry. Return the error reported by the cros_ec stack.

Check the proper error message (protocol error, not supported) is
reported when there is an error returned by the EC stack.

Signed-off-by: Gwendal Grignou <gwendal@chromium.org>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
5 years agoiio: cros_ec: Add calibscale for 3d MEMS
Gwendal Grignou [Thu, 18 Jul 2019 23:28:24 +0000 (16:28 -0700)]
iio: cros_ec: Add calibscale for 3d MEMS

Add calibration scale support to accel, gyro and magnetometer.

Check on eve with current firmware, check reading calibscale returns 1.0,
check with newer firmware values are applied.

Signed-off-by: Gwendal Grignou <gwendal@chromium.org>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
5 years agoiio: light: apds9960: Fix a typo
Christophe JAILLET [Sun, 21 Jul 2019 10:49:18 +0000 (12:49 +0200)]
iio: light: apds9960: Fix a typo

s/ADPS9960/APDS9960/
(P and D switched)

Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
5 years agoiio: sca3000: Fix a typo
Christophe JAILLET [Sun, 21 Jul 2019 10:53:53 +0000 (12:53 +0200)]
iio: sca3000: Fix a typo

All #define are about SCA3000_... except the last one.
Make it consistent.

s/SAC3000/SCA3000/

This #define is apparently unused up to now.

Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
5 years agoIIO: stm32: Remove quadrature related functions from trigger driver
Benjamin Gaignard [Tue, 7 May 2019 09:12:24 +0000 (11:12 +0200)]
IIO: stm32: Remove quadrature related functions from trigger driver

Quadrature feature is now hosted on it own framework.
Remove quadrature related code from stm32-trigger driver to avoid
code duplication and simplify the ABI.

Signed-off-by: Benjamin Gaignard <benjamin.gaignard@st.com>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
5 years agostaging: iio: ad7192: create of_device_id array
Bárbara Fernandes [Fri, 28 Jun 2019 19:49:22 +0000 (16:49 -0300)]
staging: iio: ad7192: create of_device_id array

Create list of compatible device ids to be matched with those stated in
the device tree.

Signed-off-by: Bárbara Fernandes <barbara.fernandes@usp.br>
Signed-off-by: Wilson Sales <spoonm@spoonm.org>
Co-developed by: Wilson Sales <spoonm@spoonm.org>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
5 years agodt-bindings: iio: imu: st_lsm6dsx: add lsm6ds3tr-c device bindings
Lorenzo Bianconi [Sat, 29 Jun 2019 10:13:54 +0000 (12:13 +0200)]
dt-bindings: iio: imu: st_lsm6dsx: add lsm6ds3tr-c device bindings

Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
5 years agoiio: imu: st_lsm6dsx: add support to LSM6DS3TR-C
Lorenzo Bianconi [Sat, 29 Jun 2019 10:13:53 +0000 (12:13 +0200)]
iio: imu: st_lsm6dsx: add support to LSM6DS3TR-C

Add support to STM LSM6DS3TR-C 6-axis (acc + gyro) Mems sensor
https://www.st.com/resource/en/datasheet/lsm6ds3tr-c.pdf

Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
5 years agoDocumentation: ABI: iio: Add missing newline at end of file
Geert Uytterhoeven [Mon, 1 Jul 2019 13:56:31 +0000 (15:56 +0200)]
Documentation: ABI: iio: Add missing newline at end of file

"git diff" says:

    \ No newline at end of file

after modifying the files.

Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
5 years agoiio: adc: stm32-adc: add analog switches supply control
Fabrice Gasnier [Wed, 3 Jul 2019 10:08:15 +0000 (12:08 +0200)]
iio: adc: stm32-adc: add analog switches supply control

On stm32h7 and stm32mp1, the ADC inputs are multiplexed with analog
switches which have reduced performances when their supply is below 2.7V
(vdda by default):
- 3.3V embedded booster can be used, to get full ADC performances
  (increases power consumption).
- vdd supply can be selected if above 2.7V by setting ANASWVDD syscfg bit,
  on STM32MP1 only.

Make this optional, since this is a trade-off between analog performance
and power consumption.

Signed-off-by: Fabrice Gasnier <fabrice.gasnier@st.com>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
5 years agodt-bindings: iio: adc: stm32: add analog switches supply control
Fabrice Gasnier [Wed, 3 Jul 2019 10:08:14 +0000 (12:08 +0200)]
dt-bindings: iio: adc: stm32: add analog switches supply control

On stm32h7 and stm32mp1, the ADC inputs are multiplexed with analog
switches which have reduced performances when their supply is below 2.7V
(vdda by default). Booster or vdd can be used, to get full ADC
performances.

Add documentation for:
- optional booster-supply that can be used on stm32h7 and stm32mp1.
- optional vdd-supply that can be used on stm32mp1 to supply analog
  circuitry, selected by syscfg.
Mark these as optional, since this is a trade-off between analog
performance and power consumption.

Signed-off-by: Fabrice Gasnier <fabrice.gasnier@st.com>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
5 years agoiio: light: stk3310: Add device tree support
Luca Weiss [Wed, 3 Jul 2019 18:05:59 +0000 (20:05 +0200)]
iio: light: stk3310: Add device tree support

Add device tree support for the stk33xx family of ambient light sensors.

Tested-by: Martijn Braam <martijn@brixit.nl>
Signed-off-by: Luca Weiss <luca@z3ntu.xyz>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
5 years agodt-bindings: iio: light: add stk33xx
Luca Weiss [Wed, 3 Jul 2019 18:05:58 +0000 (20:05 +0200)]
dt-bindings: iio: light: add stk33xx

Add binding documentation for the stk33xx family of ambient light
sensors.

Signed-off-by: Luca Weiss <luca@z3ntu.xyz>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
5 years agodt-bindings: Add vendor prefix for sensortek
Luca Weiss [Wed, 3 Jul 2019 18:05:57 +0000 (20:05 +0200)]
dt-bindings: Add vendor prefix for sensortek

Sensortek Technology Corp. produces Proximity Sensors with ALS and
Accelerometers.

Signed-off-by: Luca Weiss <luca@z3ntu.xyz>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
5 years agoiio: imu: mpu6050: Replace devm_add_action() followed by failure action with devm_add...
Fuqian Huang [Mon, 8 Jul 2019 12:33:41 +0000 (20:33 +0800)]
iio: imu: mpu6050: Replace devm_add_action() followed by failure action with devm_add_action_or_reset()

devm_add_action_or_reset() is introduced as a helper function which
internally calls devm_add_action(). If devm_add_action() fails
then it will execute the action mentioned and return the error code.
This reduce source code size (avoid writing the action twice)
and reduce the likelyhood of bugs.

Signed-off-by: Fuqian Huang <huangfq.daxian@gmail.com>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
5 years agoiio: adc: sc27xx: Replace devm_add_action() followed by failure action with devm_add_...
Fuqian Huang [Mon, 8 Jul 2019 12:32:43 +0000 (20:32 +0800)]
iio: adc: sc27xx: Replace devm_add_action() followed by failure action with devm_add_action_or_reset()

devm_add_action_or_reset() is introduced as a helper function which
internally calls devm_add_action(). If devm_add_action() fails
then it will execute the action mentioned and return the error code.
This reduce source code size (avoid writing the action twice)
and reduce the likelyhood of bugs.

Signed-off-by: Fuqian Huang <huangfq.daxian@gmail.com>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
5 years agoiio: adc: sc27xx: Introduce local variable 'struct device *dev'
Fuqian Huang [Mon, 8 Jul 2019 12:32:21 +0000 (20:32 +0800)]
iio: adc: sc27xx: Introduce local variable 'struct device *dev'

Introduce local variable 'struct device *dev' and use it instead of
dereferencing it repeatly.

Signed-off-by: Fuqian Huang <huangfq.daxian@gmail.com>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
5 years agoMAINTAINERS: add entry for plantower pms7003 driver
Tomasz Duszynski [Wed, 10 Jul 2019 19:21:55 +0000 (21:21 +0200)]
MAINTAINERS: add entry for plantower pms7003 driver

Add myself as a plantower pms7003 driver maintainer.

Signed-off-by: Tomasz Duszynski <tduszyns@gmail.com>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
5 years agodt-bindings: iio: chemical: pms7003: convert bindings to yaml
Tomasz Duszynski [Wed, 10 Jul 2019 19:21:54 +0000 (21:21 +0200)]
dt-bindings: iio: chemical: pms7003: convert bindings to yaml

Convert existing device tree bindings to yaml.

Signed-off-by: Tomasz Duszynski <tduszyns@gmail.com>
Reviewed-by: Rob Herring <robh@kernel.org>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
5 years agoi3c: move i3c_device_match_id to device.c and export it
Vitor Soares [Fri, 19 Jul 2019 13:30:54 +0000 (15:30 +0200)]
i3c: move i3c_device_match_id to device.c and export it

Some I3C device drivers need to know which entry matches the
i3c_device object passed to the probe function

Let's move i3c_device_match_id() to device.c and export it so it can be
used by drivers.

Signed-off-by: Vitor Soares <vitor.soares@synopsys.com>
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
5 years agostaging: rtl8192*: display ESSIDs using %pE
J. Bruce Fields [Wed, 10 Jul 2019 22:59:34 +0000 (18:59 -0400)]
staging: rtl8192*: display ESSIDs using %pE

Everywhere else in the kernel ESSIDs are printed using %pE, and I can't
see why there should be an exception here.

Signed-off-by: J. Bruce Fields <bfields@redhat.com>
Link: https://lore.kernel.org/r/1562799574-13315-1-git-send-email-bfields@redhat.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
5 years agostaging: rtl8723bs: hal: Remove unneeded variable pU1Tmp
Hariprasad Kelam [Thu, 25 Jul 2019 03:23:25 +0000 (08:53 +0530)]
staging: rtl8723bs: hal: Remove unneeded variable pU1Tmp

Both pu8 and pU1Tmp are of same data type u8. So replace pU1Tmp with u8.

Signed-off-by: Hariprasad Kelam <hariprasad.kelam@gmail.com>
Link: https://lore.kernel.org/r/20190725032325.GA16473@hari-Inspiron-1545
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
5 years agostaging: rtl8723bs: Remove unused function prototype ODM_SetAntenna()
Nishka Dasgupta [Thu, 25 Jul 2019 05:26:45 +0000 (10:56 +0530)]
staging: rtl8723bs: Remove unused function prototype ODM_SetAntenna()

Remove unused function prototype ODM_SetAntenna.

Signed-off-by: Nishka Dasgupta <nishkadg.linux@gmail.com>
Link: https://lore.kernel.org/r/20190725052645.2372-9-nishkadg.linux@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
5 years agostaging: rtl8723bs: Replace function ODM_TXPowerTrackingCheck()
Nishka Dasgupta [Thu, 25 Jul 2019 05:26:44 +0000 (10:56 +0530)]
staging: rtl8723bs: Replace function ODM_TXPowerTrackingCheck()

Remove function ODM_TXPowerTrackingCheck as all it does is call
odm_TXPowerTrackingCheckCE.
Rename odm_TXPowerTrackingCheckCE to ODM_TXPowerTrackingCheck to
maintain compatibility with call site.
Issue found with Coccinelle.

Signed-off-by: Nishka Dasgupta <nishkadg.linux@gmail.com>
Link: https://lore.kernel.org/r/20190725052645.2372-8-nishkadg.linux@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
5 years agostaging: rtl8723bs: Replace function odm_TXPowerTrackingInit()
Nishka Dasgupta [Thu, 25 Jul 2019 05:26:43 +0000 (10:56 +0530)]
staging: rtl8723bs: Replace function odm_TXPowerTrackingInit()

Remove function odm_TXPowerTrackingInit as all it does is call
odm_TXPowerTrackingThermalMeterInit.
Rename odm_TXPowerTrackingThermalMeterInit to
odm_TXPowerTrackingInit to maintain compatibility with call sites.
Issue found with Coccinelle.

Signed-off-by: Nishka Dasgupta <nishkadg.linux@gmail.com>
Link: https://lore.kernel.org/r/20190725052645.2372-7-nishkadg.linux@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
5 years agostaging: rtl8723bs: Replace function beacon_timing_control()
Nishka Dasgupta [Thu, 25 Jul 2019 05:26:42 +0000 (10:56 +0530)]
staging: rtl8723bs: Replace function beacon_timing_control()

Remove function beacon_timing_control as it does nothing except call
rtw_hal_bcn_related_reg_setting.
Rename rtw_hal_bcn_related_reg_setting to beacon_timing_control to
maintain compatibility with call site.
Issue found with Coccinelle.

Signed-off-by: Nishka Dasgupta <nishkadg.linux@gmail.com>
Link: https://lore.kernel.org/r/20190725052645.2372-6-nishkadg.linux@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
5 years agostaging: rtl8723bs: hal: Replace function rtl8723b_set_ap_wowlan_cmd()
Nishka Dasgupta [Thu, 25 Jul 2019 05:26:41 +0000 (10:56 +0530)]
staging: rtl8723bs: hal: Replace function rtl8723b_set_ap_wowlan_cmd()

Remove function rtl8723b_set_ap_wowlan_cmd as all it does is call
rtl8723b_set_AP_FwWoWlanRelated_cmd.
Rename rtl8723b_set_AP_FwWoWlanRelated_cmd to
rtl8723b_set_ap_wowlan_cmd to maintain compatibility with call site.
Issue found with Coccinelle.

Signed-off-by: Nishka Dasgupta <nishkadg.linux@gmail.com>
Link: https://lore.kernel.org/r/20190725052645.2372-5-nishkadg.linux@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
5 years agostaging: rtl8723bs: hal: Replace function rtl8723b_set_wowlan_cmd()
Nishka Dasgupta [Thu, 25 Jul 2019 05:26:40 +0000 (10:56 +0530)]
staging: rtl8723bs: hal: Replace function rtl8723b_set_wowlan_cmd()

Remove function rtl8723b_set_wowlan_cmd as all it does is call
rtl8723b_set_FwWoWlanRelated_cmd.
Rename rtl8723b_set_FwWoWlanRelated_cmd to rtl8723b_set_wowlan_cmd to
maintain compatibility with call site.
Issue found with Coccinelle.

Signed-off-by: Nishka Dasgupta <nishkadg.linux@gmail.com>
Link: https://lore.kernel.org/r/20190725052645.2372-4-nishkadg.linux@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
5 years agostaging: rtl8723bs: hal: Replace function PHY_GetTxPowerIndex()
Nishka Dasgupta [Thu, 25 Jul 2019 05:26:39 +0000 (10:56 +0530)]
staging: rtl8723bs: hal: Replace function PHY_GetTxPowerIndex()

Remove function PHY_GetTxPowerIndex as it does nothing except call
PHY_GetTxPowerIndex_8723B.
Rename PHY_GetTxPowerIndex_8723B to PHY_GetTxPowerIndex to maintain
compatibility with call site.
Issue found with Coccinelle.

Signed-off-by: Nishka Dasgupta <nishkadg.linux@gmail.com>
Link: https://lore.kernel.org/r/20190725052645.2372-3-nishkadg.linux@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
5 years agostaging: rtl8723bs: hal: Replace function PHY_SetTxPowerIndex()
Nishka Dasgupta [Thu, 25 Jul 2019 05:26:38 +0000 (10:56 +0530)]
staging: rtl8723bs: hal: Replace function PHY_SetTxPowerIndex()

Remove function PHY_SetTxPowerIndex as it does nothing except call
PHY_SetTxPowerIndex_8723B.
Rename PHY_SetTxPowerIndex_8723B to PHY_SetTxPowerIndex to maintain
compatibility with call site.
Issue found with Coccinelle.

Signed-off-by: Nishka Dasgupta <nishkadg.linux@gmail.com>
Link: https://lore.kernel.org/r/20190725052645.2372-2-nishkadg.linux@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
5 years agostaging: rtl8723bs: rtw_pwrctrl: Change true/false checks
Nishka Dasgupta [Thu, 25 Jul 2019 05:26:37 +0000 (10:56 +0530)]
staging: rtl8723bs: rtw_pwrctrl: Change true/false checks

Change comparisons to true to the variable itself.
Change comparisons to false to the negation of the variable.

Signed-off-by: Nishka Dasgupta <nishkadg.linux@gmail.com>
Link: https://lore.kernel.org/r/20190725052645.2372-1-nishkadg.linux@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
5 years agodrivers/staging/rtl8192u: fix indentation issue, remove extra tab
Colin Ian King [Tue, 23 Jul 2019 14:50:22 +0000 (15:50 +0100)]
drivers/staging/rtl8192u: fix indentation issue, remove extra tab

A statement is indented one level too deeply; clean this up by
removing a tab.

Signed-off-by: Colin Ian King <colin.king@canonical.com>
Link: https://lore.kernel.org/r/20190723145022.11608-1-colin.king@canonical.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
5 years agostaging: mt7621-pci: avoid use 'err' local variable
Sergio Paracuellos [Sat, 20 Jul 2019 07:29:08 +0000 (09:29 +0200)]
staging: mt7621-pci: avoid use 'err' local variable

Function 'mt7621_pcie_request_resources' is using 'err'
local variable to get value returned from 'devm_request_pci_bus_resources'
and returning after that. This is not needed at all. Instead of that
just directly return returned value by the function which is also
returning zero on success.

Signed-off-by: Sergio Paracuellos <sergio.paracuellos@gmail.com>
Link: https://lore.kernel.org/r/20190720072908.16795-1-sergio.paracuellos@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
5 years agostaging: rtl8192e: remove set but not used variable 'payload '
YueHaibing [Wed, 17 Jul 2019 14:35:51 +0000 (22:35 +0800)]
staging: rtl8192e: remove set but not used variable 'payload '

Fixes gcc '-Wunused-but-set-variable' warning:

drivers/staging/rtl8192e/rtllib_rx.c: In function rtllib_rx_InfraAdhoc:
drivers/staging/rtl8192e/rtllib_rx.c:1303:6: warning:
 variable payload set but not used [-Wunused-but-set-variable]

Reported-by: Hulk Robot <hulkci@huawei.com>
Signed-off-by: YueHaibing <yuehaibing@huawei.com>
Link: https://lore.kernel.org/r/20190717143551.29200-1-yuehaibing@huawei.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
5 years agostaging: rtl8723bs: hal: remove redundant assignment to variable n
Colin Ian King [Tue, 23 Jul 2019 14:59:05 +0000 (15:59 +0100)]
staging: rtl8723bs: hal: remove redundant assignment to variable n

The variable n is being assigned a value that is never read, the
assignment is redundant and can be removed.

Addresses-Coverity: ("Unused value")
Signed-off-by: Colin Ian King <colin.king@canonical.com>
Link: https://lore.kernel.org/r/20190723145905.13514-1-colin.king@canonical.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
5 years agostaging: rtl8723bs: remove unused file hal_phy.c
Michael Straube [Sun, 21 Jul 2019 17:57:35 +0000 (19:57 +0200)]
staging: rtl8723bs: remove unused file hal_phy.c

Remove the unused file hal_phy.c. No function from this file is used
in the driver code and it is not listed in the Makefile.

Signed-off-by: Michael Straube <straube.linux@gmail.com>
Link: https://lore.kernel.org/r/20190721175735.24173-1-straube.linux@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>