[PATCH v3 1/2] dt-bindings: firmware: arm,scmi: Document arm,no-completion-irq property

Marek Vasut
2026-01-15T00:49:36Z

Document new property arm,no-completion-irq, which sets all SCMI
operation into poll mode. This is meant to work around uncooperative
SCP implementations, which do not generate completion interrupts.
This applies primarily on mbox shmem based implementations.

With this property set, such implementations which do not generate
interrupts can be interacted with, until they are fixed to generate
interrupts properly.

Note that, because the original base protocol exchange also requires
some sort of completion mechanism, it is not possible to query SCMI
itself for this property and it must be described in DT. While this
does look a bit like policy, the SCMI provider is part of the
hardware, hence DT.

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
---
Cc: Conor Dooley <conor+dt@kernel.org>
Cc: Cristian Marussi <cristian.marussi@arm.com>
Cc: Florian Fainelli <florian.fainelli@broadcom.com>
Cc: Krzysztof Kozlowski <krzk+dt@kernel.org>
Cc: Rob Herring <robh@kernel.org>
Cc: Sudeep Holla <sudeep.holla@arm.com>
Cc: arm-scmi@vger.kernel.org
Cc: devicetree@vger.kernel.org
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-renesas-soc@vger.kernel.org
---
V2: s@mean@&t and limit poll transport to mailbox/shmem only
V3: - Reformat the commit message, expand property description to
explicitly spell out this is hardware description.
- Rename property from arm,poll-transport to arm,no-completion-irq
---
.../devicetree/bindings/firmware/arm,scmi.yaml | 11 +++++++++++
1 file changed, 11 insertions(+)

diff --git a/Documentation/devicetree/bindings/firmware/arm,scmi.yaml b/Documentation/devicetree/bindings/firmware/arm,scmi.yaml
index be817fd9cc34b..46d9a0a9a0e58 100644
--- a/Documentation/devicetree/bindings/firmware/arm,scmi.yaml
+++ b/Documentation/devicetree/bindings/firmware/arm,scmi.yaml
@@ -146,6 +146,14 @@ properties:
this platform. If set, the value should be non-zero.
minimum: 1

+ arm,no-completion-irq:
+ type: boolean
+ description:
+ An optional property which unconditionally forces polling in all transports,
+ meant for hardware which does not generate completion interrupts. This is
+ mainly meant to work around uncooperative SCP or SCP firmware, which does
+ not generate completion interrupts.
+
arm,smc-id:
$ref: /schemas/types.yaml#/definitions/uint32
description:
@@ -379,6 +387,9 @@ then:
- shmem

else:
+ properties:
+ arm,no-completion-irq: false
+
if:
properties:
compatible:
--
2.51.0