0001 # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
0002 %YAML 1.2
0003 ---
0004 $id: http://devicetree.org/schemas/remoteproc/qcom,adsp.yaml#
0005 $schema: http://devicetree.org/meta-schemas/core.yaml#
0006
0007 title: Qualcomm ADSP Peripheral Image Loader binding
0008
0009 maintainers:
0010 - Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
0011
0012 description:
0013 This document defines the binding for a component that loads and boots
0014 firmware on the Qualcomm ADSP Hexagon core.
0015
0016 properties:
0017 compatible:
0018 enum:
0019 - qcom,msm8226-adsp-pil
0020 - qcom,msm8974-adsp-pil
0021 - qcom,msm8996-adsp-pil
0022 - qcom,msm8996-slpi-pil
0023 - qcom,msm8998-adsp-pas
0024 - qcom,msm8998-slpi-pas
0025 - qcom,qcs404-adsp-pas
0026 - qcom,qcs404-cdsp-pas
0027 - qcom,qcs404-wcss-pas
0028 - qcom,sc7180-mpss-pas
0029 - qcom,sc7280-mpss-pas
0030 - qcom,sc8180x-adsp-pas
0031 - qcom,sc8180x-cdsp-pas
0032 - qcom,sc8180x-mpss-pas
0033 - qcom,sc8280xp-adsp-pas
0034 - qcom,sc8280xp-nsp0-pas
0035 - qcom,sc8280xp-nsp1-pas
0036 - qcom,sdm660-adsp-pas
0037 - qcom,sdm845-adsp-pas
0038 - qcom,sdm845-cdsp-pas
0039 - qcom,sdx55-mpss-pas
0040 - qcom,sm6350-adsp-pas
0041 - qcom,sm6350-cdsp-pas
0042 - qcom,sm6350-mpss-pas
0043 - qcom,sm8150-adsp-pas
0044 - qcom,sm8150-cdsp-pas
0045 - qcom,sm8150-mpss-pas
0046 - qcom,sm8150-slpi-pas
0047 - qcom,sm8250-adsp-pas
0048 - qcom,sm8250-cdsp-pas
0049 - qcom,sm8250-slpi-pas
0050 - qcom,sm8350-adsp-pas
0051 - qcom,sm8350-cdsp-pas
0052 - qcom,sm8350-slpi-pas
0053 - qcom,sm8350-mpss-pas
0054 - qcom,sm8450-adsp-pas
0055 - qcom,sm8450-cdsp-pas
0056 - qcom,sm8450-mpss-pas
0057 - qcom,sm8450-slpi-pas
0058
0059 reg:
0060 maxItems: 1
0061
0062 clocks:
0063 minItems: 1
0064 maxItems: 8
0065
0066 clock-names:
0067 minItems: 1
0068 maxItems: 8
0069
0070 interconnects:
0071 maxItems: 1
0072
0073 interrupts:
0074 minItems: 5
0075 items:
0076 - description: Watchdog interrupt
0077 - description: Fatal interrupt
0078 - description: Ready interrupt
0079 - description: Handover interrupt
0080 - description: Stop acknowledge interrupt
0081 - description: Shutdown acknowledge interrupt
0082
0083 interrupt-names:
0084 minItems: 5
0085 items:
0086 - const: wdog
0087 - const: fatal
0088 - const: ready
0089 - const: handover
0090 - const: stop-ack
0091 - const: shutdown-ack
0092
0093 resets:
0094 minItems: 1
0095 maxItems: 3
0096
0097 reset-names:
0098 minItems: 1
0099 maxItems: 3
0100
0101 cx-supply:
0102 description: Phandle to the CX regulator
0103
0104 px-supply:
0105 description: Phandle to the PX regulator
0106
0107 power-domains:
0108 minItems: 1
0109 maxItems: 3
0110
0111 power-domain-names:
0112 minItems: 1
0113 maxItems: 3
0114
0115 firmware-name:
0116 $ref: /schemas/types.yaml#/definitions/string
0117 description: Firmware name for the Hexagon core
0118
0119 memory-region:
0120 maxItems: 1
0121 description: Reference to the reserved-memory for the Hexagon core
0122
0123 qcom,qmp:
0124 $ref: /schemas/types.yaml#/definitions/phandle
0125 description: Reference to the AOSS side-channel message RAM.
0126
0127 qcom,smem-states:
0128 $ref: /schemas/types.yaml#/definitions/phandle-array
0129 description: States used by the AP to signal the Hexagon core
0130 items:
0131 - description: Stop the modem
0132
0133 qcom,smem-state-names:
0134 description: The names of the state bits used for SMP2P output
0135 items:
0136 - const: stop
0137
0138 qcom,halt-regs:
0139 $ref: /schemas/types.yaml#/definitions/phandle-array
0140 items:
0141 - items:
0142 - description: Phandle reference to a syscon representing TCSR
0143 - description: offsets within syscon for q6 halt registers
0144 - description: offsets within syscon for modem halt registers
0145 - description: offsets within syscon for nc halt registers
0146 description:
0147 Phandle reference to a syscon representing TCSR followed by the
0148 three offsets within syscon for q6, modem and nc halt registers.
0149
0150 smd-edge:
0151 $ref: /schemas/remoteproc/qcom,smd-edge.yaml#
0152 description:
0153 Qualcomm Shared Memory subnode which represents communication edge,
0154 channels and devices related to the ADSP.
0155
0156 glink-edge:
0157 $ref: /schemas/remoteproc/qcom,glink-edge.yaml#
0158 description:
0159 Qualcomm G-Link subnode which represents communication edge, channels
0160 and devices related to the ADSP.
0161
0162 required:
0163 - compatible
0164 - clocks
0165 - clock-names
0166 - interrupts
0167 - interrupt-names
0168 - memory-region
0169 - qcom,smem-states
0170 - qcom,smem-state-names
0171
0172 additionalProperties: false
0173
0174 allOf:
0175 - if:
0176 properties:
0177 compatible:
0178 contains:
0179 enum:
0180 - qcom,msm8226-adsp-pil
0181 - qcom,msm8974-adsp-pil
0182 - qcom,msm8996-adsp-pil
0183 - qcom,msm8996-slpi-pil
0184 - qcom,msm8998-adsp-pas
0185 - qcom,qcs404-adsp-pas
0186 - qcom,qcs404-wcss-pas
0187 - qcom,sc7280-mpss-pas
0188 - qcom,sc8180x-adsp-pas
0189 - qcom,sc8180x-cdsp-pas
0190 - qcom,sc8180x-mpss-pas
0191 - qcom,sc8280xp-adsp-pas
0192 - qcom,sc8280xp-nsp0-pas
0193 - qcom,sc8280xp-nsp1-pas
0194 - qcom,sdm845-adsp-pas
0195 - qcom,sdm845-cdsp-pas
0196 - qcom,sm6350-adsp-pas
0197 - qcom,sm6350-cdsp-pas
0198 - qcom,sm6350-mpss-pas
0199 - qcom,sm8150-adsp-pas
0200 - qcom,sm8150-cdsp-pas
0201 - qcom,sm8150-mpss-pas
0202 - qcom,sm8150-slpi-pas
0203 - qcom,sm8250-adsp-pas
0204 - qcom,sm8250-cdsp-pas
0205 - qcom,sm8250-slpi-pas
0206 - qcom,sm8350-adsp-pas
0207 - qcom,sm8350-cdsp-pas
0208 - qcom,sm8350-slpi-pas
0209 - qcom,sm8350-mpss-pas
0210 - qcom,sm8450-adsp-pas
0211 - qcom,sm8450-cdsp-pas
0212 - qcom,sm8450-slpi-pas
0213 - qcom,sm8450-mpss-pas
0214 then:
0215 properties:
0216 clocks:
0217 items:
0218 - description: XO clock
0219 clock-names:
0220 items:
0221 - const: xo
0222
0223 - if:
0224 properties:
0225 compatible:
0226 contains:
0227 enum:
0228 - qcom,msm8998-slpi-pas
0229 then:
0230 properties:
0231 clocks:
0232 items:
0233 - description: XO clock
0234 - description: AGGRE2 clock
0235 clock-names:
0236 items:
0237 - const: xo
0238 - const: aggre2
0239
0240 - if:
0241 properties:
0242 compatible:
0243 contains:
0244 enum:
0245 - qcom,qcs404-cdsp-pas
0246 then:
0247 properties:
0248 clocks:
0249 items:
0250 - description: XO clock
0251 - description: SWAY clock
0252 - description: TBU clock
0253 - description: BIMC clock
0254 - description: AHB AON clock
0255 - description: Q6SS SLAVE clock
0256 - description: Q6SS MASTER clock
0257 - description: Q6 AXIM clock
0258 clock-names:
0259 items:
0260 - const: xo
0261 - const: sway
0262 - const: tbu
0263 - const: bimc
0264 - const: ahb_aon
0265 - const: q6ss_slave
0266 - const: q6ss_master
0267 - const: q6_axim
0268
0269 - if:
0270 properties:
0271 compatible:
0272 contains:
0273 enum:
0274 - qcom,sc7180-mpss-pas
0275 then:
0276 properties:
0277 clocks:
0278 items:
0279 - description: XO clock
0280 - description: IFACE clock
0281 - description: BUS clock
0282 - description: NAC clock
0283 - description: SNOC AXI clock
0284 - description: MNOC AXI clock
0285 clock-names:
0286 items:
0287 - const: xo
0288 - const: iface
0289 - const: bus
0290 - const: nav
0291 - const: snoc_axi
0292 - const: mnoc_axi
0293
0294 - if:
0295 properties:
0296 compatible:
0297 contains:
0298 enum:
0299 - qcom,msm8226-adsp-pil
0300 - qcom,msm8974-adsp-pil
0301 - qcom,msm8996-adsp-pil
0302 - qcom,msm8996-slpi-pil
0303 - qcom,msm8998-adsp-pas
0304 - qcom,msm8998-slpi-pas
0305 - qcom,qcs404-adsp-pas
0306 - qcom,qcs404-cdsp-pas
0307 - qcom,qcs404-wcss-pas
0308 - qcom,sc8180x-adsp-pas
0309 - qcom,sc8180x-cdsp-pas
0310 - qcom,sc8280xp-adsp-pas
0311 - qcom,sc8280xp-nsp0-pas
0312 - qcom,sc8280xp-nsp1-pas
0313 - qcom,sdm845-adsp-pas
0314 - qcom,sdm845-cdsp-pas
0315 - qcom,sm6350-adsp-pas
0316 - qcom,sm6350-cdsp-pas
0317 - qcom,sm8150-adsp-pas
0318 - qcom,sm8150-cdsp-pas
0319 - qcom,sm8150-slpi-pas
0320 - qcom,sm8250-adsp-pas
0321 - qcom,sm8250-cdsp-pas
0322 - qcom,sm8250-slpi-pas
0323 - qcom,sm8350-adsp-pas
0324 - qcom,sm8350-cdsp-pas
0325 - qcom,sm8350-slpi-pas
0326 - qcom,sm8450-adsp-pas
0327 - qcom,sm8450-cdsp-pas
0328 - qcom,sm8450-slpi-pas
0329 then:
0330 properties:
0331 interrupts:
0332 maxItems: 5
0333 interrupt-names:
0334 maxItems: 5
0335
0336 - if:
0337 properties:
0338 compatible:
0339 contains:
0340 enum:
0341 - qcom,sc7180-mpss-pas
0342 - qcom,sc7280-mpss-pas
0343 - qcom,sc8180x-mpss-pas
0344 - qcom,sdx55-mpss-pas
0345 - qcom,sm6350-mpss-pas
0346 - qcom,sm8150-mpss-pas
0347 - qcom,sm8350-mpss-pas
0348 - qcom,sm8450-mpss-pas
0349 then:
0350 properties:
0351 interrupts:
0352 minItems: 6
0353 interrupt-names:
0354 minItems: 6
0355
0356 - if:
0357 properties:
0358 compatible:
0359 contains:
0360 enum:
0361 - qcom,msm8974-adsp-pil
0362 then:
0363 required:
0364 - cx-supply
0365
0366 - if:
0367 properties:
0368 compatible:
0369 contains:
0370 enum:
0371 - qcom,msm8226-adsp-pil
0372 - qcom,msm8996-adsp-pil
0373 - qcom,msm8998-adsp-pas
0374 - qcom,sm8150-adsp-pas
0375 - qcom,sm8150-cdsp-pas
0376 then:
0377 properties:
0378 power-domains:
0379 items:
0380 - description: CX power domain
0381 power-domain-names:
0382 items:
0383 - const: cx
0384
0385 - if:
0386 properties:
0387 compatible:
0388 contains:
0389 enum:
0390 - qcom,msm8996-slpi-pil
0391 - qcom,msm8998-slpi-pas
0392 then:
0393 properties:
0394 power-domains:
0395 items:
0396 - description: SSC-CX power domain
0397 power-domain-names:
0398 items:
0399 - const: ssc_cx
0400 required:
0401 - px-supply
0402
0403 - if:
0404 properties:
0405 compatible:
0406 contains:
0407 enum:
0408 - qcom,sc7180-mpss-pas
0409 then:
0410 properties:
0411 power-domains:
0412 items:
0413 - description: CX power domain
0414 - description: MX power domain
0415 - description: MSS power domain
0416 power-domain-names:
0417 items:
0418 - const: cx
0419 - const: mx
0420 - const: mss
0421
0422 - if:
0423 properties:
0424 compatible:
0425 contains:
0426 enum:
0427 - qcom,sm6350-cdsp-pas
0428 then:
0429 properties:
0430 power-domains:
0431 items:
0432 - description: CX power domain
0433 - description: MX power domain
0434 power-domain-names:
0435 items:
0436 - const: cx
0437 - const: mx
0438
0439 - if:
0440 properties:
0441 compatible:
0442 contains:
0443 enum:
0444 - qcom,sc7280-mpss-pas
0445 - qcom,sdx55-mpss-pas
0446 - qcom,sm6350-mpss-pas
0447 - qcom,sm8150-mpss-pas
0448 - qcom,sm8350-mpss-pas
0449 - qcom,sm8450-mpss-pas
0450 then:
0451 properties:
0452 power-domains:
0453 items:
0454 - description: CX power domain
0455 - description: MSS power domain
0456 power-domain-names:
0457 items:
0458 - const: cx
0459 - const: mss
0460
0461 - if:
0462 properties:
0463 compatible:
0464 contains:
0465 enum:
0466 - qcom,sc8180x-adsp-pas
0467 - qcom,sc8180x-cdsp-pas
0468 - qcom,sc8280xp-adsp-pas
0469 - qcom,sm6350-adsp-pas
0470 - qcom,sm8150-slpi-pas
0471 - qcom,sm8250-adsp-pas
0472 - qcom,sm8250-slpi-pas
0473 - qcom,sm8350-adsp-pas
0474 - qcom,sm8350-slpi-pas
0475 - qcom,sm8450-adsp-pas
0476 - qcom,sm8450-slpi-pas
0477 then:
0478 properties:
0479 power-domains:
0480 items:
0481 - description: LCX power domain
0482 - description: LMX power domain
0483 power-domain-names:
0484 items:
0485 - const: lcx
0486 - const: lmx
0487
0488 - if:
0489 properties:
0490 compatible:
0491 contains:
0492 enum:
0493 - qcom,sm8350-cdsp-pas
0494 - qcom,sm8450-cdsp-pas
0495 then:
0496 properties:
0497 power-domains:
0498 items:
0499 - description: CX power domain
0500 - description: MXC power domain
0501 power-domain-names:
0502 items:
0503 - const: cx
0504 - const: mxc
0505
0506 - if:
0507 properties:
0508 compatible:
0509 contains:
0510 enum:
0511 - qcom,sc8280xp-nsp0-pas
0512 - qcom,sc8280xp-nsp1-pas
0513 then:
0514 properties:
0515 power-domains:
0516 items:
0517 - description: NSP power domain
0518 power-domain-names:
0519 items:
0520 - const: nsp
0521
0522 - if:
0523 properties:
0524 compatible:
0525 contains:
0526 enum:
0527 - qcom,qcs404-cdsp-pas
0528 then:
0529 properties:
0530 resets:
0531 items:
0532 - description: CDSP restart
0533 reset-names:
0534 items:
0535 - const: restart
0536
0537 - if:
0538 properties:
0539 compatible:
0540 contains:
0541 enum:
0542 - qcom,sc7180-mpss-pas
0543 - qcom,sc7280-mpss-pas
0544 then:
0545 properties:
0546 resets:
0547 items:
0548 - description: MSS restart
0549 - description: PDC reset
0550 reset-names:
0551 items:
0552 - const: mss_restart
0553 - const: pdc_reset
0554
0555 - if:
0556 properties:
0557 compatible:
0558 contains:
0559 enum:
0560 - qcom,msm8226-adsp-pil
0561 - qcom,msm8974-adsp-pil
0562 - qcom,msm8996-adsp-pil
0563 - qcom,msm8996-slpi-pil
0564 - qcom,msm8998-adsp-pas
0565 - qcom,msm8998-slpi-pas
0566 - qcom,qcs404-adsp-pas
0567 - qcom,qcs404-cdsp-pas
0568 - qcom,qcs404-wcss-pas
0569 - qcom,sdm660-adsp-pas
0570 - qcom,sdx55-mpss-pas
0571 then:
0572 properties:
0573 qcom,qmp: false
0574
0575 examples:
0576 - |
0577 #include <dt-bindings/clock/qcom,rpmcc.h>
0578 #include <dt-bindings/interrupt-controller/arm-gic.h>
0579 #include <dt-bindings/interrupt-controller/irq.h>
0580 adsp {
0581 compatible = "qcom,msm8974-adsp-pil";
0582
0583 interrupts-extended = <&intc GIC_SPI 162 IRQ_TYPE_EDGE_RISING>,
0584 <&adsp_smp2p_in 0 IRQ_TYPE_EDGE_RISING>,
0585 <&adsp_smp2p_in 1 IRQ_TYPE_EDGE_RISING>,
0586 <&adsp_smp2p_in 2 IRQ_TYPE_EDGE_RISING>,
0587 <&adsp_smp2p_in 3 IRQ_TYPE_EDGE_RISING>;
0588 interrupt-names = "wdog",
0589 "fatal",
0590 "ready",
0591 "handover",
0592 "stop-ack";
0593
0594 clocks = <&rpmcc RPM_CXO_CLK>;
0595 clock-names = "xo";
0596
0597 cx-supply = <&pm8841_s2>;
0598
0599 memory-region = <&adsp_region>;
0600
0601 qcom,smem-states = <&adsp_smp2p_out 0>;
0602 qcom,smem-state-names = "stop";
0603
0604 smd-edge {
0605 interrupts = <GIC_SPI 156 IRQ_TYPE_EDGE_RISING>;
0606
0607 qcom,ipc = <&apcs 8 8>;
0608 qcom,smd-edge = <1>;
0609 };
0610 };