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

From: Conor Dooley

Date: Tue Sep 08 2026 - 14:00:45 EST


On Tue, Sep 08, 2026 at 03:12:55PM +0530, Shubham Patil wrote:
> 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/

I disagree with Frank. These properties make sense for Xilinx because it
is an FPGA IP and synthesis options impact this. For other devices, this
should be determined from the compatible.
Please revert to how things were done in v2, especially as no rationale
was provided for why these should be common.

pw-bot: changes-requested

Thanks,
Conor.

>
> 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
>

Attachment: signature.asc
Description: PGP signature