From: Akhil R <akhilrajeev@nvidia.com>
To: Alexandre Belloni <alexandre.belloni@bootlin.com>,
Frank Li <Frank.Li@nxp.com>, Rob Herring <robh@kernel.org>,
Krzysztof Kozlowski <krzk+dt@kernel.org>,
Conor Dooley <conor+dt@kernel.org>,
"Rafael J . Wysocki" <rafael@kernel.org>,
Robert Moore <robert.moore@intel.com>,
"Len Brown" <lenb@kernel.org>, Guenter Roeck <linux@roeck-us.net>,
Philipp Zabel <p.zabel@pengutronix.de>,
Eric Biggers <ebiggers@kernel.org>,
"Fredrik Markstrom" <fredrik.markstrom@est.tech>,
Miquel Raynal <miquel.raynal@bootlin.com>,
Thierry Reding <thierry.reding@kernel.org>,
"Jon Hunter" <jonathanh@nvidia.com>,
Suresh Mangipudi <smangipudi@nvidia.com>,
<linux-tegra@vger.kernel.org>, <linux-i3c@lists.infradead.org>,
<devicetree@vger.kernel.org>, <linux-kernel@vger.kernel.org>,
<linux-acpi@vger.kernel.org>, <acpica-devel@lists.linux.dev>,
<linux-hwmon@vger.kernel.org>
Cc: Akhil R <akhilrajeev@nvidia.com>
Subject: [PATCH 07/12] i3c: master: match I3C device through DT and ACPI
Date: Wed, 18 Mar 2026 22:57:20 +0530 [thread overview]
Message-ID: <20260318172820.13771-8-akhilrajeev@nvidia.com> (raw)
In-Reply-To: <20260318172820.13771-1-akhilrajeev@nvidia.com>
SETAASA-based devices cannot always be identified by PID or DCR; the
standard I3C id_table matching may not be applicable. Allow such devices
to be matched through Device Tree or ACPI
Signed-off-by: Akhil R <akhilrajeev@nvidia.com>
---
drivers/i3c/master.c | 20 +++++++++++++++++++-
1 file changed, 19 insertions(+), 1 deletion(-)
diff --git a/drivers/i3c/master.c b/drivers/i3c/master.c
index 0cce75bb05b0..ef96518558fb 100644
--- a/drivers/i3c/master.c
+++ b/drivers/i3c/master.c
@@ -16,6 +16,7 @@
#include <linux/kernel.h>
#include <linux/list.h>
#include <linux/of.h>
+#include <linux/of_device.h>
#include <linux/pm_runtime.h>
#include <linux/property.h>
#include <linux/slab.h>
@@ -342,15 +343,32 @@ static int i3c_device_match(struct device *dev, const struct device_driver *drv)
{
struct i3c_device *i3cdev;
const struct i3c_driver *i3cdrv;
+ u8 static_addr_method = 0;
if (dev->type != &i3c_device_type)
return 0;
i3cdev = dev_to_i3cdev(dev);
i3cdrv = drv_to_i3cdrv(drv);
- if (i3c_device_match_id(i3cdev, i3cdrv->id_table))
+
+ if (i3cdev->desc && i3cdev->desc->boardinfo)
+ static_addr_method = i3cdev->desc->boardinfo->static_addr_method;
+
+ /*
+ * SETAASA based device need not always have a matching ID since
+ * it is not mandatory for such devices to implement deviceinfo
+ * CCC commands. Allow them to register through DT or ACPI.
+ */
+ if (i3cdrv->id_table && i3c_device_match_id(i3cdev, i3cdrv->id_table))
return 1;
+ if (static_addr_method & I3C_ADDR_METHOD_SETAASA) {
+ if (of_driver_match_device(dev, drv))
+ return 1;
+ if (acpi_driver_match_device(dev, drv))
+ return 1;
+ }
+
return 0;
}
--
2.50.1
WARNING: multiple messages have this Message-ID (diff)
From: Akhil R <akhilrajeev@nvidia.com>
To: Alexandre Belloni <alexandre.belloni@bootlin.com>,
Frank Li <Frank.Li@nxp.com>, Rob Herring <robh@kernel.org>,
Krzysztof Kozlowski <krzk+dt@kernel.org>,
Conor Dooley <conor+dt@kernel.org>,
"Rafael J . Wysocki" <rafael@kernel.org>,
Robert Moore <robert.moore@intel.com>,
"Len Brown" <lenb@kernel.org>, Guenter Roeck <linux@roeck-us.net>,
Philipp Zabel <p.zabel@pengutronix.de>,
Eric Biggers <ebiggers@kernel.org>,
"Fredrik Markstrom" <fredrik.markstrom@est.tech>,
Miquel Raynal <miquel.raynal@bootlin.com>,
Thierry Reding <thierry.reding@kernel.org>,
"Jon Hunter" <jonathanh@nvidia.com>,
Suresh Mangipudi <smangipudi@nvidia.com>,
<linux-tegra@vger.kernel.org>, <linux-i3c@lists.infradead.org>,
<devicetree@vger.kernel.org>, <linux-kernel@vger.kernel.org>,
<linux-acpi@vger.kernel.org>, <acpica-devel@lists.linux.dev>,
<linux-hwmon@vger.kernel.org>
Cc: Akhil R <akhilrajeev@nvidia.com>
Subject: [PATCH 07/12] i3c: master: match I3C device through DT and ACPI
Date: Wed, 18 Mar 2026 22:57:20 +0530 [thread overview]
Message-ID: <20260318172820.13771-8-akhilrajeev@nvidia.com> (raw)
In-Reply-To: <20260318172820.13771-1-akhilrajeev@nvidia.com>
SETAASA-based devices cannot always be identified by PID or DCR; the
standard I3C id_table matching may not be applicable. Allow such devices
to be matched through Device Tree or ACPI
Signed-off-by: Akhil R <akhilrajeev@nvidia.com>
---
drivers/i3c/master.c | 20 +++++++++++++++++++-
1 file changed, 19 insertions(+), 1 deletion(-)
diff --git a/drivers/i3c/master.c b/drivers/i3c/master.c
index 0cce75bb05b0..ef96518558fb 100644
--- a/drivers/i3c/master.c
+++ b/drivers/i3c/master.c
@@ -16,6 +16,7 @@
#include <linux/kernel.h>
#include <linux/list.h>
#include <linux/of.h>
+#include <linux/of_device.h>
#include <linux/pm_runtime.h>
#include <linux/property.h>
#include <linux/slab.h>
@@ -342,15 +343,32 @@ static int i3c_device_match(struct device *dev, const struct device_driver *drv)
{
struct i3c_device *i3cdev;
const struct i3c_driver *i3cdrv;
+ u8 static_addr_method = 0;
if (dev->type != &i3c_device_type)
return 0;
i3cdev = dev_to_i3cdev(dev);
i3cdrv = drv_to_i3cdrv(drv);
- if (i3c_device_match_id(i3cdev, i3cdrv->id_table))
+
+ if (i3cdev->desc && i3cdev->desc->boardinfo)
+ static_addr_method = i3cdev->desc->boardinfo->static_addr_method;
+
+ /*
+ * SETAASA based device need not always have a matching ID since
+ * it is not mandatory for such devices to implement deviceinfo
+ * CCC commands. Allow them to register through DT or ACPI.
+ */
+ if (i3cdrv->id_table && i3c_device_match_id(i3cdev, i3cdrv->id_table))
return 1;
+ if (static_addr_method & I3C_ADDR_METHOD_SETAASA) {
+ if (of_driver_match_device(dev, drv))
+ return 1;
+ if (acpi_driver_match_device(dev, drv))
+ return 1;
+ }
+
return 0;
}
--
2.50.1
--
linux-i3c mailing list
linux-i3c@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-i3c
next prev parent reply other threads:[~2026-03-18 17:30 UTC|newest]
Thread overview: 114+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-03-18 17:27 [PATCH 00/12] i3c: Support ACPI and SETAASA device discovery Akhil R
2026-03-18 17:27 ` Akhil R
2026-03-18 17:27 ` [PATCH 01/12] dt-bindings: i3c: Add mipi-i3c-static-method to support SETAASA Akhil R
2026-03-18 17:27 ` Akhil R
2026-03-18 17:31 ` Conor Dooley
2026-03-18 17:31 ` Conor Dooley
2026-03-19 8:46 ` Akhil R
2026-03-19 8:46 ` Akhil R
2026-03-19 9:39 ` Krzysztof Kozlowski
2026-03-19 9:39 ` Krzysztof Kozlowski
2026-03-19 17:01 ` Akhil R
2026-03-19 17:01 ` Akhil R
2026-03-19 17:14 ` Krzysztof Kozlowski
2026-03-19 17:14 ` Krzysztof Kozlowski
2026-03-19 18:13 ` Akhil R
2026-03-19 18:13 ` Akhil R
2026-03-26 15:05 ` Rob Herring
2026-03-26 15:05 ` Rob Herring
2026-03-26 15:44 ` Alexandre Belloni
2026-03-26 15:44 ` Alexandre Belloni
2026-03-27 8:18 ` Akhil R
2026-03-27 8:18 ` Akhil R
2026-03-27 8:27 ` Alexandre Belloni
2026-03-27 8:27 ` Alexandre Belloni
2026-03-27 11:42 ` Akhil R
2026-03-27 11:42 ` Akhil R
2026-03-27 17:06 ` Alexandre Belloni
2026-03-27 17:06 ` Alexandre Belloni
2026-03-30 5:26 ` Akhil R
2026-03-30 5:26 ` Akhil R
2026-03-18 17:27 ` [PATCH 02/12] ACPICA: Read LVR from the I2C resource descriptor Akhil R
2026-03-18 17:27 ` Akhil R
2026-03-18 17:27 ` [PATCH 03/12] i3c: master: Use unified device property interface Akhil R
2026-03-18 17:27 ` Akhil R
2026-03-19 14:22 ` Frank Li
2026-03-19 14:22 ` Frank Li
2026-03-26 15:18 ` Rob Herring
2026-03-26 15:18 ` Rob Herring
2026-03-18 17:27 ` [PATCH 04/12] i3c: master: Support ACPI enumeration Akhil R
2026-03-18 17:27 ` Akhil R
2026-03-19 14:29 ` Frank Li
2026-03-19 14:29 ` Frank Li
2026-03-19 17:45 ` Akhil R
2026-03-19 17:45 ` Akhil R
2026-03-22 16:55 ` kernel test robot
2026-03-22 16:55 ` kernel test robot
2026-03-22 17:47 ` kernel test robot
2026-03-22 17:47 ` kernel test robot
2026-03-23 18:42 ` Akhil R
2026-03-23 18:42 ` Akhil R
2026-03-23 18:54 ` Guenter Roeck
2026-03-23 18:54 ` Guenter Roeck
2026-03-24 8:43 ` Alexandre Belloni
2026-03-24 8:43 ` Alexandre Belloni
2026-03-24 17:22 ` Akhil R
2026-03-24 17:22 ` Akhil R
2026-03-25 10:59 ` Thierry Reding
2026-03-25 10:59 ` Thierry Reding
2026-03-31 10:09 ` Akhil R
2026-03-31 10:09 ` Akhil R
2026-03-18 17:27 ` [PATCH 05/12] i3c: master: Add support for devices using SETAASA Akhil R
2026-03-18 17:27 ` Akhil R
2026-03-18 17:27 ` [PATCH 06/12] i3c: master: Add support for devices without PID Akhil R
2026-03-18 17:27 ` Akhil R
2026-03-18 17:27 ` Akhil R [this message]
2026-03-18 17:27 ` [PATCH 07/12] i3c: master: match I3C device through DT and ACPI Akhil R
2026-03-18 17:27 ` [PATCH 08/12] i3c: dw-i3c-master: Add SETAASA as supported CCC Akhil R
2026-03-18 17:27 ` Akhil R
2026-03-18 17:27 ` [PATCH 09/12] i3c: dw-i3c-master: Add a quirk to skip clock and reset Akhil R
2026-03-18 17:27 ` Akhil R
2026-03-18 17:27 ` [PATCH 10/12] i3c: dw-i3c-master: Add ACPI ID for Tegra410 Akhil R
2026-03-18 17:27 ` Akhil R
2026-03-18 17:27 ` [PATCH 11/12] hwmon: spd5118: Add I3C support Akhil R
2026-03-18 17:27 ` Akhil R
2026-03-18 18:19 ` Alexandre Belloni
2026-03-18 18:19 ` Alexandre Belloni
2026-03-18 18:53 ` Guenter Roeck
2026-03-18 18:53 ` Guenter Roeck
2026-03-19 4:35 ` Akhil R
2026-03-19 4:35 ` Akhil R
2026-03-19 14:34 ` Guenter Roeck
2026-03-19 14:34 ` Guenter Roeck
2026-03-19 17:55 ` Akhil R
2026-03-19 17:55 ` Akhil R
2026-03-19 18:18 ` Guenter Roeck
2026-03-19 18:18 ` Guenter Roeck
2026-03-18 17:27 ` [PATCH 12/12] arm64: defconfig: Enable I3C and SPD5118 hwmon Akhil R
2026-03-18 17:27 ` Akhil R
2026-03-19 9:40 ` Krzysztof Kozlowski
2026-03-19 9:40 ` Krzysztof Kozlowski
2026-03-19 17:09 ` Akhil R
2026-03-19 17:09 ` Akhil R
2026-03-19 17:15 ` Krzysztof Kozlowski
2026-03-19 17:15 ` Krzysztof Kozlowski
2026-03-19 18:17 ` Akhil R
2026-03-19 18:17 ` Akhil R
2026-03-25 10:31 ` Thierry Reding
2026-03-25 10:31 ` Thierry Reding
2026-03-25 10:59 ` Krzysztof Kozlowski
2026-03-25 10:59 ` Krzysztof Kozlowski
2026-03-25 11:03 ` Krzysztof Kozlowski
2026-03-25 11:03 ` Krzysztof Kozlowski
2026-03-25 12:58 ` Thierry Reding
2026-03-25 12:58 ` Thierry Reding
2026-03-25 13:10 ` Krzysztof Kozlowski
2026-03-25 13:10 ` Krzysztof Kozlowski
2026-03-25 12:41 ` Thierry Reding
2026-03-25 12:41 ` Thierry Reding
2026-03-25 12:47 ` Krzysztof Kozlowski
2026-03-25 12:47 ` Krzysztof Kozlowski
2026-03-25 13:05 ` Thierry Reding
2026-03-25 13:05 ` Thierry Reding
2026-03-25 13:13 ` Krzysztof Kozlowski
2026-03-25 13:13 ` Krzysztof Kozlowski
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260318172820.13771-8-akhilrajeev@nvidia.com \
--to=akhilrajeev@nvidia.com \
--cc=Frank.Li@nxp.com \
--cc=acpica-devel@lists.linux.dev \
--cc=alexandre.belloni@bootlin.com \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=ebiggers@kernel.org \
--cc=fredrik.markstrom@est.tech \
--cc=jonathanh@nvidia.com \
--cc=krzk+dt@kernel.org \
--cc=lenb@kernel.org \
--cc=linux-acpi@vger.kernel.org \
--cc=linux-hwmon@vger.kernel.org \
--cc=linux-i3c@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-tegra@vger.kernel.org \
--cc=linux@roeck-us.net \
--cc=miquel.raynal@bootlin.com \
--cc=p.zabel@pengutronix.de \
--cc=rafael@kernel.org \
--cc=robert.moore@intel.com \
--cc=robh@kernel.org \
--cc=smangipudi@nvidia.com \
--cc=thierry.reding@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.