1cb7aa33aSEmmanuel Vadot# SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause
2cb7aa33aSEmmanuel Vadot%YAML 1.2
3cb7aa33aSEmmanuel Vadot---
4cb7aa33aSEmmanuel Vadot$id: http://devicetree.org/schemas/remoteproc/qcom,sc7180-pas.yaml#
5cb7aa33aSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6cb7aa33aSEmmanuel Vadot
7cb7aa33aSEmmanuel Vadottitle: Qualcomm SC7180/SC7280 Peripheral Authentication Service
8cb7aa33aSEmmanuel Vadot
9cb7aa33aSEmmanuel Vadotmaintainers:
10cb7aa33aSEmmanuel Vadot  - Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
11cb7aa33aSEmmanuel Vadot
12cb7aa33aSEmmanuel Vadotdescription:
13cb7aa33aSEmmanuel Vadot  Qualcomm SC7180/SC7280 SoC Peripheral Authentication Service loads and boots
14cb7aa33aSEmmanuel Vadot  firmware on the Qualcomm DSP Hexagon cores.
15cb7aa33aSEmmanuel Vadot
16cb7aa33aSEmmanuel Vadotproperties:
17cb7aa33aSEmmanuel Vadot  compatible:
18cb7aa33aSEmmanuel Vadot    enum:
1984943d6fSEmmanuel Vadot      - qcom,sc7180-adsp-pas
20cb7aa33aSEmmanuel Vadot      - qcom,sc7180-mpss-pas
21*8d13bc63SEmmanuel Vadot      - qcom,sc7280-adsp-pas
22*8d13bc63SEmmanuel Vadot      - qcom,sc7280-cdsp-pas
23cb7aa33aSEmmanuel Vadot      - qcom,sc7280-mpss-pas
24*8d13bc63SEmmanuel Vadot      - qcom,sc7280-wpss-pas
25cb7aa33aSEmmanuel Vadot
26cb7aa33aSEmmanuel Vadot  reg:
27cb7aa33aSEmmanuel Vadot    maxItems: 1
28cb7aa33aSEmmanuel Vadot
29cb7aa33aSEmmanuel Vadot  clocks:
30cb7aa33aSEmmanuel Vadot    items:
31cb7aa33aSEmmanuel Vadot      - description: XO clock
32cb7aa33aSEmmanuel Vadot
33cb7aa33aSEmmanuel Vadot  clock-names:
34cb7aa33aSEmmanuel Vadot    items:
35cb7aa33aSEmmanuel Vadot      - const: xo
36cb7aa33aSEmmanuel Vadot
37cb7aa33aSEmmanuel Vadot  memory-region:
38aa1a8ff2SEmmanuel Vadot    maxItems: 1
39cb7aa33aSEmmanuel Vadot    description: Reference to the reserved-memory for the Hexagon core
40cb7aa33aSEmmanuel Vadot
41cb7aa33aSEmmanuel Vadot  qcom,qmp:
42cb7aa33aSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/phandle
43cb7aa33aSEmmanuel Vadot    description: Reference to the AOSS side-channel message RAM.
44cb7aa33aSEmmanuel Vadot
45cb7aa33aSEmmanuel Vadot  smd-edge: false
46cb7aa33aSEmmanuel Vadot
47cb7aa33aSEmmanuel Vadot  firmware-name:
48cb7aa33aSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/string
49cb7aa33aSEmmanuel Vadot    description: Firmware name for the Hexagon core
50cb7aa33aSEmmanuel Vadot
51cb7aa33aSEmmanuel Vadotrequired:
52cb7aa33aSEmmanuel Vadot  - compatible
53cb7aa33aSEmmanuel Vadot  - reg
54aa1a8ff2SEmmanuel Vadot  - memory-region
55cb7aa33aSEmmanuel Vadot
56cb7aa33aSEmmanuel VadotallOf:
57cb7aa33aSEmmanuel Vadot  - $ref: /schemas/remoteproc/qcom,pas-common.yaml#
58cb7aa33aSEmmanuel Vadot  - if:
59cb7aa33aSEmmanuel Vadot      properties:
60cb7aa33aSEmmanuel Vadot        compatible:
61cb7aa33aSEmmanuel Vadot          enum:
6284943d6fSEmmanuel Vadot            - qcom,sc7180-adsp-pas
6384943d6fSEmmanuel Vadot    then:
6484943d6fSEmmanuel Vadot      properties:
6584943d6fSEmmanuel Vadot        interrupts:
6684943d6fSEmmanuel Vadot          maxItems: 5
6784943d6fSEmmanuel Vadot        interrupt-names:
6884943d6fSEmmanuel Vadot          maxItems: 5
6984943d6fSEmmanuel Vadot    else:
7084943d6fSEmmanuel Vadot      properties:
7184943d6fSEmmanuel Vadot        interrupts:
7284943d6fSEmmanuel Vadot          minItems: 6
7384943d6fSEmmanuel Vadot        interrupt-names:
7484943d6fSEmmanuel Vadot          minItems: 6
7584943d6fSEmmanuel Vadot
7684943d6fSEmmanuel Vadot  - if:
7784943d6fSEmmanuel Vadot      properties:
7884943d6fSEmmanuel Vadot        compatible:
7984943d6fSEmmanuel Vadot          enum:
8084943d6fSEmmanuel Vadot            - qcom,sc7180-adsp-pas
81*8d13bc63SEmmanuel Vadot            - qcom,sc7280-adsp-pas
8284943d6fSEmmanuel Vadot    then:
8384943d6fSEmmanuel Vadot      properties:
8484943d6fSEmmanuel Vadot        power-domains:
8584943d6fSEmmanuel Vadot          items:
8684943d6fSEmmanuel Vadot            - description: LCX power domain
8784943d6fSEmmanuel Vadot            - description: LMX power domain
8884943d6fSEmmanuel Vadot        power-domain-names:
8984943d6fSEmmanuel Vadot          items:
9084943d6fSEmmanuel Vadot            - const: lcx
9184943d6fSEmmanuel Vadot            - const: lmx
9284943d6fSEmmanuel Vadot
9384943d6fSEmmanuel Vadot  - if:
9484943d6fSEmmanuel Vadot      properties:
9584943d6fSEmmanuel Vadot        compatible:
9684943d6fSEmmanuel Vadot          enum:
97cb7aa33aSEmmanuel Vadot            - qcom,sc7180-mpss-pas
98cb7aa33aSEmmanuel Vadot    then:
99cb7aa33aSEmmanuel Vadot      properties:
100cb7aa33aSEmmanuel Vadot        power-domains:
10184943d6fSEmmanuel Vadot          items:
10284943d6fSEmmanuel Vadot            - description: CX power domain
10384943d6fSEmmanuel Vadot            - description: MX power domain
10484943d6fSEmmanuel Vadot            - description: MSS power domain
105cb7aa33aSEmmanuel Vadot        power-domain-names:
10684943d6fSEmmanuel Vadot          items:
10784943d6fSEmmanuel Vadot            - const: cx
10884943d6fSEmmanuel Vadot            - const: mx
10984943d6fSEmmanuel Vadot            - const: mss
11084943d6fSEmmanuel Vadot
11184943d6fSEmmanuel Vadot  - if:
11284943d6fSEmmanuel Vadot      properties:
11384943d6fSEmmanuel Vadot        compatible:
11484943d6fSEmmanuel Vadot          enum:
11584943d6fSEmmanuel Vadot            - qcom,sc7280-mpss-pas
11684943d6fSEmmanuel Vadot    then:
117cb7aa33aSEmmanuel Vadot      properties:
118cb7aa33aSEmmanuel Vadot        power-domains:
11984943d6fSEmmanuel Vadot          items:
12084943d6fSEmmanuel Vadot            - description: CX power domain
121*8d13bc63SEmmanuel Vadot            - description: MSS power domain
122*8d13bc63SEmmanuel Vadot        power-domain-names:
123*8d13bc63SEmmanuel Vadot          items:
124*8d13bc63SEmmanuel Vadot            - const: cx
125*8d13bc63SEmmanuel Vadot            - const: mss
126*8d13bc63SEmmanuel Vadot
127*8d13bc63SEmmanuel Vadot  - if:
128*8d13bc63SEmmanuel Vadot      properties:
129*8d13bc63SEmmanuel Vadot        compatible:
130*8d13bc63SEmmanuel Vadot          enum:
131*8d13bc63SEmmanuel Vadot            - qcom,sc7280-cdsp-pas
132*8d13bc63SEmmanuel Vadot            - qcom,sc7280-wpss-pas
133*8d13bc63SEmmanuel Vadot    then:
134*8d13bc63SEmmanuel Vadot      properties:
135*8d13bc63SEmmanuel Vadot        power-domains:
136*8d13bc63SEmmanuel Vadot          items:
137*8d13bc63SEmmanuel Vadot            - description: CX power domain
13884943d6fSEmmanuel Vadot            - description: MX power domain
139cb7aa33aSEmmanuel Vadot        power-domain-names:
14084943d6fSEmmanuel Vadot          items:
14184943d6fSEmmanuel Vadot            - const: cx
14284943d6fSEmmanuel Vadot            - const: mx
143cb7aa33aSEmmanuel Vadot
144cb7aa33aSEmmanuel VadotunevaluatedProperties: false
145cb7aa33aSEmmanuel Vadot
146cb7aa33aSEmmanuel Vadotexamples:
147cb7aa33aSEmmanuel Vadot  - |
148cb7aa33aSEmmanuel Vadot    #include <dt-bindings/clock/qcom,rpmh.h>
149cb7aa33aSEmmanuel Vadot    #include <dt-bindings/interrupt-controller/arm-gic.h>
150cb7aa33aSEmmanuel Vadot    #include <dt-bindings/interrupt-controller/irq.h>
151cb7aa33aSEmmanuel Vadot    #include <dt-bindings/power/qcom-rpmpd.h>
152cb7aa33aSEmmanuel Vadot
153cb7aa33aSEmmanuel Vadot    remoteproc@4080000 {
154cb7aa33aSEmmanuel Vadot        compatible = "qcom,sc7180-mpss-pas";
155cb7aa33aSEmmanuel Vadot        reg = <0x04080000 0x4040>;
156cb7aa33aSEmmanuel Vadot
157cb7aa33aSEmmanuel Vadot        clocks = <&rpmhcc RPMH_CXO_CLK>;
158cb7aa33aSEmmanuel Vadot        clock-names = "xo";
159cb7aa33aSEmmanuel Vadot
160cb7aa33aSEmmanuel Vadot        interrupts-extended = <&intc GIC_SPI 266 IRQ_TYPE_EDGE_RISING>,
161cb7aa33aSEmmanuel Vadot                              <&modem_smp2p_in 0 IRQ_TYPE_EDGE_RISING>,
162cb7aa33aSEmmanuel Vadot                              <&modem_smp2p_in 1 IRQ_TYPE_EDGE_RISING>,
163cb7aa33aSEmmanuel Vadot                              <&modem_smp2p_in 2 IRQ_TYPE_EDGE_RISING>,
164cb7aa33aSEmmanuel Vadot                              <&modem_smp2p_in 3 IRQ_TYPE_EDGE_RISING>,
165cb7aa33aSEmmanuel Vadot                              <&modem_smp2p_in 7 IRQ_TYPE_EDGE_RISING>;
166cb7aa33aSEmmanuel Vadot        interrupt-names = "wdog", "fatal", "ready", "handover",
167cb7aa33aSEmmanuel Vadot                          "stop-ack", "shutdown-ack";
168cb7aa33aSEmmanuel Vadot
169cb7aa33aSEmmanuel Vadot        memory-region = <&mpss_mem>;
170cb7aa33aSEmmanuel Vadot
171cb7aa33aSEmmanuel Vadot        power-domains = <&rpmhpd SC7180_CX>,
172cb7aa33aSEmmanuel Vadot                        <&rpmhpd SC7180_MX>,
173cb7aa33aSEmmanuel Vadot                        <&rpmhpd SC7180_MSS>;
174cb7aa33aSEmmanuel Vadot        power-domain-names = "cx", "mx", "mss";
175cb7aa33aSEmmanuel Vadot
176cb7aa33aSEmmanuel Vadot        qcom,qmp = <&aoss_qmp>;
177cb7aa33aSEmmanuel Vadot        qcom,smem-states = <&modem_smp2p_out 0>;
178cb7aa33aSEmmanuel Vadot        qcom,smem-state-names = "stop";
179cb7aa33aSEmmanuel Vadot
180cb7aa33aSEmmanuel Vadot        glink-edge {
181cb7aa33aSEmmanuel Vadot            interrupts = <GIC_SPI 449 IRQ_TYPE_EDGE_RISING>;
182cb7aa33aSEmmanuel Vadot            label = "modem";
183cb7aa33aSEmmanuel Vadot            qcom,remote-pid = <1>;
184cb7aa33aSEmmanuel Vadot            mboxes = <&apss_shared 12>;
185cb7aa33aSEmmanuel Vadot        };
186cb7aa33aSEmmanuel Vadot    };
187