[PATCH 2/2] iio: imu: lsm6dsx: Add alternative ACPI mount matrix retrieval

From: Samuel Dionne-Riel

Date: Mon Dec 22 2025 - 21:55:33 EST


This uses the SLA0 matrix, which is how the SMOCF05 configuration
exposes the mounting information for the accelerometer.

On a limited sample size of one (1) unit, the SLG0 matrix is the
identity matrix. It is unknown how the SLG0 mounting matrix would
logically affect the data, if it differed from the identity matrix.
After all, the IMU is mounted as one single unit, its mounting can't
differ on the gyroscope compared to the accelerometer.

Signed-off-by: Samuel Dionne-Riel <samuel@xxxxxxxxxxxxxxx>
---
drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c | 6 ++++++
1 file changed, 6 insertions(+)

diff --git a/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c b/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c
index 49ac17806e720..4bf1f7f7552d1 100644
--- a/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c
+++ b/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c
@@ -2707,6 +2707,12 @@ int st_lsm6dsx_probe(struct device *dev, int irq, int hw_id,
return err;
}

+ if (!iio_read_acpi_mount_matrix(hw->dev, &hw->orientation, "SLA0")) {
+ err = iio_read_mount_matrix(hw->dev, &hw->orientation);
+ if (err)
+ return err;
+ }
+
for (i = 0; i < ST_LSM6DSX_ID_MAX; i++) {
if (!hw->iio_devs[i])
continue;
--
2.51.0