.../devicetree/bindings/remoteproc/mtk,scp.yaml | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-)
Update the memory-region property to support 1-2 reserved memory
regions instead of exactly one. This is needed for newer MediaTek
SoCs like MT8188 which require additional memory regions for SCP
operation.
Tested on MT8188 Geralt platform.
Signed-off-by: Arnab Layek <arnab.layek@mediatek.com>
---
.../devicetree/bindings/remoteproc/mtk,scp.yaml | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)
diff --git a/Documentation/devicetree/bindings/remoteproc/mtk,scp.yaml b/Documentation/devicetree/bindings/remoteproc/mtk,scp.yaml
index bdbb12118da4..9f6dca94ff40 100644
--- a/Documentation/devicetree/bindings/remoteproc/mtk,scp.yaml
+++ b/Documentation/devicetree/bindings/remoteproc/mtk,scp.yaml
@@ -55,7 +55,10 @@ properties:
initializing SCP.
memory-region:
- maxItems: 1
+ description:
+ Phandle to the reserved memory regions.
+ minItems: 1
+ maxItems: 2
cros-ec-rpmsg:
$ref: /schemas/embedded-controller/google,cros-ec.yaml
@@ -123,7 +126,10 @@ patternProperties:
initializing sub cores of multi-core SCP.
memory-region:
- maxItems: 1
+ description:
+ Phandle to the reserved memory regions.
+ minItems: 1
+ maxItems: 2
cros-ec-rpmsg:
$ref: /schemas/embedded-controller/google,cros-ec.yaml
--
2.45.2
This series updates the mtk,scp dt-binding schema to support MT8188's
requirement for two memory regions while maintaining backward
compatibility for other MediaTek SoCs.
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
Changes in v3:
- Removed "Tested on..." line per Krzysztof's feedback (bindings cannot be tested)
- Added minItems: 1 to MT8188 conditional to make L1TCM region truly optional
- Clarified commit message to specifically reference mediatek,jpeg-encoder.yaml pattern
- Restructured schema per Conor's feedback: base allows maxItems: 2, conditionals restrict
- Added explicit restrictions for non-MT8188 devices (maxItems: 1)
- Added technical explanation of the permissive base + restrictive conditionals pattern
Changes in v2:
- Added conditional schema for MT8188 to allow 1-2 memory regions
- Added descriptions for each memory region
- Did not work: base maxItems: 1 conflicted with conditional trying to allow 2
Arnab Layek (1):
dt-bindings: remoteproc: mtk,scp: Allow multiple memory regions for
MT8188
.../bindings/remoteproc/mtk,scp.yaml | 45 ++++++++++++++++++-
1 file changed, 43 insertions(+), 2 deletions(-)
--
2.45.2
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 <arnab.layek@mediatek.com>
---
.../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
On Thu, May 14, 2026 at 07:45:33PM +0800, Arnab Layek wrote: > 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. > So I just reviewed v2, because it appeared in patchwork thread... because you just threaded v3 there. No, really, this was repeated also to Mediatek so many times. Implement v2 review. Best regards, Krzysztof
On 14/05/2026 14:30, Krzysztof Kozlowski wrote: > On Thu, May 14, 2026 at 07:45:33PM +0800, Arnab Layek wrote: >> 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. >> > > So I just reviewed v2, because it appeared in patchwork thread... > because you just threaded v3 there. > > No, really, this was repeated also to Mediatek so many times. > > Implement v2 review. > Heh, and now I noticed that you just merged THREE versions in one thread leading to complete mess in this entire thread. Best regards, Krzysztof
This patch updates the MediaTek SCP device tree binding to support
multiple memory regions for MT8188 SoCs, addressing review feedback
from v1.
The MT8188 SCP requires two memory regions (SRAM + L1TCM) while other
MediaTek SoCs use only one. This patch follows the proper pattern of
using conditional schemas with explicit descriptions.
Changes in v2:
- Use conditional schema (if/then in allOf) to restrict multiple
memory regions only to MT8188 variants, keeping maxItems: 1 as
default for other SoCs (addresses Krzysztof's review)
- Add explicit item descriptions for each memory region (Main SRAM
and optional L1TCM) instead of just setting minItems/maxItems
- Apply to both top-level and patternProperties
Based on linux-next, tag: next-20260505
Arnab Layek (1):
dt-bindings: remoteproc: mtk,scp: Allow multiple memory regions for
MT8188
.../bindings/remoteproc/mtk,scp.yaml | 21 +++++++++++++++++++
1 file changed, 21 insertions(+)
--
2.45.2
The MT8188 SCP requires two reserved memory regions:
1. Main SCP SRAM memory region (required)
2. SCP L1TCM memory region (optional, for additional memory)
Some other MediaTek SoCs only use a single memory region. This patch adds
a conditional schema using if/then to allow 1-2 memory regions
specifically for mediatek,mt8188-scp and mediatek,mt8188-scp-dual
compatibles, while keeping the default maxItems: 1 for other
SoCs.
Each memory region is documented with descriptions to
clarify their purpose, following the pattern used in other bindings.
Signed-off-by: Arnab Layek <arnab.layek@mediatek.com>
---
.../bindings/remoteproc/mtk,scp.yaml | 21 +++++++++++++++++++
1 file changed, 21 insertions(+)
diff --git a/Documentation/devicetree/bindings/remoteproc/mtk,scp.yaml b/Documentation/devicetree/bindings/remoteproc/mtk,scp.yaml
index bdbb12118da4..df13be2026a6 100644
--- a/Documentation/devicetree/bindings/remoteproc/mtk,scp.yaml
+++ b/Documentation/devicetree/bindings/remoteproc/mtk,scp.yaml
@@ -205,6 +205,27 @@ allOf:
items:
- const: cfg
- const: l1tcm
+ - 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
On Mon, May 11, 2026 at 08:10:04PM +0800, Arnab Layek wrote: > The MT8188 SCP requires two reserved memory regions: > 1. Main SCP SRAM memory region (required) > 2. SCP L1TCM memory region (optional, for additional memory) > > Some other MediaTek SoCs only use a single memory region. This patch adds Please do not use "This commit/patch/change", but imperative mood. See longer explanation here: https://elixir.bootlin.com/linux/v6.16/source/Documentation/process/submitting-patches.rst#L94 > a conditional schema using if/then to allow 1-2 memory regions > specifically for mediatek,mt8188-scp and mediatek,mt8188-scp-dual > compatibles, while keeping the default maxItems: 1 for other > SoCs. Stop explaining what you did. Explain WHY. Why second entry is optional? Why are you changing existing binding? Was it working? Not? Why not? Why yes? > > Each memory region is documented with descriptions to > clarify their purpose, following the pattern used in other bindings. Redundant. We can read the diff. > > Signed-off-by: Arnab Layek <arnab.layek@mediatek.com> > --- > .../bindings/remoteproc/mtk,scp.yaml | 21 +++++++++++++++++++ > 1 file changed, 21 insertions(+) > > diff --git a/Documentation/devicetree/bindings/remoteproc/mtk,scp.yaml b/Documentation/devicetree/bindings/remoteproc/mtk,scp.yaml > index bdbb12118da4..df13be2026a6 100644 > --- a/Documentation/devicetree/bindings/remoteproc/mtk,scp.yaml > +++ b/Documentation/devicetree/bindings/remoteproc/mtk,scp.yaml > @@ -205,6 +205,27 @@ allOf: > items: > - const: cfg > - const: l1tcm > + - 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 Conflicts top level. > + 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 >
On Mon, May 11, 2026 at 08:10:04PM +0800, Arnab Layek wrote: > The MT8188 SCP requires two reserved memory regions: > 1. Main SCP SRAM memory region (required) > 2. SCP L1TCM memory region (optional, for additional memory) > > Some other MediaTek SoCs only use a single memory region. This patch adds > a conditional schema using if/then to allow 1-2 memory regions > specifically for mediatek,mt8188-scp and mediatek,mt8188-scp-dual > compatibles, while keeping the default maxItems: 1 for other > SoCs. > > Each memory region is documented with descriptions to > clarify their purpose, following the pattern used in other bindings. > > Signed-off-by: Arnab Layek <arnab.layek@mediatek.com> > --- > .../bindings/remoteproc/mtk,scp.yaml | 21 +++++++++++++++++++ > 1 file changed, 21 insertions(+) > > diff --git a/Documentation/devicetree/bindings/remoteproc/mtk,scp.yaml b/Documentation/devicetree/bindings/remoteproc/mtk,scp.yaml > index bdbb12118da4..df13be2026a6 100644 > --- a/Documentation/devicetree/bindings/remoteproc/mtk,scp.yaml > +++ b/Documentation/devicetree/bindings/remoteproc/mtk,scp.yaml > @@ -205,6 +205,27 @@ allOf: > items: > - const: cfg > - const: l1tcm > + - 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 Does this even work, given that memory-region has maxItems: 1 outside the conditional section? Cheers, Conor. > > additionalProperties: false > > -- > 2.45.2 >
On 06/05/2026 15:31, Arnab Layek wrote: > Update the memory-region property to support 1-2 reserved memory > regions instead of exactly one. This is needed for newer MediaTek > SoCs like MT8188 which require additional memory regions for SCP > operation. So where is the compatible? Already there? > > Tested on MT8188 Geralt platform. You cannot test binding. > > Signed-off-by: Arnab Layek <arnab.layek@mediatek.com> > --- > .../devicetree/bindings/remoteproc/mtk,scp.yaml | 10 ++++++++-- > 1 file changed, 8 insertions(+), 2 deletions(-) > > diff --git a/Documentation/devicetree/bindings/remoteproc/mtk,scp.yaml b/Documentation/devicetree/bindings/remoteproc/mtk,scp.yaml > index bdbb12118da4..9f6dca94ff40 100644 > --- a/Documentation/devicetree/bindings/remoteproc/mtk,scp.yaml > +++ b/Documentation/devicetree/bindings/remoteproc/mtk,scp.yaml > @@ -55,7 +55,10 @@ properties: > initializing SCP. > > memory-region: > - maxItems: 1 > + description: > + Phandle to the reserved memory regions. > + minItems: 1 > + maxItems: 2 Just like I sent some patches long time ago for iommus Mediatek media bindings - fix it the same way. Pity the patches were not picked up, even though sending twice, but that does not give you easier way to get incorrect code in. You just multiple poor patterns... Best regards, Krzysztof
© 2016 - 2026 Red Hat, Inc.