mirror of
https://github.com/edk2-porting/linux-next.git
synced 2024-12-26 14:14:01 +08:00
65e4345c8e
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:
|
||
---|---|---|
.. | ||
accel | ||
adc | ||
common | ||
dac | ||
frequency | ||
gyro | ||
imu | ||
magnetometer | ||
buffer-dma.h | ||
buffer-dmaengine.h | ||
buffer.h | ||
configfs.h | ||
consumer.h | ||
driver.h | ||
events.h | ||
iio.h | ||
kfifo_buf.h | ||
machine.h | ||
sw_device.h | ||
sw_trigger.h | ||
sysfs.h | ||
trigger_consumer.h | ||
trigger.h | ||
triggered_buffer.h | ||
triggered_event.h | ||
types.h |