xref: /optee_os/core/arch/arm/dts/stm32mp25-st-scmi-cfg.dtsi (revision d4a3bf5d242d2c96606d5fa52e76a23ba17b2ee1)
1// SPDX-License-Identifier: (GPL-2.0-only OR BSD-3-Clause)
2/*
3 * Copyright (C) STMicroelectronics 2025 - All Rights Reserved
4 *
5 * SCMI server (based on SCP) configuration in OP-TEE for STMicroelectronics
6 * boards when CA35 is TDCID
7 */
8
9#include <dt-bindings/scmi/scmi-clock.h>
10
11/ {
12	scmi {
13		compatible = "optee,scmi-server";
14		#address-cells = <1>;
15		#size-cells = <0>;
16
17		/* SCMI agent for cortex A35 non-secure */
18		agent@1 {
19			compatible = "linaro,scmi-optee";
20			reg = <1>;
21			scmi-channel-id = <0>;
22			#address-cells = <1>;
23			#size-cells = <0>;
24
25			scmi_clock: protocol@14 {
26				reg = <0x14>;
27
28				clocks {
29					#address-cells = <1>;
30					#size-cells = <0>;
31
32					clock@0 {
33						reg = <CK_SCMI_ICN_HS_MCU>;
34						domain-name = "ck_icn_hs_mcu";
35						clocks = <&rcc CK_ICN_HS_MCU>;
36					};
37
38					clock@1 {
39						reg = <CK_SCMI_ICN_SDMMC>;
40						domain-name = "ck_icn_sdmmc";
41						clocks = <&rcc CK_ICN_SDMMC>;
42					};
43
44					clock@2 {
45						reg = <CK_SCMI_ICN_DDR>;
46						domain-name = "ck_icn_ddr";
47						clocks = <&rcc CK_ICN_DDR>;
48					};
49
50					clock@3 {
51						reg = <CK_SCMI_ICN_DISPLAY>;
52						domain-name = "ck_icn_display";
53						clocks = <&rcc CK_ICN_DISPLAY>;
54					};
55
56					clock@4 {
57						reg = <CK_SCMI_ICN_HSL>;
58						domain-name = "ck_icn_hsl";
59						clocks = <&rcc CK_ICN_HSL>;
60					};
61
62					clock@5 {
63						reg = <CK_SCMI_ICN_NIC>;
64						domain-name = "ck_icn_nic";
65						clocks = <&rcc CK_ICN_NIC>;
66					};
67
68					clock@6 {
69						reg = <CK_SCMI_ICN_VID>;
70						domain-name = "ck_icn_vid";
71						clocks = <&rcc CK_ICN_VID>;
72					};
73
74					clock@7 {
75						reg = <CK_SCMI_FLEXGEN_07>;
76						domain-name = "ck_flexgen_07";
77						clocks = <&rcc CK_FLEXGEN_07>;
78					};
79
80					clock@8 {
81						reg = <CK_SCMI_FLEXGEN_08>;
82						domain-name = "ck_flexgen_08";
83						clocks = <&rcc CK_FLEXGEN_08>;
84					};
85
86					clock@9 {
87						reg = <CK_SCMI_FLEXGEN_09>;
88						domain-name = "ck_flexgen_09";
89						clocks = <&rcc CK_FLEXGEN_09>;
90					};
91
92					clock@a {
93						reg = <CK_SCMI_FLEXGEN_10>;
94						domain-name = "ck_flexgen_10";
95						clocks = <&rcc CK_FLEXGEN_10>;
96						flags = <SCMI_CLOCK_ALLOW_SET_RATE>;
97					};
98
99					clock@b {
100						reg = <CK_SCMI_FLEXGEN_11>;
101						domain-name = "ck_flexgen_11";
102						clocks = <&rcc CK_FLEXGEN_11>;
103					};
104
105					clock@c {
106						reg = <CK_SCMI_FLEXGEN_12>;
107						domain-name = "ck_flexgen_12";
108						clocks = <&rcc CK_FLEXGEN_12>;
109					};
110
111					clock@d {
112						reg = <CK_SCMI_FLEXGEN_13>;
113						domain-name = "ck_flexgen_13";
114						clocks = <&rcc CK_FLEXGEN_13>;
115					};
116
117					clock@e {
118						reg = <CK_SCMI_FLEXGEN_14>;
119						domain-name = "ck_flexgen_14";
120						clocks = <&rcc CK_FLEXGEN_14>;
121					};
122
123					clock@f {
124						reg = <CK_SCMI_FLEXGEN_15>;
125						domain-name = "ck_flexgen_15";
126						clocks = <&rcc CK_FLEXGEN_15>;
127					};
128
129					clock@10 {
130						reg = <CK_SCMI_FLEXGEN_16>;
131						domain-name = "ck_flexgen_16";
132						clocks = <&rcc CK_FLEXGEN_16>;
133						flags = <SCMI_CLOCK_ALLOW_SET_RATE>;
134					};
135
136					clock@11 {
137						reg = <CK_SCMI_FLEXGEN_17>;
138						domain-name = "ck_flexgen_17";
139						clocks = <&rcc CK_FLEXGEN_17>;
140					};
141
142					clock@12 {
143						reg = <CK_SCMI_FLEXGEN_18>;
144						domain-name = "ck_flexgen_18";
145						clocks = <&rcc CK_FLEXGEN_18>;
146					};
147
148					clock@13 {
149						reg = <CK_SCMI_FLEXGEN_19>;
150						domain-name = "ck_flexgen_19";
151						clocks = <&rcc CK_FLEXGEN_19>;
152					};
153
154					clock@14 {
155						reg = <CK_SCMI_FLEXGEN_20>;
156						domain-name = "ck_flexgen_20";
157						clocks = <&rcc CK_FLEXGEN_20>;
158					};
159
160					clock@15 {
161						reg = <CK_SCMI_FLEXGEN_21>;
162						domain-name = "ck_flexgen_21";
163						clocks = <&rcc CK_FLEXGEN_21>;
164					};
165
166					clock@16 {
167						reg = <CK_SCMI_FLEXGEN_22>;
168						domain-name = "ck_flexgen_22";
169						clocks = <&rcc CK_FLEXGEN_22>;
170					};
171
172					clock@17 {
173						reg = <CK_SCMI_FLEXGEN_23>;
174						domain-name = "ck_flexgen_23";
175						clocks = <&rcc CK_FLEXGEN_23>;
176						flags = <SCMI_CLOCK_ALLOW_SET_RATE>;
177					};
178
179					clock@18 {
180						reg = <CK_SCMI_FLEXGEN_24>;
181						domain-name = "ck_flexgen_24";
182						clocks = <&rcc CK_FLEXGEN_24>;
183						flags = <SCMI_CLOCK_ALLOW_SET_RATE>;
184					};
185
186					clock@19 {
187						reg = <CK_SCMI_FLEXGEN_25>;
188						domain-name = "ck_flexgen_25";
189						clocks = <&rcc CK_FLEXGEN_25>;
190						flags = <SCMI_CLOCK_ALLOW_SET_RATE>;
191					};
192
193					clock@1a {
194						reg = <CK_SCMI_FLEXGEN_26>;
195						domain-name = "ck_flexgen_26";
196						clocks = <&rcc CK_FLEXGEN_26>;
197					};
198
199					clock@1b {
200						reg = <CK_SCMI_FLEXGEN_27>;
201						domain-name = "ck_flexgen_27";
202						clocks = <&rcc CK_FLEXGEN_27>;
203						flags = <SCMI_CLOCK_ALLOW_SET_RATE>;
204					};
205
206					clock@1c {
207						reg = <CK_SCMI_FLEXGEN_28>;
208						domain-name = "ck_flexgen_28";
209						clocks = <&rcc CK_FLEXGEN_28>;
210					};
211
212					clock@1d {
213						reg = <CK_SCMI_FLEXGEN_29>;
214						domain-name = "ck_flexgen_29";
215						clocks = <&rcc CK_FLEXGEN_29>;
216					};
217
218					clock@1e {
219						reg = <CK_SCMI_FLEXGEN_30>;
220						domain-name = "ck_flexgen_30";
221						clocks = <&rcc CK_FLEXGEN_30>;
222					};
223
224					clock@1f {
225						reg = <CK_SCMI_FLEXGEN_31>;
226						domain-name = "ck_flexgen_31";
227						clocks = <&rcc CK_FLEXGEN_31>;
228					};
229
230					clock@20 {
231						reg = <CK_SCMI_FLEXGEN_32>;
232						domain-name = "ck_flexgen_32";
233						clocks = <&rcc CK_FLEXGEN_32>;
234					};
235
236					clock@21 {
237						reg = <CK_SCMI_FLEXGEN_33>;
238						domain-name = "ck_flexgen_33";
239						clocks = <&rcc CK_FLEXGEN_33>;
240					};
241
242					clock@22 {
243						reg = <CK_SCMI_FLEXGEN_34>;
244						domain-name = "ck_flexgen_34";
245						clocks = <&rcc CK_FLEXGEN_34>;
246					};
247
248					clock@23 {
249						reg = <CK_SCMI_FLEXGEN_35>;
250						domain-name = "ck_flexgen_35";
251						clocks = <&rcc CK_FLEXGEN_35>;
252					};
253
254					clock@24 {
255						reg = <CK_SCMI_FLEXGEN_36>;
256						domain-name = "ck_flexgen_36";
257						clocks = <&rcc CK_FLEXGEN_36>;
258					};
259
260					clock@25 {
261						reg = <CK_SCMI_FLEXGEN_37>;
262						domain-name = "ck_flexgen_37";
263						clocks = <&rcc CK_FLEXGEN_37>;
264					};
265
266					clock@26 {
267						reg = <CK_SCMI_FLEXGEN_38>;
268						domain-name = "ck_flexgen_38";
269						clocks = <&rcc CK_FLEXGEN_38>;
270					};
271
272					clock@27 {
273						reg = <CK_SCMI_FLEXGEN_39>;
274						domain-name = "ck_flexgen_39";
275						clocks = <&rcc CK_FLEXGEN_39>;
276					};
277
278					clock@28 {
279						reg = <CK_SCMI_FLEXGEN_40>;
280						domain-name = "ck_flexgen_40";
281						clocks = <&rcc CK_FLEXGEN_40>;
282					};
283
284					clock@29 {
285						reg = <CK_SCMI_FLEXGEN_41>;
286						domain-name = "ck_flexgen_41";
287						clocks = <&rcc CK_FLEXGEN_41>;
288					};
289
290					clock@2a {
291						reg = <CK_SCMI_FLEXGEN_42>;
292						domain-name = "ck_flexgen_42";
293						clocks = <&rcc CK_FLEXGEN_42>;
294					};
295
296					clock@2b {
297						reg = <CK_SCMI_FLEXGEN_43>;
298						domain-name = "ck_flexgen_43";
299						clocks = <&rcc CK_FLEXGEN_43>;
300					};
301
302					clock@2c {
303						reg = <CK_SCMI_FLEXGEN_44>;
304						domain-name = "ck_flexgen_44";
305						clocks = <&rcc CK_FLEXGEN_44>;
306					};
307
308					clock@2d {
309						reg = <CK_SCMI_FLEXGEN_45>;
310						domain-name = "ck_flexgen_45";
311						clocks = <&rcc CK_FLEXGEN_45>;
312					};
313
314					clock@2e {
315						reg = <CK_SCMI_FLEXGEN_46>;
316						domain-name = "ck_flexgen_46";
317						clocks = <&rcc CK_FLEXGEN_46>;
318					};
319
320					clock@2f {
321						reg = <CK_SCMI_FLEXGEN_47>;
322						domain-name = "ck_flexgen_47";
323						clocks = <&rcc CK_FLEXGEN_47>;
324					};
325
326					clock@30 {
327						reg = <CK_SCMI_FLEXGEN_48>;
328						domain-name = "ck_flexgen_48";
329						clocks = <&rcc CK_FLEXGEN_48>;
330					};
331
332					clock@31 {
333						reg = <CK_SCMI_FLEXGEN_49>;
334						domain-name = "ck_flexgen_49";
335						clocks = <&rcc CK_FLEXGEN_49>;
336					};
337
338					clock@32 {
339						reg = <CK_SCMI_FLEXGEN_50>;
340						domain-name = "ck_flexgen_50";
341						clocks = <&rcc CK_FLEXGEN_50>;
342					};
343
344					clock@33 {
345						reg = <CK_SCMI_FLEXGEN_51>;
346						domain-name = "ck_flexgen_51";
347						clocks = <&rcc CK_FLEXGEN_51>;
348					};
349
350					clock@34 {
351						reg = <CK_SCMI_FLEXGEN_52>;
352						domain-name = "ck_flexgen_52";
353						clocks = <&rcc CK_FLEXGEN_52>;
354					};
355
356					clock@35 {
357						reg = <CK_SCMI_FLEXGEN_53>;
358						domain-name = "ck_flexgen_53";
359						clocks = <&rcc CK_FLEXGEN_53>;
360					};
361
362					clock@36 {
363						reg = <CK_SCMI_FLEXGEN_54>;
364						domain-name = "ck_flexgen_54";
365						clocks = <&rcc CK_FLEXGEN_54>;
366					};
367
368					clock@37 {
369						reg = <CK_SCMI_FLEXGEN_55>;
370						domain-name = "ck_flexgen_55";
371						clocks = <&rcc CK_FLEXGEN_55>;
372					};
373
374					clock@38 {
375						reg = <CK_SCMI_FLEXGEN_56>;
376						domain-name = "ck_flexgen_56";
377						clocks = <&rcc CK_FLEXGEN_56>;
378					};
379
380					clock@39 {
381						reg = <CK_SCMI_FLEXGEN_57>;
382						domain-name = "ck_flexgen_57";
383						clocks = <&rcc CK_FLEXGEN_57>;
384					};
385
386					clock@3a {
387						reg = <CK_SCMI_FLEXGEN_58>;
388						domain-name = "ck_flexgen_58";
389						clocks = <&rcc CK_FLEXGEN_58>;
390					};
391
392					clock@3b {
393						reg = <CK_SCMI_FLEXGEN_59>;
394						domain-name = "ck_flexgen_59";
395						clocks = <&rcc CK_FLEXGEN_59>;
396					};
397
398					clock@3c {
399						reg = <CK_SCMI_FLEXGEN_60>;
400						domain-name = "ck_flexgen_60";
401						clocks = <&rcc CK_FLEXGEN_60>;
402					};
403
404					clock@3d {
405						reg = <CK_SCMI_FLEXGEN_61>;
406						domain-name = "ck_flexgen_61";
407						clocks = <&rcc CK_FLEXGEN_61>;
408					};
409
410					clock@3e {
411						reg = <CK_SCMI_FLEXGEN_62>;
412						domain-name = "ck_flexgen_62";
413						clocks = <&rcc CK_FLEXGEN_62>;
414					};
415
416					clock@3f {
417						reg = <CK_SCMI_FLEXGEN_63>;
418						domain-name = "ck_flexgen_63";
419						clocks = <&rcc CK_FLEXGEN_63>;
420					};
421
422					clock@40 {
423						reg = <CK_SCMI_ICN_LS_MCU>;
424						domain-name = "ck_icn_ls_mcu";
425						clocks = <&rcc CK_ICN_LS_MCU>;
426					};
427
428					clock@41 {
429						reg = <CK_SCMI_HSE>;
430						domain-name = "hse_ck";
431						clocks = <&rcc HSE_CK>;
432					};
433
434					clock@42 {
435						reg = <CK_SCMI_LSE>;
436						domain-name = "lse_ck";
437						clocks = <&rcc LSE_CK>;
438					};
439
440					clock@43 {
441						reg = <CK_SCMI_HSI>;
442						domain-name = "hsi_ck";
443						clocks = <&rcc HSI_CK>;
444					};
445
446					clock@44 {
447						reg = <CK_SCMI_LSI>;
448						domain-name = "lsi_ck";
449						clocks = <&rcc LSI_CK>;
450					};
451
452					clock@45 {
453						reg = <CK_SCMI_MSI>;
454						domain-name = "msi_ck";
455						clocks = <&rcc MSI_CK>;
456					};
457
458					clock@46 {
459						reg = <CK_SCMI_HSE_DIV2>;
460						domain-name = "hse_div2_ck";
461						clocks = <&rcc HSE_DIV2_CK>;
462					};
463
464					clock@4a {
465						reg = <CK_SCMI_PLL3>;
466						domain-name = "ck_pll3";
467						clocks = <&rcc PLL3_CK>;
468					};
469
470					clock@4b {
471						reg = <CK_SCMI_RTC>;
472						domain-name = "ck_bus_rtc";
473						clocks = <&rcc CK_BUS_RTC>;
474					};
475
476					clock@4c {
477						reg = <CK_SCMI_RTCCK>;
478						domain-name = "rtc_ck";
479						clocks = <&rcc RTC_CK>;
480					};
481
482					clock@4d {
483						reg = <CK_SCMI_ICN_APB1>;
484						domain-name = "ck_icn_apb1";
485						clocks = <&rcc CK_ICN_APB1>;
486					};
487
488					clock@4e {
489						reg = <CK_SCMI_ICN_APB2>;
490						domain-name = "ck_icn_apb2";
491						clocks = <&rcc CK_ICN_APB2>;
492					};
493
494					clock@4f {
495						reg = <CK_SCMI_ICN_APB3>;
496						domain-name = "ck_icn_apb3";
497						clocks = <&rcc CK_ICN_APB3>;
498					};
499
500					clock@50 {
501						reg = <CK_SCMI_ICN_APB4>;
502						domain-name = "ck_icn_apb4";
503						clocks = <&rcc CK_ICN_APB4>;
504					};
505
506					clock@51 {
507						reg = <CK_SCMI_ICN_APBDBG>;
508						domain-name = "ck_icn_apbdbg";
509						clocks = <&rcc CK_ICN_APBDBG>;
510					};
511
512					clock@52 {
513						reg = <CK_SCMI_TIMG1>;
514						domain-name = "timg1_ck";
515						clocks = <&rcc TIMG1_CK>;
516					};
517
518					clock@53 {
519						reg = <CK_SCMI_TIMG2>;
520						domain-name = "timg2_ck";
521						clocks = <&rcc TIMG2_CK>;
522					};
523
524					clock@57 {
525						reg = <CK_SCMI_BUS_ETR>;
526						domain-name = "ck_icn_p_etr";
527						clocks = <&rcc CK_BUS_ETR>;
528					};
529
530					clock@58 {
531						reg = <CK_SCMI_FMC>;
532						domain-name = "ck_ker_fmc";
533						clocks = <&rcc CK_KER_FMC>;
534					};
535
536					clock@59 {
537						reg = <CK_SCMI_GPIOA>;
538						domain-name = "ck_bus_gpioa";
539						clocks = <&rcc CK_BUS_GPIOA>;
540					};
541
542					clock@5a {
543						reg = <CK_SCMI_GPIOB>;
544						domain-name = "ck_bus_gpiob";
545						clocks = <&rcc CK_BUS_GPIOB>;
546					};
547
548					clock@5b {
549						reg = <CK_SCMI_GPIOC>;
550						domain-name = "ck_bus_gpioc";
551						clocks = <&rcc CK_BUS_GPIOC>;
552					};
553
554					clock@5c {
555						reg = <CK_SCMI_GPIOD>;
556						domain-name = "ck_bus_gpiod";
557						clocks = <&rcc CK_BUS_GPIOD>;
558					};
559
560					clock@5d {
561						reg = <CK_SCMI_GPIOE>;
562						domain-name = "ck_bus_gpioe";
563						clocks = <&rcc CK_BUS_GPIOE>;
564					};
565
566					clock@5e {
567						reg = <CK_SCMI_GPIOF>;
568						domain-name = "ck_bus_gpiof";
569						clocks = <&rcc CK_BUS_GPIOF>;
570					};
571
572					clock@5f {
573						reg = <CK_SCMI_GPIOG>;
574						domain-name = "ck_bus_gpiog";
575						clocks = <&rcc CK_BUS_GPIOG>;
576					};
577
578					clock@60 {
579						reg = <CK_SCMI_GPIOH>;
580						domain-name = "ck_bus_gpioh";
581						clocks = <&rcc CK_BUS_GPIOH>;
582					};
583
584					clock@61 {
585						reg = <CK_SCMI_GPIOI>;
586						domain-name = "ck_bus_gpioi";
587						clocks = <&rcc CK_BUS_GPIOI>;
588					};
589
590					clock@62 {
591						reg = <CK_SCMI_GPIOJ>;
592						domain-name = "ck_bus_gpioj";
593						clocks = <&rcc CK_BUS_GPIOJ>;
594					};
595
596					clock@63 {
597						reg = <CK_SCMI_GPIOK>;
598						domain-name = "ck_bus_gpiok";
599						clocks = <&rcc CK_BUS_GPIOK>;
600					};
601
602					clock@64 {
603						reg = <CK_SCMI_GPIOZ>;
604						domain-name = "ck_bus_gpioz";
605						clocks = <&rcc CK_BUS_GPIOZ>;
606					};
607
608					clock@65 {
609						reg = <CK_SCMI_HPDMA1>;
610						domain-name = "ck_bus_hpdma1";
611						clocks = <&rcc CK_BUS_HPDMA1>;
612					};
613
614					clock@66 {
615						reg = <CK_SCMI_HPDMA2>;
616						domain-name = "ck_bus_hpdma2";
617						clocks = <&rcc CK_BUS_HPDMA2>;
618					};
619
620					clock@67 {
621						reg = <CK_SCMI_HPDMA3>;
622						domain-name = "ck_bus_hpdma3";
623						clocks = <&rcc CK_BUS_HPDMA3>;
624					};
625
626					clock@69 {
627						reg = <CK_SCMI_IPCC1>;
628						domain-name = "ck_bus_ipcc1";
629						clocks = <&rcc CK_BUS_IPCC1>;
630					};
631
632					clock@6a {
633						reg = <CK_SCMI_IPCC2>;
634						domain-name = "ck_bus_ipcc2";
635						clocks = <&rcc CK_BUS_IPCC2>;
636					};
637
638					clock@74 {
639						reg = <CK_SCMI_OSPI1>;
640						domain-name = "ck_ker_ospi1";
641						clocks = <&rcc CK_KER_OSPI1>;
642					};
643
644					clock@75 {
645						reg = <CK_SCMI_OSPI2>;
646						domain-name = "ck_ker_ospi2";
647						clocks = <&rcc CK_KER_OSPI2>;
648					};
649
650					clock@76 {
651						reg = <CK_SCMI_TPIU>;
652						domain-name = "ck_ker_tpiu";
653						clocks = <&rcc CK_KER_TPIU>;
654					};
655
656					clock@77 {
657						reg = <CK_SCMI_SYSDBG>;
658						domain-name = "ck_sys_dbg";
659						clocks = <&rcc CK_SYSDBG>;
660					};
661
662					clock@78 {
663						reg = <CK_SCMI_SYSATB>;
664						domain-name = "ck_sys_atb";
665						clocks = <&rcc CK_BUS_SYSATB>;
666					};
667
668					clock@7a {
669						reg = <CK_SCMI_BUS_STM>;
670						domain-name = "ck_icn_p_stm";
671						clocks = <&rcc CK_BUS_STM>;
672					};
673
674					clock@7b {
675						reg = <CK_SCMI_KER_STM>;
676						domain-name = "ck_icn_s_stm";
677						clocks = <&rcc CK_KER_STM>;
678					};
679
680					clock@7c {
681						reg = <CK_SCMI_KER_ETR>;
682						domain-name = "ck_icn_m_etr";
683						clocks = <&rcc CK_KER_ETR>;
684					};
685				};
686			};
687
688			scmi_reset: protocol@16 {
689				reg = <0x16>;
690
691				resets {
692					#address-cells = <1>;
693					#size-cells = <0>;
694
695					reset@4 {
696						reg = <RST_SCMI_FMC>;
697						domain-name = "fmc";
698						resets = <&rcc FMC_R>;
699					};
700
701					reset@5 {
702						reg = <RST_SCMI_OSPI1>;
703						domain-name = "ospi1";
704						resets = <&rcc OSPI1_R>;
705					};
706
707					reset@6 {
708						reg = <RST_SCMI_OSPI1DLL>;
709						domain-name = "ospi1_ddl";
710						resets = <&rcc OSPI1DLL_R>;
711					};
712
713					reset@7 {
714						reg = <RST_SCMI_OSPI2>;
715						domain-name = "ospi2";
716						resets = <&rcc OSPI2_R>;
717					};
718
719					reset@8 {
720						reg = <RST_SCMI_OSPI2DLL>;
721						domain-name = "ospi2_ddl";
722						resets = <&rcc OSPI2DLL_R>;
723					};
724				};
725			};
726		};
727	};
728};
729