1# SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/remoteproc/qcom,sc7180-pas.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Qualcomm SC7180/SC7280 Peripheral Authentication Service
8
9maintainers:
10  - Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
11
12description:
13  Qualcomm SC7180/SC7280 SoC Peripheral Authentication Service loads and boots
14  firmware on the Qualcomm DSP Hexagon cores.
15
16properties:
17  compatible:
18    enum:
19      - qcom,sc7180-mpss-pas
20      - qcom,sc7280-mpss-pas
21
22  reg:
23    maxItems: 1
24
25  clocks:
26    items:
27      - description: XO clock
28
29  clock-names:
30    items:
31      - const: xo
32
33  interrupts:
34    minItems: 6
35
36  interrupt-names:
37    minItems: 6
38
39  power-domains:
40    minItems: 2
41    items:
42      - description: CX power domain
43      - description: MX power domain
44      - description: MSS power domain
45
46  power-domain-names:
47    minItems: 2
48    items:
49      - const: cx
50      - const: mx
51      - const: mss
52
53  memory-region:
54    maxItems: 1
55    description: Reference to the reserved-memory for the Hexagon core
56
57  qcom,qmp:
58    $ref: /schemas/types.yaml#/definitions/phandle
59    description: Reference to the AOSS side-channel message RAM.
60
61  smd-edge: false
62
63  firmware-name:
64    $ref: /schemas/types.yaml#/definitions/string
65    description: Firmware name for the Hexagon core
66
67required:
68  - compatible
69  - reg
70  - memory-region
71
72allOf:
73  - $ref: /schemas/remoteproc/qcom,pas-common.yaml#
74  - if:
75      properties:
76        compatible:
77          enum:
78            - qcom,sc7180-mpss-pas
79    then:
80      properties:
81        power-domains:
82          minItems: 3
83        power-domain-names:
84          minItems: 3
85    else:
86      properties:
87        power-domains:
88          maxItems: 2
89        power-domain-names:
90          maxItems: 2
91
92unevaluatedProperties: false
93
94examples:
95  - |
96    #include <dt-bindings/clock/qcom,rpmh.h>
97    #include <dt-bindings/interrupt-controller/arm-gic.h>
98    #include <dt-bindings/interrupt-controller/irq.h>
99    #include <dt-bindings/power/qcom-rpmpd.h>
100
101    remoteproc@4080000 {
102        compatible = "qcom,sc7180-mpss-pas";
103        reg = <0x04080000 0x4040>;
104
105        clocks = <&rpmhcc RPMH_CXO_CLK>;
106        clock-names = "xo";
107
108        interrupts-extended = <&intc GIC_SPI 266 IRQ_TYPE_EDGE_RISING>,
109                              <&modem_smp2p_in 0 IRQ_TYPE_EDGE_RISING>,
110                              <&modem_smp2p_in 1 IRQ_TYPE_EDGE_RISING>,
111                              <&modem_smp2p_in 2 IRQ_TYPE_EDGE_RISING>,
112                              <&modem_smp2p_in 3 IRQ_TYPE_EDGE_RISING>,
113                              <&modem_smp2p_in 7 IRQ_TYPE_EDGE_RISING>;
114        interrupt-names = "wdog", "fatal", "ready", "handover",
115                          "stop-ack", "shutdown-ack";
116
117        memory-region = <&mpss_mem>;
118
119        power-domains = <&rpmhpd SC7180_CX>,
120                        <&rpmhpd SC7180_MX>,
121                        <&rpmhpd SC7180_MSS>;
122        power-domain-names = "cx", "mx", "mss";
123
124        qcom,qmp = <&aoss_qmp>;
125        qcom,smem-states = <&modem_smp2p_out 0>;
126        qcom,smem-state-names = "stop";
127
128        glink-edge {
129            interrupts = <GIC_SPI 449 IRQ_TYPE_EDGE_RISING>;
130            label = "modem";
131            qcom,remote-pid = <1>;
132            mboxes = <&apss_shared 12>;
133        };
134    };
135