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