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