[PATCH v4 1/3] dt-bindings: remoteproc: Move iommus constraint to SoC-specific bindings

From: Komal Bajaj

Date: Wed Nov 04 2026 - 09:09:18 EST


The `iommus` property constraint in qcom,pas-common.yaml is too
restrictive with `maxItems: 1`, preventing SoCs that require multiple
IOMMU entries from being properly described.

Remove `iommus` constraint from qcom,pas-common.yaml and add it to
SoC-specific binding files that have EL2 support and require IOMMU
configuration:

- qcom,sa8775p-pas.yaml: Add `iommus: maxItems: 1` for all sa8775p
and qcs8300 remoteproc compatibles (lemans-el2, monaco-el2)

- qcom,sm8150-pas.yaml: Add `iommus: maxItems: 1` for qcs615
remoteproc compatibles (talos-el2)

- qcom,sm8550-pas.yaml: Add `iommus: maxItems: 1` for x1e80100
remoteproc compatibles (x1-el2)

This allows each SoC to define its own IOMMU requirements while
maintaining backward compatibility.

Signed-off-by: Komal Bajaj <komal.bajaj@xxxxxxxxxxxxxxxx>
---
.../devicetree/bindings/remoteproc/qcom,pas-common.yaml | 3 ---
.../devicetree/bindings/remoteproc/qcom,sa8775p-pas.yaml | 6 ++++++
.../devicetree/bindings/remoteproc/qcom,sm8150-pas.yaml | 12 ++++++++++++
.../devicetree/bindings/remoteproc/qcom,sm8550-pas.yaml | 12 ++++++++++++
4 files changed, 30 insertions(+), 3 deletions(-)

diff --git a/Documentation/devicetree/bindings/remoteproc/qcom,pas-common.yaml b/Documentation/devicetree/bindings/remoteproc/qcom,pas-common.yaml
index f75cab6b4ed9..4662fe4cff62 100644
--- a/Documentation/devicetree/bindings/remoteproc/qcom,pas-common.yaml
+++ b/Documentation/devicetree/bindings/remoteproc/qcom,pas-common.yaml
@@ -32,9 +32,6 @@ properties:
minItems: 5
maxItems: 6

- iommus:
- maxItems: 1
-
power-domains:
minItems: 1
maxItems: 3
diff --git a/Documentation/devicetree/bindings/remoteproc/qcom,sa8775p-pas.yaml b/Documentation/devicetree/bindings/remoteproc/qcom,sa8775p-pas.yaml
index dda2d144b720..711c2f723b17 100644
--- a/Documentation/devicetree/bindings/remoteproc/qcom,sa8775p-pas.yaml
+++ b/Documentation/devicetree/bindings/remoteproc/qcom,sa8775p-pas.yaml
@@ -106,6 +106,8 @@ allOf:
items:
- const: lcx
- const: lmx
+ iommus:
+ maxItems: 1

- if:
properties:
@@ -126,6 +128,8 @@ allOf:
- const: cx
- const: mxc
- const: nsp
+ iommus:
+ maxItems: 1

- if:
properties:
@@ -144,6 +148,8 @@ allOf:
items:
- const: cx
- const: mxc
+ iommus:
+ maxItems: 1

unevaluatedProperties: false

diff --git a/Documentation/devicetree/bindings/remoteproc/qcom,sm8150-pas.yaml b/Documentation/devicetree/bindings/remoteproc/qcom,sm8150-pas.yaml
index 5a7c5f8c92d1..e643e44a4739 100644
--- a/Documentation/devicetree/bindings/remoteproc/qcom,sm8150-pas.yaml
+++ b/Documentation/devicetree/bindings/remoteproc/qcom,sm8150-pas.yaml
@@ -178,6 +178,18 @@ allOf:
- const: lcx
- const: lmx

+ - if:
+ properties:
+ compatible:
+ contains:
+ enum:
+ - qcom,qcs615-adsp-pas
+ - qcom,qcs615-cdsp-pas
+ then:
+ properties:
+ iommus:
+ maxItems: 1
+
unevaluatedProperties: false

examples:
diff --git a/Documentation/devicetree/bindings/remoteproc/qcom,sm8550-pas.yaml b/Documentation/devicetree/bindings/remoteproc/qcom,sm8550-pas.yaml
index 99e9aeeb4f62..dd81ecdb8dc4 100644
--- a/Documentation/devicetree/bindings/remoteproc/qcom,sm8550-pas.yaml
+++ b/Documentation/devicetree/bindings/remoteproc/qcom,sm8550-pas.yaml
@@ -317,6 +317,18 @@ allOf:
- const: mx
- const: nsp

+ - if:
+ properties:
+ compatible:
+ contains:
+ enum:
+ - qcom,x1e80100-adsp-pas
+ - qcom,x1e80100-cdsp-pas
+ then:
+ properties:
+ iommus:
+ maxItems: 1
+
unevaluatedProperties: false

examples:

--
2.34.1