@@ -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+
73146required :
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
104207additionalProperties : 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