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 binding 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 156 glink-edge: 157 $ref: /schemas/remoteproc/qcom,glink-edge.yaml# 158 description: 159 Qualcomm G-Link subnode which represents communication edge, channels 160 and devices related to the ADSP. 161 162required: 163 - compatible 164 - clocks 165 - clock-names 166 - interrupts 167 - interrupt-names 168 - memory-region 169 - qcom,smem-states 170 - qcom,smem-state-names 171 172additionalProperties: false 173 174allOf: 175 - if: 176 properties: 177 compatible: 178 contains: 179 enum: 180 - qcom,msm8226-adsp-pil 181 - qcom,msm8974-adsp-pil 182 - qcom,msm8996-adsp-pil 183 - qcom,msm8996-slpi-pil 184 - qcom,msm8998-adsp-pas 185 - qcom,qcs404-adsp-pas 186 - qcom,qcs404-wcss-pas 187 - qcom,sc7280-mpss-pas 188 - qcom,sc8180x-adsp-pas 189 - qcom,sc8180x-cdsp-pas 190 - qcom,sc8180x-mpss-pas 191 - qcom,sc8280xp-adsp-pas 192 - qcom,sc8280xp-nsp0-pas 193 - qcom,sc8280xp-nsp1-pas 194 - qcom,sdm845-adsp-pas 195 - qcom,sdm845-cdsp-pas 196 - qcom,sm6350-adsp-pas 197 - qcom,sm6350-cdsp-pas 198 - qcom,sm6350-mpss-pas 199 - qcom,sm8150-adsp-pas 200 - qcom,sm8150-cdsp-pas 201 - qcom,sm8150-mpss-pas 202 - qcom,sm8150-slpi-pas 203 - qcom,sm8250-adsp-pas 204 - qcom,sm8250-cdsp-pas 205 - qcom,sm8250-slpi-pas 206 - qcom,sm8350-adsp-pas 207 - qcom,sm8350-cdsp-pas 208 - qcom,sm8350-slpi-pas 209 - qcom,sm8350-mpss-pas 210 - qcom,sm8450-adsp-pas 211 - qcom,sm8450-cdsp-pas 212 - qcom,sm8450-slpi-pas 213 - qcom,sm8450-mpss-pas 214 then: 215 properties: 216 clocks: 217 items: 218 - description: XO clock 219 clock-names: 220 items: 221 - const: xo 222 223 - if: 224 properties: 225 compatible: 226 contains: 227 enum: 228 - qcom,msm8998-slpi-pas 229 then: 230 properties: 231 clocks: 232 items: 233 - description: XO clock 234 - description: AGGRE2 clock 235 clock-names: 236 items: 237 - const: xo 238 - const: aggre2 239 240 - if: 241 properties: 242 compatible: 243 contains: 244 enum: 245 - qcom,qcs404-cdsp-pas 246 then: 247 properties: 248 clocks: 249 items: 250 - description: XO clock 251 - description: SWAY clock 252 - description: TBU clock 253 - description: BIMC clock 254 - description: AHB AON clock 255 - description: Q6SS SLAVE clock 256 - description: Q6SS MASTER clock 257 - description: Q6 AXIM clock 258 clock-names: 259 items: 260 - const: xo 261 - const: sway 262 - const: tbu 263 - const: bimc 264 - const: ahb_aon 265 - const: q6ss_slave 266 - const: q6ss_master 267 - const: q6_axim 268 269 - if: 270 properties: 271 compatible: 272 contains: 273 enum: 274 - qcom,sc7180-mpss-pas 275 then: 276 properties: 277 clocks: 278 items: 279 - description: XO clock 280 - description: IFACE clock 281 - description: BUS clock 282 - description: NAC clock 283 - description: SNOC AXI clock 284 - description: MNOC AXI clock 285 clock-names: 286 items: 287 - const: xo 288 - const: iface 289 - const: bus 290 - const: nav 291 - const: snoc_axi 292 - const: mnoc_axi 293 294 - if: 295 properties: 296 compatible: 297 contains: 298 enum: 299 - qcom,msm8226-adsp-pil 300 - qcom,msm8974-adsp-pil 301 - qcom,msm8996-adsp-pil 302 - qcom,msm8996-slpi-pil 303 - qcom,msm8998-adsp-pas 304 - qcom,msm8998-slpi-pas 305 - qcom,qcs404-adsp-pas 306 - qcom,qcs404-cdsp-pas 307 - qcom,qcs404-wcss-pas 308 - qcom,sc8180x-adsp-pas 309 - qcom,sc8180x-cdsp-pas 310 - qcom,sc8280xp-adsp-pas 311 - qcom,sc8280xp-nsp0-pas 312 - qcom,sc8280xp-nsp1-pas 313 - qcom,sdm845-adsp-pas 314 - qcom,sdm845-cdsp-pas 315 - qcom,sm6350-adsp-pas 316 - qcom,sm6350-cdsp-pas 317 - qcom,sm8150-adsp-pas 318 - qcom,sm8150-cdsp-pas 319 - qcom,sm8150-slpi-pas 320 - qcom,sm8250-adsp-pas 321 - qcom,sm8250-cdsp-pas 322 - qcom,sm8250-slpi-pas 323 - qcom,sm8350-adsp-pas 324 - qcom,sm8350-cdsp-pas 325 - qcom,sm8350-slpi-pas 326 - qcom,sm8450-adsp-pas 327 - qcom,sm8450-cdsp-pas 328 - qcom,sm8450-slpi-pas 329 then: 330 properties: 331 interrupts: 332 maxItems: 5 333 interrupt-names: 334 maxItems: 5 335 336 - if: 337 properties: 338 compatible: 339 contains: 340 enum: 341 - qcom,sc7180-mpss-pas 342 - qcom,sc7280-mpss-pas 343 - qcom,sc8180x-mpss-pas 344 - qcom,sdx55-mpss-pas 345 - qcom,sm6350-mpss-pas 346 - qcom,sm8150-mpss-pas 347 - qcom,sm8350-mpss-pas 348 - qcom,sm8450-mpss-pas 349 then: 350 properties: 351 interrupts: 352 minItems: 6 353 interrupt-names: 354 minItems: 6 355 356 - if: 357 properties: 358 compatible: 359 contains: 360 enum: 361 - qcom,msm8974-adsp-pil 362 then: 363 required: 364 - cx-supply 365 366 - if: 367 properties: 368 compatible: 369 contains: 370 enum: 371 - qcom,msm8226-adsp-pil 372 - qcom,msm8996-adsp-pil 373 - qcom,msm8998-adsp-pas 374 - qcom,sm8150-adsp-pas 375 - qcom,sm8150-cdsp-pas 376 then: 377 properties: 378 power-domains: 379 items: 380 - description: CX power domain 381 power-domain-names: 382 items: 383 - const: cx 384 385 - if: 386 properties: 387 compatible: 388 contains: 389 enum: 390 - qcom,msm8996-slpi-pil 391 - qcom,msm8998-slpi-pas 392 then: 393 properties: 394 power-domains: 395 items: 396 - description: SSC-CX power domain 397 power-domain-names: 398 items: 399 - const: ssc_cx 400 required: 401 - px-supply 402 403 - if: 404 properties: 405 compatible: 406 contains: 407 enum: 408 - qcom,sc7180-mpss-pas 409 then: 410 properties: 411 power-domains: 412 items: 413 - description: CX power domain 414 - description: MX power domain 415 - description: MSS power domain 416 power-domain-names: 417 items: 418 - const: cx 419 - const: mx 420 - const: mss 421 422 - if: 423 properties: 424 compatible: 425 contains: 426 enum: 427 - qcom,sm6350-cdsp-pas 428 then: 429 properties: 430 power-domains: 431 items: 432 - description: CX power domain 433 - description: MX power domain 434 power-domain-names: 435 items: 436 - const: cx 437 - const: mx 438 439 - if: 440 properties: 441 compatible: 442 contains: 443 enum: 444 - qcom,sc7280-mpss-pas 445 - qcom,sdx55-mpss-pas 446 - qcom,sm6350-mpss-pas 447 - qcom,sm8150-mpss-pas 448 - qcom,sm8350-mpss-pas 449 - qcom,sm8450-mpss-pas 450 then: 451 properties: 452 power-domains: 453 items: 454 - description: CX power domain 455 - description: MSS power domain 456 power-domain-names: 457 items: 458 - const: cx 459 - const: mss 460 461 - if: 462 properties: 463 compatible: 464 contains: 465 enum: 466 - qcom,sc8180x-adsp-pas 467 - qcom,sc8180x-cdsp-pas 468 - qcom,sc8280xp-adsp-pas 469 - qcom,sm6350-adsp-pas 470 - qcom,sm8150-slpi-pas 471 - qcom,sm8250-adsp-pas 472 - qcom,sm8250-slpi-pas 473 - qcom,sm8350-adsp-pas 474 - qcom,sm8350-slpi-pas 475 - qcom,sm8450-adsp-pas 476 - qcom,sm8450-slpi-pas 477 then: 478 properties: 479 power-domains: 480 items: 481 - description: LCX power domain 482 - description: LMX power domain 483 power-domain-names: 484 items: 485 - const: lcx 486 - const: lmx 487 488 - if: 489 properties: 490 compatible: 491 contains: 492 enum: 493 - qcom,sm8350-cdsp-pas 494 - qcom,sm8450-cdsp-pas 495 then: 496 properties: 497 power-domains: 498 items: 499 - description: CX power domain 500 - description: MXC power domain 501 power-domain-names: 502 items: 503 - const: cx 504 - const: mxc 505 506 - if: 507 properties: 508 compatible: 509 contains: 510 enum: 511 - qcom,sc8280xp-nsp0-pas 512 - qcom,sc8280xp-nsp1-pas 513 then: 514 properties: 515 power-domains: 516 items: 517 - description: NSP power domain 518 power-domain-names: 519 items: 520 - const: nsp 521 522 - if: 523 properties: 524 compatible: 525 contains: 526 enum: 527 - qcom,qcs404-cdsp-pas 528 then: 529 properties: 530 resets: 531 items: 532 - description: CDSP restart 533 reset-names: 534 items: 535 - const: restart 536 537 - if: 538 properties: 539 compatible: 540 contains: 541 enum: 542 - qcom,sc7180-mpss-pas 543 - qcom,sc7280-mpss-pas 544 then: 545 properties: 546 resets: 547 items: 548 - description: MSS restart 549 - description: PDC reset 550 reset-names: 551 items: 552 - const: mss_restart 553 - const: pdc_reset 554 555 - if: 556 properties: 557 compatible: 558 contains: 559 enum: 560 - qcom,msm8226-adsp-pil 561 - qcom,msm8974-adsp-pil 562 - qcom,msm8996-adsp-pil 563 - qcom,msm8996-slpi-pil 564 - qcom,msm8998-adsp-pas 565 - qcom,msm8998-slpi-pas 566 - qcom,qcs404-adsp-pas 567 - qcom,qcs404-cdsp-pas 568 - qcom,qcs404-wcss-pas 569 - qcom,sdm660-adsp-pas 570 - qcom,sdx55-mpss-pas 571 then: 572 properties: 573 qcom,qmp: false 574 575examples: 576 - | 577 #include <dt-bindings/clock/qcom,rpmcc.h> 578 #include <dt-bindings/interrupt-controller/arm-gic.h> 579 #include <dt-bindings/interrupt-controller/irq.h> 580 adsp { 581 compatible = "qcom,msm8974-adsp-pil"; 582 583 interrupts-extended = <&intc GIC_SPI 162 IRQ_TYPE_EDGE_RISING>, 584 <&adsp_smp2p_in 0 IRQ_TYPE_EDGE_RISING>, 585 <&adsp_smp2p_in 1 IRQ_TYPE_EDGE_RISING>, 586 <&adsp_smp2p_in 2 IRQ_TYPE_EDGE_RISING>, 587 <&adsp_smp2p_in 3 IRQ_TYPE_EDGE_RISING>; 588 interrupt-names = "wdog", 589 "fatal", 590 "ready", 591 "handover", 592 "stop-ack"; 593 594 clocks = <&rpmcc RPM_CXO_CLK>; 595 clock-names = "xo"; 596 597 cx-supply = <&pm8841_s2>; 598 599 memory-region = <&adsp_region>; 600 601 qcom,smem-states = <&adsp_smp2p_out 0>; 602 qcom,smem-state-names = "stop"; 603 604 smd-edge { 605 interrupts = <GIC_SPI 156 IRQ_TYPE_EDGE_RISING>; 606 607 qcom,ipc = <&apcs 8 8>; 608 qcom,smd-edge = <1>; 609 }; 610 }; 611