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