mirror of
https://github.com/torvalds/linux.git
synced 2024-11-10 22:21:40 +00:00
iio: imu: bmi323: Add ACPI Match Table
Adds the ACPI match table for ASUS ROG ALLY to load the bmi323 driver with an ACPI match of "BOSC0200", and a comment about duplicate ACPI identifiers between devices using the bmc150 and bmi323 chips. Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com> Co-developed-by: Luke D. Jones <luke@ljones.dev> Signed-off-by: Luke D. Jones <luke@ljones.dev> Co-developed-by: Denis Benato <benato.denis96@gmail.com> Signed-off-by: Denis Benato <benato.denis96@gmail.com> Co-developed-by: Antheas Kapenekakis <lkml@antheas.dev> Signed-off-by: Antheas Kapenekakis <lkml@antheas.dev> Signed-off-by: Jonathan LoBue <jlobue10@gmail.com> Tested-by: Hans de Goede <hdegoede@redhat.com> Reviewed-by: Hans de Goede <hdegoede@redhat.com> Link: https://lore.kernel.org/r/20240216182308.27125-1-jlobue10@gmail.com Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
This commit is contained in:
parent
5a01e812a6
commit
3cc5ebd3a2
@ -93,6 +93,26 @@ static int bmi323_i2c_probe(struct i2c_client *i2c)
|
||||
return bmi323_core_probe(dev);
|
||||
}
|
||||
|
||||
static const struct acpi_device_id bmi323_acpi_match[] = {
|
||||
/*
|
||||
* The "BOSC0200" identifier used here is not unique to bmi323 devices.
|
||||
* The same "BOSC0200" identifier is found in the ACPI tables of devices
|
||||
* using the bmc150 chip. This creates a conflict with duplicate ACPI
|
||||
* identifiers which multiple drivers want to use. If a non-bmi323
|
||||
* device starts to load with this "BOSC0200" ACPI match here, then the
|
||||
* chip ID check portion should fail because the chip IDs received (via
|
||||
* i2c) are unique between bmc150 and bmi323 and the driver should
|
||||
* relinquish the device. If and when a different driver (such as
|
||||
* bmc150) starts to load with the "BOSC0200" ACPI match, a short reset
|
||||
* should ensure that the device is not in a bad state during that
|
||||
* driver initialization. This device reset does occur in both the
|
||||
* bmi323 and bmc150 init sequences.
|
||||
*/
|
||||
{ "BOSC0200" },
|
||||
{ }
|
||||
};
|
||||
MODULE_DEVICE_TABLE(acpi, bmi323_acpi_match);
|
||||
|
||||
static const struct i2c_device_id bmi323_i2c_ids[] = {
|
||||
{ "bmi323" },
|
||||
{ }
|
||||
@ -109,6 +129,7 @@ static struct i2c_driver bmi323_i2c_driver = {
|
||||
.driver = {
|
||||
.name = "bmi323",
|
||||
.of_match_table = bmi323_of_i2c_match,
|
||||
.acpi_match_table = bmi323_acpi_match,
|
||||
},
|
||||
.probe = bmi323_i2c_probe,
|
||||
.id_table = bmi323_i2c_ids,
|
||||
|
Loading…
Reference in New Issue
Block a user