1# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 2%YAML 1.2 3--- 4$id: http://devicetree.org/schemas/remoteproc/qcom,adsp.yaml# 5$schema: http://devicetree.org/meta-schemas/core.yaml# 6 7title: Qualcomm ADSP Peripheral Image Loader 8 9maintainers: 10 - Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org> 11 12description: 13 This document defines the binding for a component that loads and boots 14 firmware on the Qualcomm ADSP Hexagon core. 15 16properties: 17 compatible: 18 enum: 19 - qcom,msm8226-adsp-pil 20 - qcom,msm8974-adsp-pil 21 - qcom,msm8996-adsp-pil 22 - qcom,msm8996-slpi-pil 23 - qcom,msm8998-adsp-pas 24 - qcom,msm8998-slpi-pas 25 - qcom,qcs404-adsp-pas 26 - qcom,qcs404-cdsp-pas 27 - qcom,qcs404-wcss-pas 28 - qcom,sc7180-mpss-pas 29 - qcom,sc7280-mpss-pas 30 - qcom,sc8180x-adsp-pas 31 - qcom,sc8180x-cdsp-pas 32 - qcom,sc8180x-mpss-pas 33 - qcom,sc8280xp-adsp-pas 34 - qcom,sc8280xp-nsp0-pas 35 - qcom,sc8280xp-nsp1-pas 36 - qcom,sdm660-adsp-pas 37 - qcom,sdm845-adsp-pas 38 - qcom,sdm845-cdsp-pas 39 - qcom,sdx55-mpss-pas 40 - qcom,sm6350-adsp-pas 41 - qcom,sm6350-cdsp-pas 42 - qcom,sm6350-mpss-pas 43 - qcom,sm8150-adsp-pas 44 - qcom,sm8150-cdsp-pas 45 - qcom,sm8150-mpss-pas 46 - qcom,sm8150-slpi-pas 47 - qcom,sm8250-adsp-pas 48 - qcom,sm8250-cdsp-pas 49 - qcom,sm8250-slpi-pas 50 - qcom,sm8350-adsp-pas 51 - qcom,sm8350-cdsp-pas 52 - qcom,sm8350-slpi-pas 53 - qcom,sm8350-mpss-pas 54 - qcom,sm8450-adsp-pas 55 - qcom,sm8450-cdsp-pas 56 - qcom,sm8450-mpss-pas 57 - qcom,sm8450-slpi-pas 58 59 reg: 60 maxItems: 1 61 62 clocks: 63 minItems: 1 64 maxItems: 8 65 66 clock-names: 67 minItems: 1 68 maxItems: 8 69 70 interconnects: 71 maxItems: 1 72 73 interrupts: 74 minItems: 5 75 items: 76 - description: Watchdog interrupt 77 - description: Fatal interrupt 78 - description: Ready interrupt 79 - description: Handover interrupt 80 - description: Stop acknowledge interrupt 81 - description: Shutdown acknowledge interrupt 82 83 interrupt-names: 84 minItems: 5 85 items: 86 - const: wdog 87 - const: fatal 88 - const: ready 89 - const: handover 90 - const: stop-ack 91 - const: shutdown-ack 92 93 resets: 94 minItems: 1 95 maxItems: 3 96 97 reset-names: 98 minItems: 1 99 maxItems: 3 100 101 cx-supply: 102 description: Phandle to the CX regulator 103 104 px-supply: 105 description: Phandle to the PX regulator 106 107 power-domains: 108 minItems: 1 109 maxItems: 3 110 111 power-domain-names: 112 minItems: 1 113 maxItems: 3 114 115 firmware-name: 116 $ref: /schemas/types.yaml#/definitions/string 117 description: Firmware name for the Hexagon core 118 119 memory-region: 120 maxItems: 1 121 description: Reference to the reserved-memory for the Hexagon core 122 123 qcom,qmp: 124 $ref: /schemas/types.yaml#/definitions/phandle 125 description: Reference to the AOSS side-channel message RAM. 126 127 qcom,smem-states: 128 $ref: /schemas/types.yaml#/definitions/phandle-array 129 description: States used by the AP to signal the Hexagon core 130 items: 131 - description: Stop the modem 132 133 qcom,smem-state-names: 134 description: The names of the state bits used for SMP2P output 135 items: 136 - const: stop 137 138 qcom,halt-regs: 139 $ref: /schemas/types.yaml#/definitions/phandle-array 140 items: 141 - items: 142 - description: Phandle reference to a syscon representing TCSR 143 - description: offsets within syscon for q6 halt registers 144 - description: offsets within syscon for modem halt registers 145 - description: offsets within syscon for nc halt registers 146 description: 147 Phandle reference to a syscon representing TCSR followed by the 148 three offsets within syscon for q6, modem and nc halt registers. 149 150 smd-edge: 151 $ref: /schemas/remoteproc/qcom,smd-edge.yaml# 152 description: 153 Qualcomm Shared Memory subnode which represents communication edge, 154 channels and devices related to the ADSP. 155 unevaluatedProperties: false 156 157 glink-edge: 158 $ref: /schemas/remoteproc/qcom,glink-edge.yaml# 159 description: 160 Qualcomm G-Link subnode which represents communication edge, channels 161 and devices related to the ADSP. 162 163required: 164 - compatible 165 - clocks 166 - clock-names 167 - interrupts 168 - interrupt-names 169 - memory-region 170 - qcom,smem-states 171 - qcom,smem-state-names 172 173additionalProperties: false 174 175allOf: 176 - if: 177 properties: 178 compatible: 179 contains: 180 enum: 181 - qcom,msm8226-adsp-pil 182 - qcom,msm8974-adsp-pil 183 - qcom,msm8996-adsp-pil 184 - qcom,msm8996-slpi-pil 185 - qcom,msm8998-adsp-pas 186 - qcom,qcs404-adsp-pas 187 - qcom,qcs404-wcss-pas 188 - qcom,sc7280-mpss-pas 189 - qcom,sc8180x-adsp-pas 190 - qcom,sc8180x-cdsp-pas 191 - qcom,sc8180x-mpss-pas 192 - qcom,sc8280xp-adsp-pas 193 - qcom,sc8280xp-nsp0-pas 194 - qcom,sc8280xp-nsp1-pas 195 - qcom,sdm845-adsp-pas 196 - qcom,sdm845-cdsp-pas 197 - qcom,sm6350-adsp-pas 198 - qcom,sm6350-cdsp-pas 199 - qcom,sm6350-mpss-pas 200 - qcom,sm8150-adsp-pas 201 - qcom,sm8150-cdsp-pas 202 - qcom,sm8150-mpss-pas 203 - qcom,sm8150-slpi-pas 204 - qcom,sm8250-adsp-pas 205 - qcom,sm8250-cdsp-pas 206 - qcom,sm8250-slpi-pas 207 - qcom,sm8350-adsp-pas 208 - qcom,sm8350-cdsp-pas 209 - qcom,sm8350-slpi-pas 210 - qcom,sm8350-mpss-pas 211 - qcom,sm8450-adsp-pas 212 - qcom,sm8450-cdsp-pas 213 - qcom,sm8450-slpi-pas 214 - qcom,sm8450-mpss-pas 215 then: 216 properties: 217 clocks: 218 items: 219 - description: XO clock 220 clock-names: 221 items: 222 - const: xo 223 224 - if: 225 properties: 226 compatible: 227 contains: 228 enum: 229 - qcom,msm8998-slpi-pas 230 then: 231 properties: 232 clocks: 233 items: 234 - description: XO clock 235 - description: AGGRE2 clock 236 clock-names: 237 items: 238 - const: xo 239 - const: aggre2 240 241 - if: 242 properties: 243 compatible: 244 contains: 245 enum: 246 - qcom,qcs404-cdsp-pas 247 then: 248 properties: 249 clocks: 250 items: 251 - description: XO clock 252 - description: SWAY clock 253 - description: TBU clock 254 - description: BIMC clock 255 - description: AHB AON clock 256 - description: Q6SS SLAVE clock 257 - description: Q6SS MASTER clock 258 - description: Q6 AXIM clock 259 clock-names: 260 items: 261 - const: xo 262 - const: sway 263 - const: tbu 264 - const: bimc 265 - const: ahb_aon 266 - const: q6ss_slave 267 - const: q6ss_master 268 - const: q6_axim 269 270 - if: 271 properties: 272 compatible: 273 contains: 274 enum: 275 - qcom,sc7180-mpss-pas 276 then: 277 properties: 278 clocks: 279 items: 280 - description: XO clock 281 - description: IFACE clock 282 - description: BUS clock 283 - description: NAC clock 284 - description: SNOC AXI clock 285 - description: MNOC AXI clock 286 clock-names: 287 items: 288 - const: xo 289 - const: iface 290 - const: bus 291 - const: nav 292 - const: snoc_axi 293 - const: mnoc_axi 294 295 - if: 296 properties: 297 compatible: 298 contains: 299 enum: 300 - qcom,msm8226-adsp-pil 301 - qcom,msm8974-adsp-pil 302 - qcom,msm8996-adsp-pil 303 - qcom,msm8996-slpi-pil 304 - qcom,msm8998-adsp-pas 305 - qcom,msm8998-slpi-pas 306 - qcom,qcs404-adsp-pas 307 - qcom,qcs404-cdsp-pas 308 - qcom,qcs404-wcss-pas 309 - qcom,sc8180x-adsp-pas 310 - qcom,sc8180x-cdsp-pas 311 - qcom,sc8280xp-adsp-pas 312 - qcom,sc8280xp-nsp0-pas 313 - qcom,sc8280xp-nsp1-pas 314 - qcom,sdm845-adsp-pas 315 - qcom,sdm845-cdsp-pas 316 - qcom,sm6350-adsp-pas 317 - qcom,sm6350-cdsp-pas 318 - qcom,sm8150-adsp-pas 319 - qcom,sm8150-cdsp-pas 320 - qcom,sm8150-slpi-pas 321 - qcom,sm8250-adsp-pas 322 - qcom,sm8250-cdsp-pas 323 - qcom,sm8250-slpi-pas 324 - qcom,sm8350-adsp-pas 325 - qcom,sm8350-cdsp-pas 326 - qcom,sm8350-slpi-pas 327 - qcom,sm8450-adsp-pas 328 - qcom,sm8450-cdsp-pas 329 - qcom,sm8450-slpi-pas 330 then: 331 properties: 332 interrupts: 333 maxItems: 5 334 interrupt-names: 335 maxItems: 5 336 337 - if: 338 properties: 339 compatible: 340 contains: 341 enum: 342 - qcom,sc7180-mpss-pas 343 - qcom,sc7280-mpss-pas 344 - qcom,sc8180x-mpss-pas 345 - qcom,sdx55-mpss-pas 346 - qcom,sm6350-mpss-pas 347 - qcom,sm8150-mpss-pas 348 - qcom,sm8350-mpss-pas 349 - qcom,sm8450-mpss-pas 350 then: 351 properties: 352 interrupts: 353 minItems: 6 354 interrupt-names: 355 minItems: 6 356 357 - if: 358 properties: 359 compatible: 360 contains: 361 enum: 362 - qcom,msm8974-adsp-pil 363 then: 364 required: 365 - cx-supply 366 367 - if: 368 properties: 369 compatible: 370 contains: 371 enum: 372 - qcom,msm8226-adsp-pil 373 - qcom,msm8996-adsp-pil 374 - qcom,msm8998-adsp-pas 375 - qcom,sm8150-adsp-pas 376 - qcom,sm8150-cdsp-pas 377 then: 378 properties: 379 power-domains: 380 items: 381 - description: CX power domain 382 power-domain-names: 383 items: 384 - const: cx 385 386 - if: 387 properties: 388 compatible: 389 contains: 390 enum: 391 - qcom,msm8996-slpi-pil 392 - qcom,msm8998-slpi-pas 393 then: 394 properties: 395 power-domains: 396 items: 397 - description: SSC-CX power domain 398 power-domain-names: 399 items: 400 - const: ssc_cx 401 required: 402 - px-supply 403 404 - if: 405 properties: 406 compatible: 407 contains: 408 enum: 409 - qcom,sc7180-mpss-pas 410 then: 411 properties: 412 power-domains: 413 items: 414 - description: CX power domain 415 - description: MX power domain 416 - description: MSS power domain 417 power-domain-names: 418 items: 419 - const: cx 420 - const: mx 421 - const: mss 422 423 - if: 424 properties: 425 compatible: 426 contains: 427 enum: 428 - qcom,sm6350-cdsp-pas 429 then: 430 properties: 431 power-domains: 432 items: 433 - description: CX power domain 434 - description: MX power domain 435 power-domain-names: 436 items: 437 - const: cx 438 - const: mx 439 440 - if: 441 properties: 442 compatible: 443 contains: 444 enum: 445 - qcom,sc7280-mpss-pas 446 - qcom,sdx55-mpss-pas 447 - qcom,sm6350-mpss-pas 448 - qcom,sm8150-mpss-pas 449 - qcom,sm8350-mpss-pas 450 - qcom,sm8450-mpss-pas 451 then: 452 properties: 453 power-domains: 454 items: 455 - description: CX power domain 456 - description: MSS power domain 457 power-domain-names: 458 items: 459 - const: cx 460 - const: mss 461 462 - if: 463 properties: 464 compatible: 465 contains: 466 enum: 467 - qcom,sc8180x-adsp-pas 468 - qcom,sc8180x-cdsp-pas 469 - qcom,sc8280xp-adsp-pas 470 - qcom,sm6350-adsp-pas 471 - qcom,sm8150-slpi-pas 472 - qcom,sm8250-adsp-pas 473 - qcom,sm8250-slpi-pas 474 - qcom,sm8350-adsp-pas 475 - qcom,sm8350-slpi-pas 476 - qcom,sm8450-adsp-pas 477 - qcom,sm8450-slpi-pas 478 then: 479 properties: 480 power-domains: 481 items: 482 - description: LCX power domain 483 - description: LMX power domain 484 power-domain-names: 485 items: 486 - const: lcx 487 - const: lmx 488 489 - if: 490 properties: 491 compatible: 492 contains: 493 enum: 494 - qcom,sm8350-cdsp-pas 495 - qcom,sm8450-cdsp-pas 496 then: 497 properties: 498 power-domains: 499 items: 500 - description: CX power domain 501 - description: MXC power domain 502 power-domain-names: 503 items: 504 - const: cx 505 - const: mxc 506 507 - if: 508 properties: 509 compatible: 510 contains: 511 enum: 512 - qcom,sc8280xp-nsp0-pas 513 - qcom,sc8280xp-nsp1-pas 514 then: 515 properties: 516 power-domains: 517 items: 518 - description: NSP power domain 519 power-domain-names: 520 items: 521 - const: nsp 522 523 - if: 524 properties: 525 compatible: 526 contains: 527 enum: 528 - qcom,qcs404-cdsp-pas 529 then: 530 properties: 531 resets: 532 items: 533 - description: CDSP restart 534 reset-names: 535 items: 536 - const: restart 537 538 - if: 539 properties: 540 compatible: 541 contains: 542 enum: 543 - qcom,sc7180-mpss-pas 544 - qcom,sc7280-mpss-pas 545 then: 546 properties: 547 resets: 548 items: 549 - description: MSS restart 550 - description: PDC reset 551 reset-names: 552 items: 553 - const: mss_restart 554 - const: pdc_reset 555 556 - if: 557 properties: 558 compatible: 559 contains: 560 enum: 561 - qcom,msm8226-adsp-pil 562 - qcom,msm8974-adsp-pil 563 - qcom,msm8996-adsp-pil 564 - qcom,msm8996-slpi-pil 565 - qcom,msm8998-adsp-pas 566 - qcom,msm8998-slpi-pas 567 - qcom,qcs404-adsp-pas 568 - qcom,qcs404-cdsp-pas 569 - qcom,qcs404-wcss-pas 570 - qcom,sdm660-adsp-pas 571 - qcom,sdx55-mpss-pas 572 then: 573 properties: 574 qcom,qmp: false 575 576examples: 577 - | 578 #include <dt-bindings/clock/qcom,rpmcc.h> 579 #include <dt-bindings/interrupt-controller/arm-gic.h> 580 #include <dt-bindings/interrupt-controller/irq.h> 581 adsp { 582 compatible = "qcom,msm8974-adsp-pil"; 583 584 interrupts-extended = <&intc GIC_SPI 162 IRQ_TYPE_EDGE_RISING>, 585 <&adsp_smp2p_in 0 IRQ_TYPE_EDGE_RISING>, 586 <&adsp_smp2p_in 1 IRQ_TYPE_EDGE_RISING>, 587 <&adsp_smp2p_in 2 IRQ_TYPE_EDGE_RISING>, 588 <&adsp_smp2p_in 3 IRQ_TYPE_EDGE_RISING>; 589 interrupt-names = "wdog", 590 "fatal", 591 "ready", 592 "handover", 593 "stop-ack"; 594 595 clocks = <&rpmcc RPM_CXO_CLK>; 596 clock-names = "xo"; 597 598 cx-supply = <&pm8841_s2>; 599 600 memory-region = <&adsp_region>; 601 602 qcom,smem-states = <&adsp_smp2p_out 0>; 603 qcom,smem-state-names = "stop"; 604 605 smd-edge { 606 interrupts = <GIC_SPI 156 IRQ_TYPE_EDGE_RISING>; 607 608 qcom,ipc = <&apcs 8 8>; 609 qcom,smd-edge = <1>; 610 }; 611 }; 612