Re: [PATCH 01/12] dt-bindings: i3c: Add mipi-i3c-static-method to support SETAASA
Krzysztof Kozlowski <[email protected]>
| Newsgroups | dev.linux.lists.acpica-devel,org.infradead.lists.linux-i3c,org.kernel.vger.linux-acpi,org.kernel.vger.linux-devicetree,org.kernel.vger.linux-hwmon,org.kernel.vger.linux-kernel,org.kernel.vger.linux-tegra |
|---|---|
| Message-ID | <20260319-spiritual-defiant-galago-9bed7e@quoll> |
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 <[email protected]> > >> --- > >> .../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