Merge tag 'drm-misc-next-fixes-2017-05-05' of git://anongit.freedesktop.org/git/drm...
[GitHub/moto-9609/android_kernel_motorola_exynos9610.git] / Documentation / misc-devices / lis3lv02d
CommitLineData
455fbdd3 1Kernel driver lis3lv02d
2b872903 2=======================
455fbdd3
PM
3
4Supported chips:
5
bc62c147 6 * STMicroelectronics LIS3LV02DL, LIS3LV02DQ (12 bits precision)
0bf5a8be
AC
7 * STMicroelectronics LIS302DL, LIS3L02DQ, LIS331DL (8 bits) and
8 LIS331DLH (16 bits)
455fbdd3 9
2b872903 10Authors:
455fbdd3
PM
11 Yan Burman <burman.yan@gmail.com>
12 Eric Piel <eric.piel@tremplin-utc.net>
13
14
15Description
16-----------
17
bc62c147
ÉP
18This driver provides support for the accelerometer found in various HP laptops
19sporting the feature officially called "HP Mobile Data Protection System 3D" or
20"HP 3D DriveGuard". It detects automatically laptops with this sensor. Known
efcfed9b
JD
21models (full list can be found in drivers/platform/x86/hp_accel.c) will have
22their axis automatically oriented on standard way (eg: you can directly play
bc62c147 23neverball). The accelerometer data is readable via
e956e6b7
SO
24/sys/devices/platform/lis3lv02d. Reported values are scaled
25to mg values (1/1000th of earth gravity).
455fbdd3
PM
26
27Sysfs attributes under /sys/devices/platform/lis3lv02d/:
28position - 3D position that the accelerometer reports. Format: "(x,y,z)"
e956e6b7
SO
29rate - read reports the sampling rate of the accelerometer device in HZ.
30 write changes sampling rate of the accelerometer device.
31 Only values which are supported by HW are accepted.
32selftest - performs selftest for the chip as specified by chip manufacturer.
455fbdd3
PM
33
34This driver also provides an absolute input class device, allowing
e956e6b7
SO
35the laptop to act as a pinball machine-esque joystick. Joystick device can be
36calibrated. Joystick device can be in two different modes.
37By default output values are scaled between -32768 .. 32767. In joystick raw
38mode, joystick and sysfs position entry have the same scale. There can be
39small difference due to input system fuzziness feature.
40Events are also available as input event device.
41
42Selftest is meant only for hardware diagnostic purposes. It is not meant to be
43used during normal operations. Position data is not corrupted during selftest
44but interrupt behaviour is not guaranteed to work reliably. In test mode, the
45sensing element is internally moved little bit. Selftest measures difference
46between normal mode and test mode. Chip specifications tell the acceptance
47limit for each type of the chip. Limits are provided via platform data
48to allow adjustment of the limits without a change to the actual driver.
49Seltest returns either "OK x y z" or "FAIL x y z" where x, y and z are
50measured difference between modes. Axes are not remapped in selftest mode.
51Measurement values are provided to help HW diagnostic applications to make
52final decision.
455fbdd3 53
bc62c147
ÉP
54On HP laptops, if the led infrastructure is activated, support for a led
55indicating disk protection will be provided as /sys/class/leds/hp::hddprotect.
56
ef2cfc79
PM
57Another feature of the driver is misc device called "freefall" that
58acts similar to /dev/rtc and reacts on free-fall interrupts received
59from the device. It supports blocking operations, poll/select and
60fasync operation modes. You must read 1 bytes from the device. The
61result is number of free-fall interrupts since the last successful
0024d6e9 62read (or 255 if number of interrupts would not fit). See the freefall.c
bc62c147 63file for an example on using the device.
ef2cfc79
PM
64
65
455fbdd3
PM
66Axes orientation
67----------------
68
69For better compatibility between the various laptops. The values reported by
70the accelerometer are converted into a "standard" organisation of the axes
71(aka "can play neverball out of the box"):
72 * When the laptop is horizontal the position reported is about 0 for X and Y
2b872903 73 and a positive value for Z
455fbdd3 74 * If the left side is elevated, X increases (becomes positive)
219beb29
PM
75 * If the front side (where the touchpad is) is elevated, Y decreases
76 (becomes negative)
455fbdd3
PM
77 * If the laptop is put upside-down, Z becomes negative
78
219beb29 79If your laptop model is not recognized (cf "dmesg"), you can send an
bc62c147 80email to the maintainer to add it to the database. When reporting a new
219beb29
PM
81laptop, please include the output of "dmidecode" plus the value of
82/sys/devices/platform/lis3lv02d/position in these four cases.
455fbdd3 83
2b872903
PM
84Q&A
85---
86
87Q: How do I safely simulate freefall? I have an HP "portable
88workstation" which has about 3.5kg and a plastic case, so letting it
89fall to the ground is out of question...
90
91A: The sensor is pretty sensitive, so your hands can do it. Lift it
92into free space, follow the fall with your hands for like 10
93centimeters. That should be enough to trigger the detection.