[PATCH v3 1/3] dt-bindings: i3c: xlnx: Add IBI and hot-join capability properties

From: Shubham Patil

Date: Tue Sep 08 2026 - 06:08:42 EST


In-Band Interrupt and Hot-Join are synthesis-time options of the AXI I3C
IP. Describe them with two boolean properties.

A Hot-Join request is acknowledged by the IBI machinery, so a hot-join
capable design is always IBI capable as well. Both events are reported
through the controller interrupt, which is therefore required whenever
the capability is present.

Signed-off-by: Shubham Patil <shubhamsanjay.patil@xxxxxxx>
---
Changes in V3:
- Move in-band-interrupt-capable and hot-join-capable into the common
i3c.yaml schema and drop the xlnx, prefix.
- Keep dependencies in the AMD binding.
- Update the commit description accordingly.
- Conor Dooley acked v2 with the xlnx,-prefixed properties in the AMD
binding [1].
That Acked-by is not carried here: the names lost the vendor prefix
and the definitions moved to i3c.yaml after Frank Li's comment.
[1]:https://lore.kernel.org/all/20260824-tightwad-impose-495476599087@spud/

Changes in V2:
- Rename the properties to "xlnx,in-band-interrupt-capable" and
"xlnx,hot-join-capable", and expand their descriptions.
- Express the interrupt requirement with dependencies: instead of an
allOf/if-then clause.
---
Documentation/devicetree/bindings/i3c/i3c.yaml | 15 +++++++++++++++
.../devicetree/bindings/i3c/xlnx,axi-i3c-1.0.yaml | 6 ++++++
2 files changed, 21 insertions(+)

diff --git a/Documentation/devicetree/bindings/i3c/i3c.yaml b/Documentation/devicetree/bindings/i3c/i3c.yaml
index e25fa72fd7857..7430394cc6b9b 100644
--- a/Documentation/devicetree/bindings/i3c/i3c.yaml
+++ b/Documentation/devicetree/bindings/i3c/i3c.yaml
@@ -61,6 +61,21 @@ properties:
Indicates that the system is accessible via this bus as an endpoint for
MCTP over I3C transport.

+ in-band-interrupt-capable:
+ type: boolean
+ description:
+ The controller supports In-Band Interrupts. A target can request
+ attention on SDA/SCL by driving its dynamic address during bus
+ arbitration, instead of using a dedicated side-band interrupt line.
+
+ hot-join-capable:
+ type: boolean
+ description:
+ The controller supports Hot-Join. A target attached or powered up
+ after the bus is already running can announce itself using the
+ reserved Hot-Join address so the controller can assign it a dynamic
+ address.
+
required:
- "#address-cells"
- "#size-cells"
diff --git a/Documentation/devicetree/bindings/i3c/xlnx,axi-i3c-1.0.yaml b/Documentation/devicetree/bindings/i3c/xlnx,axi-i3c-1.0.yaml
index 2caa245a86568..9480de3fe8e1d 100644
--- a/Documentation/devicetree/bindings/i3c/xlnx,axi-i3c-1.0.yaml
+++ b/Documentation/devicetree/bindings/i3c/xlnx,axi-i3c-1.0.yaml
@@ -37,6 +37,10 @@ required:
- reg
- clocks

+dependentRequired:
+ hot-join-capable: [ in-band-interrupt-capable ]
+ in-band-interrupt-capable: [ interrupts ]
+
allOf:
- $ref: i3c.yaml#

@@ -54,5 +58,7 @@ examples:
interrupts = <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>;
#address-cells = <3>;
#size-cells = <0>;
+ hot-join-capable;
+ in-band-interrupt-capable;
};
...
--
2.34.1