linux/drivers/iio
Linus Walleij 65e4345c8e iio: accel: st_accel: fix LIS3LV02 reading and scaling
The LIS3LV02 has a special bit that need to be set to get the
read values left aligned. Before this patch we get gibberish
like this:

iio_generic_buffer -a -c10 -n lis3lv02dl_accel
(...)
0.000000 -0.010042 -0.642688 19155832931907
0.000000 -0.010042 -0.642688 19155858751073

Which is because we read a raw value for 1g as 64 which is
the nominal 1024 for 1g shifted 4 bits to the left by being
right-aligned rather than left aligned.

Since all other sensors are left aligned, add some code to
set the special DAS (data alignment setting) bit to 1 so that
the right value is now read like this:

iio_generic_buffer -a -c10 -n lis3lv02dl_accel
(...)
0.000000 -0.147095 -10.120135 24761614364956
-0.029419 -0.176514 -10.120135 24761631624540

The scaling was weird as well: we have a gain of 1000 for 1g
and 3000 for 6g. I don't even remember how I came up with the
old values but they are wrong.

Fixes: 3acddf74f8 ("iio: st-sensors: add support for lis3lv02d accelerometer")
Cc: Lorenzo Bianconi <lorenzo.bianconi@st.com>
Cc: Giuseppe Barba <giuseppe.barba@st.com>
Cc: Denis Ciocca <denis.ciocca@st.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
2016-12-31 14:35:04 +00:00
..
accel iio: accel: st_accel: fix LIS3LV02 reading and scaling 2016-12-31 14:35:04 +00:00
adc iio: adc: TI_AM335X_ADC should depend on HAS_DMA 2016-12-30 16:37:48 +00:00
amplifiers
buffer iio: add resource managed triggered buffer init helpers 2016-09-04 15:42:46 +01:00
chemical iio:chemical:atlas-ph-sensor: Fix use of 32 bit int to hold 16 bit big endian value 2016-10-23 22:18:27 +01:00
common iio: accel: st_accel: fix LIS3LV02 reading and scaling 2016-12-31 14:35:04 +00:00
counter iio: 104-quad-8: Fix active level mismatch for the preset enable option 2016-12-03 10:08:09 +00:00
dac iio: dpot-dac: DAC driver based on a digital potentiometer 2016-11-13 13:07:15 +00:00
dummy iio:core: timestamping clock selection support 2016-06-30 19:41:38 +01:00
frequency iio: frequency: ad9523: use unsigned int rather then bare unsigned 2016-04-17 10:31:03 +01:00
gyro iio: gyro: st_gyro: inline per-sensor data 2016-11-12 15:38:09 +00:00
health First round of IIO new device support, features and cleanups for the 4.8 cycle. 2016-06-09 09:15:58 -07:00
humidity iio: si7020: Add devicetree support and trivial bindings 2016-11-01 18:49:53 +00:00
imu iio: bmi160: Fix time needed to sleep after command execution 2016-12-30 10:52:00 +00:00
light iio: max44000: correct value in illuminance_integration_time_available 2016-12-30 20:20:23 +00:00
magnetometer iio: magnetometer: separate the values of attributes based on their usage type for HID compass sensor 2016-11-24 20:41:30 +00:00
orientation iio: orientation: hid-sensor-rotation: Add PM function (fix non working driver) 2016-11-05 17:47:47 +00:00
potentiometer iio: mcp4531: provide range of available raw values 2016-11-13 11:40:26 +00:00
potentiostat iio: potentiostat: add LMP91000 support 2016-09-27 20:33:03 +01:00
pressure iio: pressure: st_pressure: inline per-sensor data 2016-11-12 15:50:10 +00:00
proximity iio: proximity: pulsedlight-lidar-lite-v2: cleanup power management 2016-10-23 19:34:26 +01:00
temperature iio: maxim_thermocouple: detect invalid storage size in read() 2016-11-13 10:08:32 +01:00
trigger iio:trigger: Experimental kthread tight loop trigger (thread only) 2016-06-03 13:18:44 +01:00
iio_core_trigger.h
iio_core.h iio:core: timestamping clock selection support 2016-06-30 19:41:38 +01:00
industrialio-buffer.c iio: Use kmalloc_array() in iio_scan_mask_set() 2016-09-24 16:35:24 +01:00
industrialio-configfs.c iio:configfs: Introduce iio/configfs.h to provide a location for the configfs_subsystem 2015-12-05 16:25:30 +00:00
industrialio-core.c iio:core: add a callback to allow drivers to provide _available attributes 2016-11-13 11:40:25 +00:00
industrialio-event.c iio: iio_push_event(): Don't crash if the event interface is not registered 2016-09-10 16:40:44 +01:00
industrialio-sw-device.c iio: Add support for creating IIO devices via configfs 2016-05-04 11:43:54 +01:00
industrialio-sw-trigger.c iio: core: fix ptr_ret.cocci warnings 2016-01-20 17:09:18 -08:00
industrialio-trigger.c iio:trigger: Add helper function to verify that a trigger belongs to the same device 2016-09-27 20:32:55 +01:00
industrialio-triggered-event.c
inkern.c iio: inkern: add helpers to query available values from channels 2016-11-13 11:40:26 +00:00
Kconfig iio: 104-quad-8: Add IIO support for the ACCES 104-QUAD-8 2016-10-01 17:06:21 +01:00
Makefile iio: 104-quad-8: Add IIO support for the ACCES 104-QUAD-8 2016-10-01 17:06:21 +01:00