1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/remoteproc/qcom,sc7280-wpss-pil.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Qualcomm SC7280 WPSS Peripheral Image Loader
8
9maintainers:
10  - Bjorn Andersson <bjorn.andersson@linaro.org>
11
12description:
13  This document defines the binding for a component that loads and boots firmware
14  on the Qualcomm Technology Inc. WPSS.
15
16properties:
17  compatible:
18    enum:
19      - qcom,sc7280-wpss-pil
20
21  reg:
22    maxItems: 1
23    description:
24      The base address and size of the qdsp6ss register
25
26  interrupts:
27    items:
28      - description: Watchdog interrupt
29      - description: Fatal interrupt
30      - description: Ready interrupt
31      - description: Handover interrupt
32      - description: Stop acknowledge interrupt
33      - description: Shutdown acknowledge interrupt
34
35  interrupt-names:
36    items:
37      - const: wdog
38      - const: fatal
39      - const: ready
40      - const: handover
41      - const: stop-ack
42      - const: shutdown-ack
43
44  clocks:
45    items:
46      - description: GCC WPSS AHB BDG Master clock
47      - description: GCC WPSS AHB clock
48      - description: GCC WPSS RSCP clock
49      - description: XO clock
50
51  clock-names:
52    items:
53      - const: ahb_bdg
54      - const: ahb
55      - const: rscp
56      - const: xo
57
58  power-domains:
59    items:
60      - description: CX power domain
61      - description: MX power domain
62
63  power-domain-names:
64    items:
65      - const: cx
66      - const: mx
67
68  resets:
69    items:
70      - description: AOSS restart
71      - description: PDC SYNC
72
73  reset-names:
74    items:
75      - const: restart
76      - const: pdc_sync
77
78  memory-region:
79    $ref: /schemas/types.yaml#/definitions/phandle
80    description: Reference to the reserved-memory for the Hexagon core
81
82  firmware-name:
83    $ref: /schemas/types.yaml#/definitions/string
84    description:
85      The name of the firmware which should be loaded for this remote
86      processor.
87
88  qcom,halt-regs:
89    $ref: /schemas/types.yaml#/definitions/phandle-array
90    description:
91      Phandle reference to a syscon representing TCSR followed by the
92      three offsets within syscon for q6, modem and nc halt registers.
93
94  qcom,qmp:
95    $ref: /schemas/types.yaml#/definitions/phandle
96    description: Reference to the AOSS side-channel message RAM.
97
98  qcom,smem-states:
99    $ref: /schemas/types.yaml#/definitions/phandle-array
100    description: States used by the AP to signal the Hexagon core
101    items:
102      - description: Stop the modem
103
104  qcom,smem-state-names:
105    $ref: /schemas/types.yaml#/definitions/string
106    description: The names of the state bits used for SMP2P output
107    items:
108      - const: stop
109
110  glink-edge:
111    type: object
112    description: |
113      Qualcomm G-Link subnode which represents communication edge, channels
114      and devices related to the ADSP.
115
116    properties:
117      interrupts:
118        items:
119          - description: IRQ from WPSS to GLINK
120
121      mboxes:
122        items:
123          - description: Mailbox for communication between APPS and WPSS
124
125      label:
126        description: The names of the state bits used for SMP2P output
127        items:
128          - const: wpss
129
130      qcom,remote-pid:
131        $ref: /schemas/types.yaml#/definitions/uint32
132        description: ID of the shared memory used by GLINK for communication with WPSS
133        maxItems: 1
134
135    required:
136      - interrupts
137      - mboxes
138      - label
139      - qcom,remote-pid
140
141    additionalProperties: false
142
143required:
144  - compatible
145  - reg
146  - interrupts
147  - interrupt-names
148  - clocks
149  - clock-names
150  - power-domains
151  - power-domain-names
152  - resets
153  - reset-names
154  - qcom,halt-regs
155  - memory-region
156  - qcom,qmp
157  - qcom,smem-states
158  - qcom,smem-state-names
159  - glink-edge
160
161additionalProperties: false
162
163examples:
164  - |
165    #include <dt-bindings/interrupt-controller/arm-gic.h>
166    #include <dt-bindings/clock/qcom,gcc-sc7280.h>
167    #include <dt-bindings/clock/qcom,rpmh.h>
168    #include <dt-bindings/power/qcom-rpmpd.h>
169    #include <dt-bindings/reset/qcom,sdm845-aoss.h>
170    #include <dt-bindings/reset/qcom,sdm845-pdc.h>
171    #include <dt-bindings/mailbox/qcom-ipcc.h>
172    remoteproc@8a00000 {
173        compatible = "qcom,sc7280-wpss-pil";
174        reg = <0x08a00000 0x10000>;
175
176        interrupts-extended = <&intc GIC_SPI 587 IRQ_TYPE_EDGE_RISING>,
177                              <&wpss_smp2p_in 0 IRQ_TYPE_EDGE_RISING>,
178                              <&wpss_smp2p_in 1 IRQ_TYPE_EDGE_RISING>,
179                              <&wpss_smp2p_in 2 IRQ_TYPE_EDGE_RISING>,
180                              <&wpss_smp2p_in 3 IRQ_TYPE_EDGE_RISING>,
181                              <&wpss_smp2p_in 7 IRQ_TYPE_EDGE_RISING>;
182        interrupt-names = "wdog", "fatal", "ready", "handover",
183                          "stop-ack", "shutdown-ack";
184
185        clocks = <&gcc GCC_WPSS_AHB_BDG_MST_CLK>,
186                 <&gcc GCC_WPSS_AHB_CLK>,
187                 <&gcc GCC_WPSS_RSCP_CLK>,
188                 <&rpmhcc RPMH_CXO_CLK>;
189        clock-names = "ahb_bdg", "ahb",
190                      "rscp", "xo";
191
192        power-domains = <&rpmhpd SC7280_CX>,
193                        <&rpmhpd SC7280_MX>;
194        power-domain-names = "cx", "mx";
195
196        memory-region = <&wpss_mem>;
197
198        qcom,qmp = <&aoss_qmp>;
199
200        qcom,smem-states = <&wpss_smp2p_out 0>;
201        qcom,smem-state-names = "stop";
202
203        resets = <&aoss_reset AOSS_CC_WCSS_RESTART>,
204                 <&pdc_reset PDC_WPSS_SYNC_RESET>;
205        reset-names = "restart", "pdc_sync";
206
207        qcom,halt-regs = <&tcsr_mutex 0x37000>;
208
209        glink-edge {
210            interrupts-extended = <&ipcc IPCC_CLIENT_WPSS
211                                         IPCC_MPROC_SIGNAL_GLINK_QMP
212                                         IRQ_TYPE_EDGE_RISING>;
213            mboxes = <&ipcc IPCC_CLIENT_WPSS
214                            IPCC_MPROC_SIGNAL_GLINK_QMP>;
215
216            label = "wpss";
217            qcom,remote-pid = <13>;
218        };
219    };
220