Skip to content

Commit 6b55b1e

Browse files
tinghan-shenmathieupoirier
authored andcommitted
dt-bindings: remoteproc: mediatek: Support MT8195 dual-core SCP
Extend the SCP binding to describe the MT8195 dual-core SCP. Under different applications, the MT8195 SCP can be used as single-core or dual-core. This change keeps the single-core definitions and adds new definitions for the dual-core use case. Signed-off-by: Tinghan Shen <tinghan.shen@mediatek.com> Reviewed-by: Rob Herring <robh@kernel.org> Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com> Link: https://lore.kernel.org/r/20230901080935.14571-4-tinghan.shen@mediatek.com Signed-off-by: Mathieu Poirier <mathieu.poirier@linaro.org>
1 parent cdd2218 commit 6b55b1e

1 file changed

Lines changed: 141 additions & 4 deletions

File tree

Documentation/devicetree/bindings/remoteproc/mtk,scp.yaml

Lines changed: 141 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ properties:
2121
- mediatek,mt8188-scp
2222
- mediatek,mt8192-scp
2323
- mediatek,mt8195-scp
24+
- mediatek,mt8195-scp-dual
2425

2526
reg:
2627
description:
@@ -31,10 +32,7 @@ properties:
3132

3233
reg-names:
3334
minItems: 2
34-
items:
35-
- const: sram
36-
- const: cfg
37-
- const: l1tcm
35+
maxItems: 3
3836

3937
clocks:
4038
description:
@@ -70,6 +68,81 @@ properties:
7068

7169
unevaluatedProperties: false
7270

71+
'#address-cells':
72+
const: 1
73+
74+
'#size-cells':
75+
const: 1
76+
77+
ranges:
78+
description:
79+
Standard ranges definition providing address translations for
80+
local SCP SRAM address spaces to bus addresses.
81+
82+
patternProperties:
83+
"^scp@[a-f0-9]+$":
84+
type: object
85+
description:
86+
The MediaTek SCP integrated to SoC might be a multi-core version.
87+
The other cores are represented as child nodes of the boot core.
88+
There are some integration differences for the IP like the usage of
89+
address translator for translating SoC bus addresses into address space
90+
for the processor.
91+
92+
Each SCP core has own cache memory. The SRAM and L1TCM are shared by
93+
cores. The power of cache, SRAM and L1TCM power should be enabled
94+
before booting SCP cores. The size of cache, SRAM, and L1TCM are varied
95+
on differnt SoCs.
96+
97+
The SCP cores do not use an MMU, but has a set of registers to
98+
control the translations between 32-bit CPU addresses into system bus
99+
addresses. Cache and memory access settings are provided through a
100+
Memory Protection Unit (MPU), programmable only from the SCP.
101+
102+
properties:
103+
compatible:
104+
enum:
105+
- mediatek,scp-core
106+
107+
reg:
108+
description: The base address and size of SRAM.
109+
maxItems: 1
110+
111+
reg-names:
112+
const: sram
113+
114+
interrupts:
115+
maxItems: 1
116+
117+
firmware-name:
118+
$ref: /schemas/types.yaml#/definitions/string
119+
description:
120+
If present, name (or relative path) of the file within the
121+
firmware search path containing the firmware image used when
122+
initializing sub cores of multi-core SCP.
123+
124+
memory-region:
125+
maxItems: 1
126+
127+
cros-ec-rpmsg:
128+
$ref: /schemas/mfd/google,cros-ec.yaml
129+
description:
130+
This subnode represents the rpmsg device. The properties
131+
of this node are defined by the individual bindings for
132+
the rpmsg devices.
133+
134+
required:
135+
- mediatek,rpmsg-name
136+
137+
unevaluatedProperties: false
138+
139+
required:
140+
- compatible
141+
- reg
142+
- reg-names
143+
144+
additionalProperties: false
145+
73146
required:
74147
- compatible
75148
- reg
@@ -99,7 +172,37 @@ allOf:
99172
reg:
100173
maxItems: 2
101174
reg-names:
175+
items:
176+
- const: sram
177+
- const: cfg
178+
- if:
179+
properties:
180+
compatible:
181+
enum:
182+
- mediatek,mt8192-scp
183+
- mediatek,mt8195-scp
184+
then:
185+
properties:
186+
reg:
187+
maxItems: 3
188+
reg-names:
189+
items:
190+
- const: sram
191+
- const: cfg
192+
- const: l1tcm
193+
- if:
194+
properties:
195+
compatible:
196+
enum:
197+
- mediatek,mt8195-scp-dual
198+
then:
199+
properties:
200+
reg:
102201
maxItems: 2
202+
reg-names:
203+
items:
204+
- const: cfg
205+
- const: l1tcm
103206

104207
additionalProperties: false
105208

@@ -121,3 +224,37 @@ examples:
121224
mediatek,rpmsg-name = "cros-ec-rpmsg";
122225
};
123226
};
227+
228+
- |
229+
scp@10500000 {
230+
compatible = "mediatek,mt8195-scp-dual";
231+
reg = <0x10720000 0xe0000>,
232+
<0x10700000 0x8000>;
233+
reg-names = "cfg", "l1tcm";
234+
235+
#address-cells = <1>;
236+
#size-cells = <1>;
237+
ranges = <0 0x10500000 0x100000>;
238+
239+
scp@0 {
240+
compatible = "mediatek,scp-core";
241+
reg = <0x0 0xa0000>;
242+
reg-names = "sram";
243+
244+
cros-ec-rpmsg {
245+
compatible = "google,cros-ec-rpmsg";
246+
mediatek,rpmsg-name = "cros-ec-rpmsg";
247+
};
248+
};
249+
250+
scp@a0000 {
251+
compatible = "mediatek,scp-core";
252+
reg = <0xa0000 0x20000>;
253+
reg-names = "sram";
254+
255+
cros-ec-rpmsg {
256+
compatible = "google,cros-ec-rpmsg";
257+
mediatek,rpmsg-name = "cros-ec-rpmsg";
258+
};
259+
};
260+
};

0 commit comments

Comments
 (0)