1Kernel driver lis3lv02d 2======================= 3 4Supported chips: 5 6 * STMicroelectronics LIS3LV02DL, LIS3LV02DQ (12 bits precision) 7 * STMicroelectronics LIS302DL, LIS3L02DQ, LIS331DL (8 bits) and 8 LIS331DLH (16 bits) 9 10Authors: 11 Yan Burman <burman.yan@gmail.com> 12 Eric Piel <eric.piel@tremplin-utc.net> 13 14 15Description 16----------- 17 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 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 23neverball). The accelerometer data is readable via 24/sys/devices/platform/lis3lv02d. Reported values are scaled 25to mg values (1/1000th of earth gravity). 26 27Sysfs attributes under /sys/devices/platform/lis3lv02d/: 28position - 3D position that the accelerometer reports. Format: "(x,y,z)" 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. 33 34This driver also provides an absolute input class device, allowing 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. 53 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 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 62read (or 255 if number of interrupts would not fit). See the freefall.c 63file for an example on using the device. 64 65 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 73 and a positive value for Z 74 * If the left side is elevated, X increases (becomes positive) 75 * If the front side (where the touchpad is) is elevated, Y decreases 76 (becomes negative) 77 * If the laptop is put upside-down, Z becomes negative 78 79If your laptop model is not recognized (cf "dmesg"), you can send an 80email to the maintainer to add it to the database. When reporting a new 81laptop, please include the output of "dmidecode" plus the value of 82/sys/devices/platform/lis3lv02d/position in these four cases. 83 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. 94