Re: [PATCH 01/12] dt-bindings: i3c: Add mipi-i3c-static-method to support SETAASA

From: Krzysztof Kozlowski

Date: Thu Mar 19 2026 - 05:40:03 EST


On Thu, Mar 19, 2026 at 02:16:41PM +0530, Akhil R wrote:
> On Wed, 18 Mar 2026 17:31:50 +0000, Conor Dooley wrote:
> > On Wed, Mar 18, 2026 at 10:57:14PM +0530, Akhil R wrote:
> >> Add the 'mipi-i3c-static-method' property mentioned in the MIPI I3C
> >> Discovery and Configuration Specification [1] to specify which discovery
> >> method an I3C device supports during bus initialization. The property is
> >> a bitmap, where a bit value of 1 indicates support for that method, and 0
> >> indicates lack of support.
> >> Bit 0: SETDASA CCC (Direct)
> >> Bit 1: SETAASA CCC (Broadcast)
> >> Bit 2: Other CCC (vendor / standards extension)
> >> All other bits are reserved.
> >>
> >> It is specifically needed when an I3C device requires SETAASA for the
> >> address assignment. SETDASA will be supported by default if this property
> >> is absent - which means for now the property just serves as a flag to
> >> enable SETAASA, but keep the property as a bitmap to align with the
> >> specifications.
> >>
> >> [1] https://www.mipi.org/specifications/disco
> >>
> >> Signed-off-by: Akhil R <akhilrajeev@xxxxxxxxxx>
> >> ---
> >> .../devicetree/bindings/i3c/i3c.yaml | 30 ++++++++++++++++---
> >> 1 file changed, 26 insertions(+), 4 deletions(-)
> >>
> >> diff --git a/Documentation/devicetree/bindings/i3c/i3c.yaml b/Documentation/devicetree/bindings/i3c/i3c.yaml
> >> index e25fa72fd785..1705d90d4d79 100644
> >> --- a/Documentation/devicetree/bindings/i3c/i3c.yaml
> >> +++ b/Documentation/devicetree/bindings/i3c/i3c.yaml
> >> @@ -31,10 +31,12 @@ properties:
> >> described in the device tree, which in turn means we have to describe
> >> I3C devices.
> >>
> >> - Another use case for describing an I3C device in the device tree is when
> >> - this I3C device has a static I2C address and we want to assign it a
> >> - specific I3C dynamic address before the DAA takes place (so that other
> >> - devices on the bus can't take this dynamic address).
> >> + Other use-cases for describing an I3C device in the device tree are:
> >> + - When the I3C device has a static I2C address and we want to assign
> >> + it a specific I3C dynamic address before the DAA takes place (so
> >> + that other devices on the bus can't take this dynamic address).
> >> + - When the I3C device requires SETAASA for its discovery and uses a
> >> + pre-defined static address.
> >>
> >> "#size-cells":
> >> const: 0
> >> @@ -147,6 +149,26 @@ patternProperties:
> >> through SETDASA. If static address is not present, this address is assigned
> >> through SETNEWDA after assigning a temporary address via ENTDAA.
> >>
> >> + mipi-i3c-static-method:
> >> + $ref: /schemas/types.yaml#/definitions/uint32
> >> + minimum: 0x1
> >> + maximum: 0xff
> >> + default: 1
> >> + description: |
> >> + Bitmap describing which methods of Dynamic Address Assignment from a
> >> + static address are supported by this I3C Target. A bit value of 1
> >> + indicates support for that method, and 0 indicates lack of support.
> >
> > I really am not keen on properties that are bitmaps, why can't we just
> > use the strings "setdasa", "setaasa" etc?
>
> The intention was to mirror the property described in the specification. Using
> strings would not allow to use a combination of methods when a device supports

Why combination would not be allowed? Look:
mipi-i3c-static-methods = "setdasa", "setaasa";
Both are allowed.

> more than one method. It also cannot represent the vendor extensions (Bit 2)
> cleanly. Would this be better if we use macros instead of raw numbers?

Hoes does setting bit 2 differ from a string "vendor"?

> Please let me know your thoughts.
>

Best regards,
Krzysztof