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