The MT8188 SCP requires support for 1-2 reserved memory regions, while other MediaTek SoCs use only a single memory region.
The schema uses a permissive base with restrictive conditionals: 1) Base schema allows all devices minItems: 1, maxItems: 2 2) Non-MT8188 devices (mt8183, mt8186, mt8192, mt8195, mt8195-dual) are restricted to maxItems: 1, overriding the base 3) MT8188 devices (mt8188, mt8188-dual) set minItems: 1 with item descriptions, inheriting maxItems: 2 from base, making the second L1TCM region optional This follows the same pattern as other MediaTek dt-bindings such as mediatek,jpeg-encoder.yaml which uses conditional schemas to support different numbers of iommus per device variant. Signed-off-by: Arnab Layek <[email protected]> --- .../bindings/remoteproc/mtk,scp.yaml | 45 ++++++++++++++++++- 1 file changed, 43 insertions(+), 2 deletions(-) diff --git a/Documentation/devicetree/bindings/remoteproc/mtk,scp.yaml b/Documentation/devicetree/bindings/remoteproc/mtk,scp.yaml index bdbb12118da4..fca9b0675eae 100644 --- a/Documentation/devicetree/bindings/remoteproc/mtk,scp.yaml +++ b/Documentation/devicetree/bindings/remoteproc/mtk,scp.yaml @@ -55,7 +55,8 @@ properties: initializing SCP. memory-region: - maxItems: 1 + minItems: 1 + maxItems: 2 cros-ec-rpmsg: $ref: /schemas/embedded-controller/google,cros-ec.yaml @@ -123,7 +124,8 @@ patternProperties: initializing sub cores of multi-core SCP. memory-region: - maxItems: 1 + minItems: 1 + maxItems: 2 cros-ec-rpmsg: $ref: /schemas/embedded-controller/google,cros-ec.yaml @@ -205,6 +207,45 @@ allOf: items: - const: cfg - const: l1tcm + - if: + properties: + compatible: + enum: + - mediatek,mt8183-scp + - mediatek,mt8186-scp + - mediatek,mt8192-scp + - mediatek,mt8195-scp + - mediatek,mt8195-scp-dual + then: + properties: + memory-region: + maxItems: 1 + patternProperties: + "^scp@[a-f0-9]+$": + properties: + memory-region: + maxItems: 1 + - if: + properties: + compatible: + enum: + - mediatek,mt8188-scp + - mediatek,mt8188-scp-dual + then: + properties: + memory-region: + minItems: 1 + items: + - description: Main SCP SRAM memory region + - description: Optional SCP L1TCM memory region + patternProperties: + "^scp@[a-f0-9]+$": + properties: + memory-region: + minItems: 1 + items: + - description: Main SCP SRAM memory region + - description: Optional SCP L1TCM memory region additionalProperties: false -- 2.45.2

