[PATCH v3 0/2] iio: imu: st_lsm6dsx: Add ACPI ID SMOCF05 (Minisforum V3 / V3 SE)

From: Jared Wuerzburger

Date: Sun Sep 27 2026 - 18:07:13 EST


Hi,

This picks up Samuel's series adding the SMOCF05 ACPI ID for the
LSM6DS3TR-C [1][2], which stalled after the v2 review. The Minisforum V3
and V3 SE tablets both use this ID; without a DSDT override their
accelerometer and gyroscope are missing, and owners currently carry one
just to get screen rotation [3].

I own a V3 and would like to see this merged, so I followed the path
the SMOCF00 patch took [4]:

- Patch 2/2 only adds the ID; the SLA0/SLG0 mount matrix patch is
dropped. Orientation is handled in userspace via hwdb, and I will
send the systemd hwdb entry separately. That also addresses the
patch-order concern from the v2 review.
- The DSDT excerpt and the tested machines are now in the changelog
(full excerpt below), as Andy asked.
- Patch 1/2 is the trailing-comma cleanup Andy suggested, split out
and applied to the existing entries too.

Samuel stays the author of 2/2; my edits are noted in the tags.

Changes since v2:
- Dropped "Add alternative ACPI mount matrix retrieval".
- Split the trailing-comma cleanup into its own patch, covering SMOCF00
as well.
- Changelog of the ID patch: DSDT excerpt, machines, test results.

The V3 BIOS (1.06) declares the device exactly like the V3 SE's:

Device (STS)
{
Name (_HID, EisaId ("SMOCF05"))
Name (_CID, EisaId ("SMOCF05"))
Name (_UID, Zero)
Method (_STA, 0, NotSerialized)
{
Return (0x0F)
}

Method (_CRS, 0, NotSerialized)
{
Name (RBUF, ResourceTemplate ()
{
I2cSerialBusV2 (0x006A, ControllerInitiated, 0x00061A80,
AddressingMode7Bit, "\\_SB.I2CD",
0x00, ResourceConsumer, , Exclusive,
RawDataBuffer (0x04)
{
0x53, 0x4C, 0x41, 0x30
})
I2cSerialBusV2 (0x006A, ControllerInitiated, 0x00061A80,
AddressingMode7Bit, "\\_SB.I2CD",
0x00, ResourceConsumer, , Exclusive,
RawDataBuffer (0x04)
{
0x53, 0x4C, 0x47, 0x30
})
GpioInt (Edge, ActiveHigh, Exclusive, PullNone, 0x0000,
"\\_SB.GPIO", 0x00, ResourceConsumer, ,
RawDataBuffer (0x04)
{
0x53, 0x4C, 0x41, 0x30
})
{
0x0009
}
})
Return (RBUF) /* \_SB_.I2CD.STS_._CRS.RBUF */
}

Method (SLA0, 0, NotSerialized)
{
Name (RBUF, Package (0x03)
{
"-1 0 0",
"0 -1 0",
"0 0 -1"
})
Return (RBUF) /* \_SB_.I2CD.STS_.SLA0.RBUF */
}

Method (SLG0, 0, NotSerialized)
{
Name (RBUF, Package (0x03)
{
"1 0 0",
"0 1 0",
"0 0 1"
})
Return (RBUF) /* \_SB_.I2CD.STS_.SLG0.RBUF */
}
}

On the V3 with this series and the stock firmware tables, the driver
binds to i2c-SMOCF05:00, WHO_AM_I reads 0x6a, and both
lsm6ds3tr-c_accel and lsm6ds3tr-c_gyro are registered. Screen
auto-rotation works through iio-sensor-proxy with the mount matrix
-1 0 0; 0 -1 0; 0 0 -1 (the firmware's SLA0), applied via hwdb.

Thanks to Samuel for the original series and to the v2 reviewers for
the feedback. The patches and changelogs were prepared with the help of
an AI coding assistant; I reviewed them and tested the result on my V3.

[1] v1: https://lore.kernel.org/linux-iio/20251223025351.3099978-2-samuel@xxxxxxxxxxxxxxx/
[2] v2: https://lore.kernel.org/linux-iio/20260201225450.1649001-2-samuel@xxxxxxxxxxxxxxx/
[3] https://github.com/mudkipme/awesome-minisforum-v3/issues/2
[4] https://lore.kernel.org/linux-iio/20260324193626.77231-1-twoexem@xxxxxxxxx/

Samuel Dionne-Riel (1):
iio: imu: st_lsm6dsx: Add ACPI ID SMOCF05 for LSM6DS3TR-C

Jared Wuerzburger (1):
iio: imu: st_lsm6dsx: Drop trailing comma in ACPI match table entries

drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_i2c.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)


base-commit: d8c0f48f0b1583308a98401c0c7b1a65d1d43a6c
--
2.55.0