dt-bindings: i3c: Add mipi-i3c-static-method to support SETAASA

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

Reviewed-by: Frank Li <Frank.Li@nxp.com>
Reviewed-by: Rob Herring (Arm) <robh@kernel.org>
Signed-off-by: Akhil R <akhilrajeev@nvidia.com>
Link: https://patch.msgid.link/20260728065955.809445-2-akhilrajeev@nvidia.com
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
This commit is contained in:
Akhil R
2026-07-31 09:28:14 +02:00
committed by Alexandre Belloni
parent 92f9530047
commit 81e7c27b0d
2 changed files with 35 additions and 5 deletions
+31 -5
View File
@@ -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
+4
View File
@@ -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