STMicroelectronics LSM303DLH
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
The LSM303DLH is a 3-axis accelerometer and magnetometer.
Note: As of kernel 3.13, it looks like this device is already recognized by the vanilla kernel. As an example, this bash script, autostarted in the background, will perform automatic screen (and touchscreen) rotation for a Dell Inspiron 7347 convertible. This is just a working example, a proper method would also make use of the integrated gyroscope for faster reaction times.
Driver
The official driver available is available at a cached version of the manufacturer's website[dead link 2020-04-03 ⓘ]. The driver is open source an it was released under the GNU General Public License (v2). It compiles fine, and the accelerometer module can be loaded without problems:
# dmesg
... [ 124.908804] lsm303dlh_acc_sysfs accelerometer driver: init [ 124.908876] i2c-core: driver [lsm303dlh_acc_sysfs] using legacy suspend method [ 124.908885] i2c-core: driver [lsm303dlh_acc_sysfs] using legacy resume method
The following error occurs when loading the magnetometer module:
# dmesg
... [ 2546.530196] lsm303dlh_mag_sysfs: Unknown symbol input_allocate_polled_device (err 0) [ 2546.530271] lsm303dlh_mag_sysfs: Unknown symbol input_free_polled_device (err 0) [ 2546.530425] lsm303dlh_mag_sysfs: Unknown symbol input_register_polled_device (err 0) [ 2546.530550] lsm303dlh_mag_sysfs: Unknown symbol input_unregister_polled_device (err 0)
Accelerometer
Instantiate the device
Run the following command to instantiate the device:
# echo lsm303dlh_acc_sysfs 25 > /sys/bus/i2c/devices/i2c-2/new_device
Although, it seems to be a problem with the driver.
# dmesg
... [ 833.274769] lsm303dlh_acc_sysfs: probe start. [ 833.274781] lsm303dlh_acc_sysfs 2-0019: platform data is NULL. exiting. [ 833.274790] lsm303dlh_acc_sysfs: Driver Init failed [ 833.274813] i2c i2c-2: new_device: Instantiated device lsm303dlh_acc_sysfs at 0x19
Enabling the device
Reading the output of the device
See also
- Older version of the driver at lore.kernel.org.
- Luke Ross' website.
- yoga-laptop, an utility for Lenovo Ideapad Yoga laptops with information and scripts that can be adapted for devices with this accelerometer (Lenovo Thinkpad Yoga, Dell Inspiron 7347, ...)