Back to home page

OSCL-LXR

 
 

    


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     };