The MT8188 SCP can use either one or two reserved memory regions: - Required: Main SCP SRAM memory region (mandatory for SCP operation) - Optional: SCP L1TCM memory region (Level 1 Tightly Coupled Memory, used for performance optimization when available, but not required for basic SCP functionality)
Other MediaTek SoCs (MT8183, MT8186, MT8192, MT8195) use only a single memory region and must remain restricted to one region for backward compatibility. Update the base schema to allow 1-2 memory regions (minItems: 1, maxItems: 2), following the pattern used by other MediaTek dt-bindings like mediatek,vcodec-encoder.yaml where the base property defines a permissive range accommodating all device variants. Add two conditionals: 1. Explicitly restrict non-MT8188 devices to maxItems: 1 2. Document MT8188's two regions with descriptions (minItems: 1 makes the L1TCM region optional, allowing boards to specify 1-2 regions based on hardware configuration) This approach maintains backward compatibility while enabling MT8188 to specify 1-2 memory regions depending on board design and performance requirements. 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

