Re: [PATCH v3 0/6] iio: st_sensors: Add lsm303d support

From: Hans de Goede
Date: Sun Apr 16 2023 - 16:20:47 EST


Hi Marius,

On 4/16/23 01:11, Marius Hoch wrote:
> Hi!
>
> This patch series adds support for the LSM303D accelerometer and
> magnetometer. As the LSM303D is basically, as far as I can tell,
> the LSM9DS0 without gyroscope, we can easily re-use its definitions.
>
> This was tested on a Lenovo Yoga Tablet 2 1051-F.

Thank you for your work on this. I have had this on my own todo list
since 2020 at least and I did not realize that Andy already added ST IMU
support in 2021 so this just needed some extra device-ids :)

I have tested this successfully on the following models:

Lenovo Yoga Tablet 2 851F (Windows version 8")

This version needs an accel-mount-matrix quick in hwdb since it has
a portrait screen rather then a landscape screen (so 90° rotated):
https://github.com/systemd/systemd/pull/27295
Note I've made sure that this quirk only applies to the 851 and not to the 1051.

Lenovo Yoga Tablet 2 830F (Android version 8")

Since the ACPI tables are broken in the Android BIOS these need
a patch to x86-android-tablets to instantiate the i2c_client
for the sensor, I'm still finalizing this patch and I'll submit
it upstream when its finished.

Tested-by: Hans de Goede <hansg@xxxxxxxxxx>

Regards,

Hans


p.s.

1: I noticed that auto-screen rotation using iio-sensor-proxy is quite slow
so I wrote a patch to fix this :) :
https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/merge_requests/366

2: There are some other unsupported sensors on these models too,
perhaps you are interested in adding support for these too?

Here are my personal notes on this:
-Light sensor should work with drivers/iio/light/al3320a.c
https://github.com/JideTechnology/remixos-kernel/commit/c52d55b4bd907e87b7b115b3943219f3e089a77a

-MXM1120 HALL sensor, have datasheet, measures angle of kickstand thingie, use
for SW_TABLET_MODE. Do a pdx86 driver just for the Tab 2 which checks that the
kick stand is out *and* the BT keyboard is paired, in that case report
SW_TABLET_MODE=0, in all other cases report SW_TABLET_MODE=1 ??
For the commit msg:
Datasheet available here: http://haechitech.com/tech-support/
Requires creating an account, once you have an account you can immediately download
the provided datasheets (or let me know if you want me to email you a copy)

Especially the light sensor should be an easy win and light sensors
are already supported in e.g. iio-sensor-proxy










> Changes in v3:
> Simplified the ACPI tables in the LSM9DS0 IMU driver, per Jonathan Cameron.
>
> Marius Hoch (6):
> iio: accel: st_accel: Add LSM303D
> iio: magnetometer: st_accel: Add LSM303D
> iio: st_sensors: Add lsm303d support to the LSM9DS0 IMU driver
> iio: st_sensors: Add ACPI support for lsm303d to the LSM9DS0 IMU
> driver
> iio: Comment that the LSM303D also has the Magnetometer DRDY
> dt-bindings: iio: st-sensors: Add LSM303D accelerometer+magnetometer
>
> .../devicetree/bindings/iio/st,st-sensors.yaml | 1 +
> drivers/iio/accel/st_accel_core.c | 1 +
> drivers/iio/imu/st_lsm9ds0/Kconfig | 3 ++-
> drivers/iio/imu/st_lsm9ds0/st_lsm9ds0_i2c.c | 12 ++++++++++++
> drivers/iio/imu/st_lsm9ds0/st_lsm9ds0_spi.c | 12 ++++++++++++
> drivers/iio/magnetometer/st_magn_core.c | 1 +
> include/linux/iio/common/st_sensors.h | 1 +
> include/linux/platform_data/st_sensors_pdata.h | 2 +-
> 8 files changed, 31 insertions(+), 2 deletions(-)
>
>
> base-commit: e62252bc55b6d4eddc6c2bdbf95a448180d6a08d