On Thu, 15 Feb 2024 10:24:25 -0800 Jonathan LoBue <jlobue10@xxxxxxxxx> wrote: > This patch adds a description of the duplicate ACPI identifier issue > between devices using bmc150 and bmi323. Title of patch doesn't reflect what is going on. If there are no other changes needed I can tweak that whilst applying to iio: accel: bmc150: Document duplicate ACPI entries with bmi323 driver > > Reviewed-by: Andy Shevchenko <andy.shevchenko@xxxxxxxxx> > Co-developed-by: Luke D. Jones <luke@xxxxxxxxxx> > Signed-off-by: Luke D. Jones <luke@xxxxxxxxxx> > Co-developed-by: Denis Benato <benato.denis96@xxxxxxxxx> > Signed-off-by: Denis Benato <benato.denis96@xxxxxxxxx> > Co-developed-by: Antheas Kapenekakis <lkml@xxxxxxxxxxx> > Signed-off-by: Antheas Kapenekakis <lkml@xxxxxxxxxxx> > Signed-off-by: Jonathan LoBue <jlobue10@xxxxxxxxx> > --- > drivers/iio/accel/bmc150-accel-i2c.c | 13 +++++++++++++ > 1 file changed, 13 insertions(+) > > diff --git a/drivers/iio/accel/bmc150-accel-i2c.c b/drivers/iio/accel/bmc150-accel-i2c.c > index ee1ba134ad42..353271e23235 100644 > --- a/drivers/iio/accel/bmc150-accel-i2c.c > +++ b/drivers/iio/accel/bmc150-accel-i2c.c > @@ -224,6 +224,19 @@ static const struct acpi_device_id bmc150_accel_acpi_match[] = { > {"BMA250E"}, > {"BMC150A"}, > {"BMI055A"}, > + /* > + * The "BOSC0200" identifier used here is not unique to devices using > + * bmc150. The same "BOSC0200" identifier is found in the ACPI tables of > + * the ASUS ROG ALLY and Ayaneo AIR Plus which both use a Bosch BMI323 > + * chip. This creates a conflict with duplicate ACPI identifiers which > + * multiple drivers want to use. Fortunately, when the bmc150 driver > + * starts to load on the ASUS ROG ALLY, the chip ID check portion fails > + * (correctly) because the chip IDs received (via i2c) are unique between > + * bmc150 and bmi323 and a dmesg output similar to this: > + * "bmc150_accel_i2c i2c-BOSC0200:00: Invalid chip 0" can be seen. > + * This allows the bmi323 driver to take over for ASUS ROG ALLY, and > + * other devices using the bmi323 chip. > + */ > {"BOSC0200"}, > {"BSBA0150"}, > {"DUAL250E"},