0001 =======================
0002 Kernel driver lis3lv02d
0003 =======================
0004
0005 Supported chips:
0006
0007 * STMicroelectronics LIS3LV02DL, LIS3LV02DQ (12 bits precision)
0008 * STMicroelectronics LIS302DL, LIS3L02DQ, LIS331DL (8 bits) and
0009 LIS331DLH (16 bits)
0010
0011 Authors:
0012 - Yan Burman <burman.yan@gmail.com>
0013 - Eric Piel <eric.piel@tremplin-utc.net>
0014
0015
0016 Description
0017 -----------
0018
0019 This driver provides support for the accelerometer found in various HP laptops
0020 sporting the feature officially called "HP Mobile Data Protection System 3D" or
0021 "HP 3D DriveGuard". It detects automatically laptops with this sensor. Known
0022 models (full list can be found in drivers/platform/x86/hp_accel.c) will have
0023 their axis automatically oriented on standard way (eg: you can directly play
0024 neverball). The accelerometer data is readable via
0025 /sys/devices/platform/lis3lv02d. Reported values are scaled
0026 to mg values (1/1000th of earth gravity).
0027
0028 Sysfs attributes under /sys/devices/platform/lis3lv02d/:
0029
0030 position
0031 - 3D position that the accelerometer reports. Format: "(x,y,z)"
0032 rate
0033 - read reports the sampling rate of the accelerometer device in HZ.
0034 write changes sampling rate of the accelerometer device.
0035 Only values which are supported by HW are accepted.
0036 selftest
0037 - performs selftest for the chip as specified by chip manufacturer.
0038
0039 This driver also provides an absolute input class device, allowing
0040 the laptop to act as a pinball machine-esque joystick. Joystick device can be
0041 calibrated. Joystick device can be in two different modes.
0042 By default output values are scaled between -32768 .. 32767. In joystick raw
0043 mode, joystick and sysfs position entry have the same scale. There can be
0044 small difference due to input system fuzziness feature.
0045 Events are also available as input event device.
0046
0047 Selftest is meant only for hardware diagnostic purposes. It is not meant to be
0048 used during normal operations. Position data is not corrupted during selftest
0049 but interrupt behaviour is not guaranteed to work reliably. In test mode, the
0050 sensing element is internally moved little bit. Selftest measures difference
0051 between normal mode and test mode. Chip specifications tell the acceptance
0052 limit for each type of the chip. Limits are provided via platform data
0053 to allow adjustment of the limits without a change to the actual driver.
0054 Seltest returns either "OK x y z" or "FAIL x y z" where x, y and z are
0055 measured difference between modes. Axes are not remapped in selftest mode.
0056 Measurement values are provided to help HW diagnostic applications to make
0057 final decision.
0058
0059 On HP laptops, if the led infrastructure is activated, support for a led
0060 indicating disk protection will be provided as /sys/class/leds/hp::hddprotect.
0061
0062 Another feature of the driver is misc device called "freefall" that
0063 acts similar to /dev/rtc and reacts on free-fall interrupts received
0064 from the device. It supports blocking operations, poll/select and
0065 fasync operation modes. You must read 1 bytes from the device. The
0066 result is number of free-fall interrupts since the last successful
0067 read (or 255 if number of interrupts would not fit). See the freefall.c
0068 file for an example on using the device.
0069
0070
0071 Axes orientation
0072 ----------------
0073
0074 For better compatibility between the various laptops. The values reported by
0075 the accelerometer are converted into a "standard" organisation of the axes
0076 (aka "can play neverball out of the box"):
0077
0078 * When the laptop is horizontal the position reported is about 0 for X and Y
0079 and a positive value for Z
0080 * If the left side is elevated, X increases (becomes positive)
0081 * If the front side (where the touchpad is) is elevated, Y decreases
0082 (becomes negative)
0083 * If the laptop is put upside-down, Z becomes negative
0084
0085 If your laptop model is not recognized (cf "dmesg"), you can send an
0086 email to the maintainer to add it to the database. When reporting a new
0087 laptop, please include the output of "dmidecode" plus the value of
0088 /sys/devices/platform/lis3lv02d/position in these four cases.
0089
0090 Q&A
0091 ---
0092
0093 Q: How do I safely simulate freefall? I have an HP "portable
0094 workstation" which has about 3.5kg and a plastic case, so letting it
0095 fall to the ground is out of question...
0096
0097 A: The sensor is pretty sensitive, so your hands can do it. Lift it
0098 into free space, follow the fall with your hands for like 10
0099 centimeters. That should be enough to trigger the detection.