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

Krzysztof Kozlowski krzk at kernel.org
Thu Mar 19 02:39:32 PDT 2026


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 at nvidia.com>
> >> ---
> >>  .../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




More information about the linux-i3c mailing list