Re: [PATCH v2 04/13] i3c: master: Support ACPI enumeration of child devices
Frank Li <[email protected]>
| Newsgroups | dev.linux.lists.acpica-devel,org.infradead.lists.linux-i3c,org.kernel.vger.linux-acpi,org.kernel.vger.linux-devicetree,org.kernel.vger.linux-hwmon,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <adhdsn6u4RAIL9wC@lizhi-Precision-Tower-5810> |
On Thu, Apr 09, 2026 at 04:27:34PM +0530, Akhil R wrote: > Although the existing subsystem allows host controllers to register > through the ACPI table, it was not possible to describe I3C or I2C > devices when using ACPI. This is because the driver relied on reg > property to retrieve the PID, static address etc whereas ACPI uses > _ADR or serial resources to describe such devices. > > Read _ADR and LVR from the ACPI resources and extract the data as per the > ACPI specification for an I3C bus. Also read mipi-i3c-static-address as > per the MIPI DISCO specifications [1] to get the static address to be > used. Hence enable describing the I3C or I2C devices in the ACPI > table, which is required if the device is using a static address or if it > needs some specific properties to be attached to it. Please wrap your commit message at 75 char. > > [1] https://www.mipi.org/mipi-disco-for-i3c-download > > Signed-off-by: Akhil R <[email protected]> > --- > drivers/i3c/master.c | 140 ++++++++++++++++++++++++++++++++++++++++--- > 1 file changed, 132 insertions(+), 8 deletions(-) > > diff --git a/drivers/i3c/master.c b/drivers/i3c/master.c > index 5e0e926f61f3..08d0fcabd6f1 100644 > --- a/drivers/i3c/master.c > +++ b/drivers/i3c/master.c > @@ -5,6 +5,7 @@ > * Author: Boris Brezillon <[email protected]> > */ > > +#include <linux/acpi.h> > #include <linux/atomic.h> > #include <linux/bug.h> > #include <linux/device.h> > @@ -2403,6 +2404,53 @@ EXPORT_SYMBOL_GPL(i3c_master_add_i3c_dev_locked); > > #define OF_I3C_REG1_IS_I2C_DEV BIT(31) > > +#ifdef CONFIG_ACPI ... > +#ifdef CONFIG_ACPI > +static int i3c_master_add_acpi_dev(struct i3c_master_controller *master, > + struct fwnode_handle *fwnode) Can you move this and below function to previous #ifdef CONFIG_ACPI block. Frank