Re: [PATCH v4 01/12] dt-bindings: i3c: Add mipi-i3c-static-method to support SETAASA
Frank Li <[email protected]>
| Newsgroups | org.infradead.lists.linux-i3c,org.kernel.vger.linux-devicetree,org.kernel.vger.linux-hwmon,org.kernel.vger.linux-kernel,org.kernel.vger.linux-tegra |
|---|---|
| Message-ID | <ajRIhqyT8bSi3EkN@lizhi-Precision-Tower-5810> |
On Tue, Jun 16, 2026 at 09:54:15AM +0000, 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/mipi-disco-for-i3c-download > > Signed-off-by: Akhil R <[email protected]> > --- Reviewed-by: Frank Li <[email protected]> > .../devicetree/bindings/i3c/i3c.yaml | 36 ++++++++++++++++--- > include/dt-bindings/i3c/i3c.h | 4 +++ > 2 files changed, 35 insertions(+), 5 deletions(-) > > diff --git a/Documentation/devicetree/bindings/i3c/i3c.yaml b/Documentation/devicetree/bindings/i3c/i3c.yaml > index e25fa72fd785..5603f2e7807d 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 > @@ -145,7 +147,31 @@ patternProperties: > Dynamic address to be assigned to this device. In case static address is > present (first cell of the reg property != 0), this address is assigned > through SETDASA. If static address is not present, this address is assigned > - through SETNEWDA after assigning a temporary address via ENTDAA. > + through SETNEWDA after assigning a temporary address via ENTDAA. If > + SETAASA is used, this property is not used, and the static address itself > + becomes the dynamic address. > + > + mipi-i3c-static-method: > + $ref: /schemas/types.yaml#/definitions/uint32 > + minimum: 0x1 > + maximum: 0x7 > + default: 1 > + description: | > + Bitmap describing which methods of Dynamic Address Assignment from a > + static address are supported by this I3C Target. For each defined bit > + position, a set bit indicates support for that method and a cleared > + bit 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. > + > + This property follows the MIPI I3C specification. The primary use > + of this property is to indicate support for SETAASA, i.e Bit 1, but > + will allow other values mentioned in the specification so that it > + mirrors the specification. SETDASA will remain as the default method > + even if this property is not present. > > required: > - reg > diff --git a/include/dt-bindings/i3c/i3c.h b/include/dt-bindings/i3c/i3c.h > index 373439218bba..78b8c634aad8 100644 > --- a/include/dt-bindings/i3c/i3c.h > +++ b/include/dt-bindings/i3c/i3c.h > @@ -13,4 +13,8 @@ > #define I2C_NO_FILTER_HIGH_FREQUENCY (1 << 5) > #define I2C_NO_FILTER_LOW_FREQUENCY (2 << 5) > > +#define I3C_ADDR_METHOD_SETDASA (1 << 0) > +#define I3C_ADDR_METHOD_SETAASA (1 << 1) > +#define I3C_ADDR_METHOD_VENDOR (1 << 2) > + > #endif > -- > 2.43.0 > -- linux-i3c mailing list [email protected] http://lists.infradead.org/mailman/listinfo/linux-i3c