xref: /freebsd/sys/contrib/device-tree/Bindings/remoteproc/qcom,adsp.yaml (revision 84943d6f38e936ac3b7a3947ca26eeb27a39f938)
15956d97fSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
25956d97fSEmmanuel Vadot%YAML 1.2
35956d97fSEmmanuel Vadot---
45956d97fSEmmanuel Vadot$id: http://devicetree.org/schemas/remoteproc/qcom,adsp.yaml#
55956d97fSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
65956d97fSEmmanuel Vadot
78bab661aSEmmanuel Vadottitle: Qualcomm ADSP Peripheral Image Loader
85956d97fSEmmanuel Vadot
95956d97fSEmmanuel Vadotmaintainers:
105956d97fSEmmanuel Vadot  - Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
115956d97fSEmmanuel Vadot
125956d97fSEmmanuel Vadotdescription:
135956d97fSEmmanuel Vadot  This document defines the binding for a component that loads and boots
145956d97fSEmmanuel Vadot  firmware on the Qualcomm ADSP Hexagon core.
155956d97fSEmmanuel Vadot
165956d97fSEmmanuel Vadotproperties:
175956d97fSEmmanuel Vadot  compatible:
185956d97fSEmmanuel Vadot    enum:
19d5b0e70fSEmmanuel Vadot      - qcom,msm8226-adsp-pil
20cb7aa33aSEmmanuel Vadot      - qcom,msm8953-adsp-pil
215956d97fSEmmanuel Vadot      - qcom,msm8974-adsp-pil
225956d97fSEmmanuel Vadot      - qcom,msm8996-adsp-pil
235956d97fSEmmanuel Vadot      - qcom,msm8996-slpi-pil
245956d97fSEmmanuel Vadot      - qcom,msm8998-adsp-pas
255956d97fSEmmanuel Vadot      - qcom,msm8998-slpi-pas
26354d7675SEmmanuel Vadot      - qcom,sdm660-adsp-pas
275956d97fSEmmanuel Vadot      - qcom,sdm845-adsp-pas
285956d97fSEmmanuel Vadot      - qcom,sdm845-cdsp-pas
29aa1a8ff2SEmmanuel Vadot      - qcom,sdm845-slpi-pas
305956d97fSEmmanuel Vadot
315956d97fSEmmanuel Vadot  reg:
325956d97fSEmmanuel Vadot    maxItems: 1
335956d97fSEmmanuel Vadot
345956d97fSEmmanuel Vadot  cx-supply:
355956d97fSEmmanuel Vadot    description: Phandle to the CX regulator
365956d97fSEmmanuel Vadot
375956d97fSEmmanuel Vadot  px-supply:
385956d97fSEmmanuel Vadot    description: Phandle to the PX regulator
395956d97fSEmmanuel Vadot
40cb7aa33aSEmmanuel Vadot  qcom,qmp:
41cb7aa33aSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/phandle
42cb7aa33aSEmmanuel Vadot    description: Reference to the AOSS side-channel message RAM.
435956d97fSEmmanuel Vadot
445956d97fSEmmanuel Vadot  memory-region:
455956d97fSEmmanuel Vadot    maxItems: 1
465956d97fSEmmanuel Vadot    description: Reference to the reserved-memory for the Hexagon core
475956d97fSEmmanuel Vadot
48aa1a8ff2SEmmanuel Vadot  firmware-name:
49aa1a8ff2SEmmanuel Vadot    maxItems: 1
50aa1a8ff2SEmmanuel Vadot    description: Firmware name for the Hexagon core
51aa1a8ff2SEmmanuel Vadot
525956d97fSEmmanuel Vadotrequired:
535956d97fSEmmanuel Vadot  - compatible
54aa1a8ff2SEmmanuel Vadot  - memory-region
555956d97fSEmmanuel Vadot
56cb7aa33aSEmmanuel VadotunevaluatedProperties: false
575956d97fSEmmanuel Vadot
585956d97fSEmmanuel VadotallOf:
59cb7aa33aSEmmanuel Vadot  - $ref: /schemas/remoteproc/qcom,pas-common.yaml#
605956d97fSEmmanuel Vadot  - if:
615956d97fSEmmanuel Vadot      properties:
625956d97fSEmmanuel Vadot        compatible:
635956d97fSEmmanuel Vadot          contains:
645956d97fSEmmanuel Vadot            enum:
65d5b0e70fSEmmanuel Vadot              - qcom,msm8226-adsp-pil
66cb7aa33aSEmmanuel Vadot              - qcom,msm8953-adsp-pil
675956d97fSEmmanuel Vadot              - qcom,msm8974-adsp-pil
685956d97fSEmmanuel Vadot              - qcom,msm8996-adsp-pil
69*84943d6fSEmmanuel Vadot              - qcom,msm8996-slpi-pil
705956d97fSEmmanuel Vadot              - qcom,msm8998-adsp-pas
71*84943d6fSEmmanuel Vadot              - qcom,msm8998-slpi-pas
725956d97fSEmmanuel Vadot              - qcom,sdm845-adsp-pas
735956d97fSEmmanuel Vadot              - qcom,sdm845-cdsp-pas
74aa1a8ff2SEmmanuel Vadot              - qcom,sdm845-slpi-pas
755956d97fSEmmanuel Vadot    then:
765956d97fSEmmanuel Vadot      properties:
775956d97fSEmmanuel Vadot        clocks:
785956d97fSEmmanuel Vadot          items:
795956d97fSEmmanuel Vadot            - description: XO clock
805956d97fSEmmanuel Vadot        clock-names:
815956d97fSEmmanuel Vadot          items:
825956d97fSEmmanuel Vadot            - const: xo
835956d97fSEmmanuel Vadot
845956d97fSEmmanuel Vadot  - if:
855956d97fSEmmanuel Vadot      properties:
865956d97fSEmmanuel Vadot        compatible:
875956d97fSEmmanuel Vadot          contains:
885956d97fSEmmanuel Vadot            enum:
89d5b0e70fSEmmanuel Vadot              - qcom,msm8226-adsp-pil
90cb7aa33aSEmmanuel Vadot              - qcom,msm8953-adsp-pil
915956d97fSEmmanuel Vadot              - qcom,msm8974-adsp-pil
925956d97fSEmmanuel Vadot              - qcom,msm8996-adsp-pil
935956d97fSEmmanuel Vadot              - qcom,msm8996-slpi-pil
945956d97fSEmmanuel Vadot              - qcom,msm8998-adsp-pas
955956d97fSEmmanuel Vadot              - qcom,msm8998-slpi-pas
965956d97fSEmmanuel Vadot              - qcom,sdm845-adsp-pas
975956d97fSEmmanuel Vadot              - qcom,sdm845-cdsp-pas
98aa1a8ff2SEmmanuel Vadot              - qcom,sdm845-slpi-pas
995956d97fSEmmanuel Vadot    then:
1005956d97fSEmmanuel Vadot      properties:
1015956d97fSEmmanuel Vadot        interrupts:
102b97ee269SEmmanuel Vadot          maxItems: 5
1035956d97fSEmmanuel Vadot        interrupt-names:
104b97ee269SEmmanuel Vadot          maxItems: 5
1055956d97fSEmmanuel Vadot
1065956d97fSEmmanuel Vadot  - if:
1075956d97fSEmmanuel Vadot      properties:
1085956d97fSEmmanuel Vadot        compatible:
1095956d97fSEmmanuel Vadot          contains:
1105956d97fSEmmanuel Vadot            enum:
1115956d97fSEmmanuel Vadot              - qcom,msm8974-adsp-pil
1125956d97fSEmmanuel Vadot    then:
1135956d97fSEmmanuel Vadot      required:
1145956d97fSEmmanuel Vadot        - cx-supply
1155956d97fSEmmanuel Vadot
1165956d97fSEmmanuel Vadot  - if:
1175956d97fSEmmanuel Vadot      properties:
1185956d97fSEmmanuel Vadot        compatible:
1195956d97fSEmmanuel Vadot          contains:
1205956d97fSEmmanuel Vadot            enum:
121d5b0e70fSEmmanuel Vadot              - qcom,msm8226-adsp-pil
122cb7aa33aSEmmanuel Vadot              - qcom,msm8953-adsp-pil
1235956d97fSEmmanuel Vadot              - qcom,msm8996-adsp-pil
1245956d97fSEmmanuel Vadot              - qcom,msm8998-adsp-pas
1255956d97fSEmmanuel Vadot    then:
1265956d97fSEmmanuel Vadot      properties:
1275956d97fSEmmanuel Vadot        power-domains:
1285956d97fSEmmanuel Vadot          items:
1295956d97fSEmmanuel Vadot            - description: CX power domain
1305956d97fSEmmanuel Vadot        power-domain-names:
1315956d97fSEmmanuel Vadot          items:
1325956d97fSEmmanuel Vadot            - const: cx
1335956d97fSEmmanuel Vadot
1345956d97fSEmmanuel Vadot  - if:
1355956d97fSEmmanuel Vadot      properties:
1365956d97fSEmmanuel Vadot        compatible:
1375956d97fSEmmanuel Vadot          contains:
1385956d97fSEmmanuel Vadot            enum:
1395956d97fSEmmanuel Vadot              - qcom,msm8996-slpi-pil
1405956d97fSEmmanuel Vadot              - qcom,msm8998-slpi-pas
1415956d97fSEmmanuel Vadot    then:
1425956d97fSEmmanuel Vadot      properties:
1435956d97fSEmmanuel Vadot        power-domains:
1445956d97fSEmmanuel Vadot          items:
1455956d97fSEmmanuel Vadot            - description: SSC-CX power domain
1465956d97fSEmmanuel Vadot        power-domain-names:
1475956d97fSEmmanuel Vadot          items:
1485956d97fSEmmanuel Vadot            - const: ssc_cx
1495956d97fSEmmanuel Vadot      required:
1505956d97fSEmmanuel Vadot        - px-supply
1515956d97fSEmmanuel Vadot
1525956d97fSEmmanuel Vadot  - if:
1535956d97fSEmmanuel Vadot      properties:
1545956d97fSEmmanuel Vadot        compatible:
155aa1a8ff2SEmmanuel Vadot          enum:
156aa1a8ff2SEmmanuel Vadot            - qcom,sdm845-slpi-pas
157aa1a8ff2SEmmanuel Vadot    then:
158aa1a8ff2SEmmanuel Vadot      properties:
159aa1a8ff2SEmmanuel Vadot        power-domains:
160aa1a8ff2SEmmanuel Vadot          items:
161aa1a8ff2SEmmanuel Vadot            - description: LCX power domain
162aa1a8ff2SEmmanuel Vadot            - description: LMX power domain
163aa1a8ff2SEmmanuel Vadot        power-domain-names:
164aa1a8ff2SEmmanuel Vadot          items:
165aa1a8ff2SEmmanuel Vadot            - const: lcx
166aa1a8ff2SEmmanuel Vadot            - const: lmx
167aa1a8ff2SEmmanuel Vadot
168aa1a8ff2SEmmanuel Vadot  - if:
169aa1a8ff2SEmmanuel Vadot      properties:
170aa1a8ff2SEmmanuel Vadot        compatible:
1715956d97fSEmmanuel Vadot          contains:
1725956d97fSEmmanuel Vadot            enum:
173d5b0e70fSEmmanuel Vadot              - qcom,msm8226-adsp-pil
174cb7aa33aSEmmanuel Vadot              - qcom,msm8953-adsp-pil
1758cc087a1SEmmanuel Vadot              - qcom,msm8974-adsp-pil
1768cc087a1SEmmanuel Vadot              - qcom,msm8996-adsp-pil
1778cc087a1SEmmanuel Vadot              - qcom,msm8996-slpi-pil
1788cc087a1SEmmanuel Vadot              - qcom,msm8998-adsp-pas
1798cc087a1SEmmanuel Vadot              - qcom,msm8998-slpi-pas
1808cc087a1SEmmanuel Vadot              - qcom,sdm660-adsp-pas
1818cc087a1SEmmanuel Vadot    then:
1828cc087a1SEmmanuel Vadot      properties:
1838cc087a1SEmmanuel Vadot        qcom,qmp: false
1848cc087a1SEmmanuel Vadot
1855956d97fSEmmanuel Vadotexamples:
1865956d97fSEmmanuel Vadot  - |
1875956d97fSEmmanuel Vadot    #include <dt-bindings/clock/qcom,rpmcc.h>
188b97ee269SEmmanuel Vadot    #include <dt-bindings/interrupt-controller/arm-gic.h>
1895956d97fSEmmanuel Vadot    #include <dt-bindings/interrupt-controller/irq.h>
1905956d97fSEmmanuel Vadot    adsp {
1915956d97fSEmmanuel Vadot        compatible = "qcom,msm8974-adsp-pil";
1925956d97fSEmmanuel Vadot
193b97ee269SEmmanuel Vadot        interrupts-extended = <&intc GIC_SPI 162 IRQ_TYPE_EDGE_RISING>,
1945956d97fSEmmanuel Vadot                      <&adsp_smp2p_in 0 IRQ_TYPE_EDGE_RISING>,
1955956d97fSEmmanuel Vadot                      <&adsp_smp2p_in 1 IRQ_TYPE_EDGE_RISING>,
1965956d97fSEmmanuel Vadot                      <&adsp_smp2p_in 2 IRQ_TYPE_EDGE_RISING>,
1975956d97fSEmmanuel Vadot                      <&adsp_smp2p_in 3 IRQ_TYPE_EDGE_RISING>;
1985956d97fSEmmanuel Vadot        interrupt-names = "wdog",
1995956d97fSEmmanuel Vadot                  "fatal",
2005956d97fSEmmanuel Vadot                  "ready",
2015956d97fSEmmanuel Vadot                  "handover",
2025956d97fSEmmanuel Vadot                  "stop-ack";
2035956d97fSEmmanuel Vadot
2045956d97fSEmmanuel Vadot        clocks = <&rpmcc RPM_CXO_CLK>;
2055956d97fSEmmanuel Vadot        clock-names = "xo";
2065956d97fSEmmanuel Vadot
2075956d97fSEmmanuel Vadot        cx-supply = <&pm8841_s2>;
2085956d97fSEmmanuel Vadot
2095956d97fSEmmanuel Vadot        memory-region = <&adsp_region>;
2105956d97fSEmmanuel Vadot
2115956d97fSEmmanuel Vadot        qcom,smem-states = <&adsp_smp2p_out 0>;
2125956d97fSEmmanuel Vadot        qcom,smem-state-names = "stop";
2135956d97fSEmmanuel Vadot
2145956d97fSEmmanuel Vadot        smd-edge {
215b97ee269SEmmanuel Vadot            interrupts = <GIC_SPI 156 IRQ_TYPE_EDGE_RISING>;
2165956d97fSEmmanuel Vadot
2175956d97fSEmmanuel Vadot            qcom,ipc = <&apcs 8 8>;
2185956d97fSEmmanuel Vadot            qcom,smd-edge = <1>;
2195956d97fSEmmanuel Vadot        };
2205956d97fSEmmanuel Vadot    };
221