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