[PATCH 1/1] Add 10EC5280 to bmi160_i2c ACPI IDs to allow binding on some devices

From: Jesus Gonzalez
Date: Fri Feb 02 2024 - 12:33:16 EST


"10EC5280" is used by several manufacturers like Lenovo, GPD, or AYA (and
probably others) in their ACPI table as the ID for the bmi160 IMU. This
means the bmi160_i2c driver won't bind to it, and the IMU is unavailable
to the user. Manufacturers have been approached on several occasions to
try getting a BIOS with a fixed ID, mostly without actual positive
results, and since affected devices are already a few years old, this is
not expected to change. This patch enables using the bmi160_i2c driver for
the bmi160 IMU on these devices.

Signed-off-by: Jesus Gonzalez <jesusmgh@xxxxxxxxx>
---
A device-specific transformation matrix can then be provided in a second
step through udev hwdb.

This has been discussed before in 2021, see here:
https://lore.kernel.org/lkml/CACAwPwYQHRcrabw9=0tvenPzAcwwW1pTaR6a+AEWBF9Hqf_wXQ@xxxxxxxxxxxxxx/

Lenovo, as an example of a big manufacturer, is also using this ID:
https://www.reddit.com/r/linux/comments/r6f9de/comment/hr8bdfs/?context=3

At least some discussions with GPD took place on the GPD server Discord,
for which I can provide proof on demand via screenshot (if not accessible
directly).

I have read the patch submission instructions and followed them to the
best of my knowledge. Still, this is my first kernel patch submission,
so I'd be glad if you could please point out any mistakes. Thank you!


drivers/iio/imu/bmi160/bmi160_spi.c | 1 +
1 file changed, 1 insertion(+)

diff --git a/drivers/iio/imu/bmi160/bmi160_spi.c b/drivers/iio/imu/bmi160/bmi160_spi.c
index 8b573ea99af2..0874c37c6670 100644
--- a/drivers/iio/imu/bmi160/bmi160_spi.c
+++ b/drivers/iio/imu/bmi160/bmi160_spi.c
@@ -41,6 +41,7 @@ MODULE_DEVICE_TABLE(spi, bmi160_spi_id);

static const struct acpi_device_id bmi160_acpi_match[] = {
{"BMI0160", 0},
+ {"10EC5280", 0},
{ },
};
MODULE_DEVICE_TABLE(acpi, bmi160_acpi_match);
--
2.43.0