xref: /linux/Documentation/devicetree/bindings/remoteproc/qcom,msm8996-mss-pil.yaml (revision c771600c6af14749609b49565ffb4cac2959710d)
1bdea1422SSibi Sankar# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2bdea1422SSibi Sankar%YAML 1.2
3bdea1422SSibi Sankar---
4bdea1422SSibi Sankar$id: http://devicetree.org/schemas/remoteproc/qcom,msm8996-mss-pil.yaml#
5bdea1422SSibi Sankar$schema: http://devicetree.org/meta-schemas/core.yaml#
6bdea1422SSibi Sankar
7bdea1422SSibi Sankartitle: Qualcomm MSM8996 MSS Peripheral Image Loader (and similar)
8bdea1422SSibi Sankar
9bdea1422SSibi Sankarmaintainers:
10bdea1422SSibi Sankar  - Bjorn Andersson <andersson@kernel.org>
11bdea1422SSibi Sankar  - Sibi Sankar <quic_sibis@quicinc.com>
12bdea1422SSibi Sankar
13bdea1422SSibi Sankardescription:
14bdea1422SSibi Sankar  MSS Peripheral Image Loader loads and boots firmware on the
15bdea1422SSibi Sankar  Qualcomm Technology Inc. MSM8996 Modem Hexagon Core (and similar).
16bdea1422SSibi Sankar
17bdea1422SSibi Sankarproperties:
18bdea1422SSibi Sankar  compatible:
19bdea1422SSibi Sankar    enum:
20bdea1422SSibi Sankar      - qcom,msm8996-mss-pil
21bdea1422SSibi Sankar      - qcom,msm8998-mss-pil
22ed50ac26SAlexey Minnekhanov      - qcom,sdm660-mss-pil
23bdea1422SSibi Sankar      - qcom,sdm845-mss-pil
24bdea1422SSibi Sankar
25bdea1422SSibi Sankar  reg:
26bdea1422SSibi Sankar    items:
27bdea1422SSibi Sankar      - description: MSS QDSP6 registers
28bdea1422SSibi Sankar      - description: RMB registers
29bdea1422SSibi Sankar
30bdea1422SSibi Sankar  reg-names:
31bdea1422SSibi Sankar    items:
32bdea1422SSibi Sankar      - const: qdsp6
33bdea1422SSibi Sankar      - const: rmb
34bdea1422SSibi Sankar
35bdea1422SSibi Sankar  iommus:
36bdea1422SSibi Sankar    items:
37bdea1422SSibi Sankar      - description: MSA Stream 1
38bdea1422SSibi Sankar      - description: MSA Stream 2
39bdea1422SSibi Sankar
40bdea1422SSibi Sankar  interrupts:
41bdea1422SSibi Sankar    items:
42bdea1422SSibi Sankar      - description: Watchdog interrupt
43bdea1422SSibi Sankar      - description: Fatal interrupt
44bdea1422SSibi Sankar      - description: Ready interrupt
45bdea1422SSibi Sankar      - description: Handover interrupt
46bdea1422SSibi Sankar      - description: Stop acknowledge interrupt
47bdea1422SSibi Sankar      - description: Shutdown acknowledge interrupt
48bdea1422SSibi Sankar
49bdea1422SSibi Sankar  interrupt-names:
50bdea1422SSibi Sankar    items:
51bdea1422SSibi Sankar      - const: wdog
52bdea1422SSibi Sankar      - const: fatal
53bdea1422SSibi Sankar      - const: ready
54bdea1422SSibi Sankar      - const: handover
55bdea1422SSibi Sankar      - const: stop-ack
56bdea1422SSibi Sankar      - const: shutdown-ack
57bdea1422SSibi Sankar
58bdea1422SSibi Sankar  clocks:
59bdea1422SSibi Sankar    minItems: 8
60bdea1422SSibi Sankar    maxItems: 9
61bdea1422SSibi Sankar
62bdea1422SSibi Sankar  clock-names:
63bdea1422SSibi Sankar    minItems: 8
64bdea1422SSibi Sankar    maxItems: 9
65bdea1422SSibi Sankar
66bdea1422SSibi Sankar  power-domains:
67bdea1422SSibi Sankar    items:
68bdea1422SSibi Sankar      - description: CX power domain
69bdea1422SSibi Sankar      - description: MX power domain
70bdea1422SSibi Sankar      - description: MSS power domain (only valid for qcom,sdm845-mss-pil)
71bdea1422SSibi Sankar    minItems: 2
72bdea1422SSibi Sankar
73bdea1422SSibi Sankar  power-domain-names:
74bdea1422SSibi Sankar    items:
75bdea1422SSibi Sankar      - const: cx
76bdea1422SSibi Sankar      - const: mx
77bdea1422SSibi Sankar      - const: mss # only valid for qcom,sdm845-mss-pil
78bdea1422SSibi Sankar    minItems: 2
79bdea1422SSibi Sankar
80bdea1422SSibi Sankar  pll-supply:
81bdea1422SSibi Sankar    description: PLL supply
82bdea1422SSibi Sankar
83bdea1422SSibi Sankar  resets:
84bdea1422SSibi Sankar    items:
85bdea1422SSibi Sankar      - description: AOSS restart
86bdea1422SSibi Sankar      - description: PDC reset (only valid for qcom,sdm845-mss-pil)
87bdea1422SSibi Sankar    minItems: 1
88bdea1422SSibi Sankar
89bdea1422SSibi Sankar  reset-names:
90bdea1422SSibi Sankar    items:
91bdea1422SSibi Sankar      - const: mss_restart
92bdea1422SSibi Sankar      - const: pdc_reset # only valid for qcom,sdm845-mss-pil
93bdea1422SSibi Sankar    minItems: 1
94bdea1422SSibi Sankar
95bdea1422SSibi Sankar  qcom,qmp:
96bdea1422SSibi Sankar    $ref: /schemas/types.yaml#/definitions/phandle
97bdea1422SSibi Sankar    description: Reference to the AOSS side-channel message RAM.
98bdea1422SSibi Sankar
99bdea1422SSibi Sankar  qcom,smem-states:
100bdea1422SSibi Sankar    $ref: /schemas/types.yaml#/definitions/phandle-array
101bdea1422SSibi Sankar    description: States used by the AP to signal the Hexagon core
102bdea1422SSibi Sankar    items:
103bdea1422SSibi Sankar      - description: Stop modem
104bdea1422SSibi Sankar
105bdea1422SSibi Sankar  qcom,smem-state-names:
106bdea1422SSibi Sankar    description: Names of the states used by the AP to signal the Hexagon core
107bdea1422SSibi Sankar    items:
108bdea1422SSibi Sankar      - const: stop
109bdea1422SSibi Sankar
110bdea1422SSibi Sankar  qcom,halt-regs:
111bdea1422SSibi Sankar    $ref: /schemas/types.yaml#/definitions/phandle-array
112bdea1422SSibi Sankar    description:
113bdea1422SSibi Sankar      Halt registers are used to halt transactions of various sub-components
114bdea1422SSibi Sankar      within MSS.
115bdea1422SSibi Sankar    items:
116bdea1422SSibi Sankar      - items:
117bdea1422SSibi Sankar          - description: phandle to TCSR syscon region
118bdea1422SSibi Sankar          - description: offset to the Q6 halt register
119bdea1422SSibi Sankar          - description: offset to the modem halt register
120bdea1422SSibi Sankar          - description: offset to the nc halt register
121bdea1422SSibi Sankar
122bdea1422SSibi Sankar  memory-region:
123bdea1422SSibi Sankar    items:
124bdea1422SSibi Sankar      - description: MBA reserved region
125bdea1422SSibi Sankar      - description: Modem reserved region
1269b302424SSibi Sankar      - description: Metadata reserved region
127bdea1422SSibi Sankar
128bdea1422SSibi Sankar  firmware-name:
129bdea1422SSibi Sankar    $ref: /schemas/types.yaml#/definitions/string-array
130bdea1422SSibi Sankar    items:
131bdea1422SSibi Sankar      - description: Name of MBA firmware
132bdea1422SSibi Sankar      - description: Name of modem firmware
133bdea1422SSibi Sankar
134bdea1422SSibi Sankar  smd-edge:
135bdea1422SSibi Sankar    $ref: /schemas/remoteproc/qcom,smd-edge.yaml#
136bdea1422SSibi Sankar    description:
137bdea1422SSibi Sankar      Qualcomm Shared Memory subnode which represents communication edge,
138bdea1422SSibi Sankar      channels and devices related to the Modem.
139bdea1422SSibi Sankar    unevaluatedProperties: false
140bdea1422SSibi Sankar
141bdea1422SSibi Sankar  glink-edge:
142bdea1422SSibi Sankar    $ref: /schemas/remoteproc/qcom,glink-edge.yaml#
143bdea1422SSibi Sankar    description:
144bdea1422SSibi Sankar      Qualcomm G-Link subnode which represents communication edge, channels
145bdea1422SSibi Sankar      and devices related to the Modem.
146bdea1422SSibi Sankar    unevaluatedProperties: false
147bdea1422SSibi Sankar
148bdea1422SSibi Sankar  # Deprecated properties
149bdea1422SSibi Sankar  mba:
150bdea1422SSibi Sankar    type: object
151bdea1422SSibi Sankar    description:
152bdea1422SSibi Sankar      MBA reserved region
153bdea1422SSibi Sankar
154bdea1422SSibi Sankar    properties:
155bdea1422SSibi Sankar      memory-region: true
156bdea1422SSibi Sankar
157bdea1422SSibi Sankar    required:
158bdea1422SSibi Sankar      - memory-region
159bdea1422SSibi Sankar
160bdea1422SSibi Sankar    additionalProperties: false
161bdea1422SSibi Sankar    deprecated: true
162bdea1422SSibi Sankar
163bdea1422SSibi Sankar  mpss:
164bdea1422SSibi Sankar    type: object
165bdea1422SSibi Sankar    description:
166bdea1422SSibi Sankar      MPSS reserved region
167bdea1422SSibi Sankar
168bdea1422SSibi Sankar    properties:
169bdea1422SSibi Sankar      memory-region: true
170bdea1422SSibi Sankar
171bdea1422SSibi Sankar    required:
172bdea1422SSibi Sankar      - memory-region
173bdea1422SSibi Sankar
174bdea1422SSibi Sankar    additionalProperties: false
175bdea1422SSibi Sankar    deprecated: true
176bdea1422SSibi Sankar
1779b302424SSibi Sankar  metadata:
1789b302424SSibi Sankar    type: object
1799b302424SSibi Sankar    description:
1809b302424SSibi Sankar      Metadata reserved region
1819b302424SSibi Sankar
1829b302424SSibi Sankar    properties:
1839b302424SSibi Sankar      memory-region: true
1849b302424SSibi Sankar
1859b302424SSibi Sankar    required:
1869b302424SSibi Sankar      - memory-region
1879b302424SSibi Sankar
1889b302424SSibi Sankar    additionalProperties: false
1899b302424SSibi Sankar    deprecated: true
1909b302424SSibi Sankar
191bdea1422SSibi Sankarrequired:
192bdea1422SSibi Sankar  - compatible
193bdea1422SSibi Sankar  - reg
194bdea1422SSibi Sankar  - reg-names
195bdea1422SSibi Sankar  - interrupts
196bdea1422SSibi Sankar  - interrupt-names
197bdea1422SSibi Sankar  - clocks
198bdea1422SSibi Sankar  - clock-names
199bdea1422SSibi Sankar  - power-domains
200bdea1422SSibi Sankar  - power-domain-names
201bdea1422SSibi Sankar  - resets
202bdea1422SSibi Sankar  - reset-names
203bdea1422SSibi Sankar  - qcom,halt-regs
204bdea1422SSibi Sankar  - qcom,smem-states
205bdea1422SSibi Sankar  - qcom,smem-state-names
206bdea1422SSibi Sankar
207bdea1422SSibi SankarallOf:
208bdea1422SSibi Sankar  - if:
209bdea1422SSibi Sankar      properties:
210bdea1422SSibi Sankar        compatible:
211bdea1422SSibi Sankar          const: qcom,msm8996-mss-pil
212bdea1422SSibi Sankar    then:
213bdea1422SSibi Sankar      properties:
214bdea1422SSibi Sankar        clocks:
215bdea1422SSibi Sankar          items:
216bdea1422SSibi Sankar            - description: GCC MSS IFACE clock
217bdea1422SSibi Sankar            - description: GCC MSS BUS clock
218bdea1422SSibi Sankar            - description: GCC MSS MEM clock
219*7784311cSKonrad Dybcio            - description: RPM XO clock
220bdea1422SSibi Sankar            - description: GCC MSS GPLL0 clock
221bdea1422SSibi Sankar            - description: GCC MSS SNOC_AXI clock
222bdea1422SSibi Sankar            - description: GCC MSS MNOC_AXI clock
223*7784311cSKonrad Dybcio            - description: RPM QDSS clock
224bdea1422SSibi Sankar        clock-names:
225bdea1422SSibi Sankar          items:
226bdea1422SSibi Sankar            - const: iface
227bdea1422SSibi Sankar            - const: bus
228bdea1422SSibi Sankar            - const: mem
229bdea1422SSibi Sankar            - const: xo
230bdea1422SSibi Sankar            - const: gpll0_mss
231bdea1422SSibi Sankar            - const: snoc_axi
232bdea1422SSibi Sankar            - const: mnoc_axi
233bdea1422SSibi Sankar            - const: qdss
234bdea1422SSibi Sankar      required:
235bdea1422SSibi Sankar        - pll-supply
236bdea1422SSibi Sankar        - smd-edge
237bdea1422SSibi Sankar    else:
238bdea1422SSibi Sankar      properties:
239bdea1422SSibi Sankar        pll-supply: false
240bdea1422SSibi Sankar        smd-edge: false
241bdea1422SSibi Sankar
242bdea1422SSibi Sankar  - if:
243bdea1422SSibi Sankar      properties:
244bdea1422SSibi Sankar        compatible:
245ed50ac26SAlexey Minnekhanov          enum:
246ed50ac26SAlexey Minnekhanov            - qcom,msm8998-mss-pil
247ed50ac26SAlexey Minnekhanov            - qcom,sdm660-mss-pil
248bdea1422SSibi Sankar    then:
249bdea1422SSibi Sankar      properties:
250bdea1422SSibi Sankar        clocks:
251bdea1422SSibi Sankar          items:
252bdea1422SSibi Sankar            - description: GCC MSS IFACE clock
253bdea1422SSibi Sankar            - description: GCC MSS BUS clock
254bdea1422SSibi Sankar            - description: GCC MSS MEM clock
255bdea1422SSibi Sankar            - description: GCC MSS GPLL0 clock
256bdea1422SSibi Sankar            - description: GCC MSS SNOC_AXI clock
257bdea1422SSibi Sankar            - description: GCC MSS MNOC_AXI clock
258bdea1422SSibi Sankar            - description: RPMH QDSS clock
259bdea1422SSibi Sankar            - description: RPMH XO clock
260bdea1422SSibi Sankar        clock-names:
261bdea1422SSibi Sankar          items:
262bdea1422SSibi Sankar            - const: iface
263bdea1422SSibi Sankar            - const: bus
264bdea1422SSibi Sankar            - const: mem
265bdea1422SSibi Sankar            - const: gpll0_mss
266bdea1422SSibi Sankar            - const: snoc_axi
267bdea1422SSibi Sankar            - const: mnoc_axi
268bdea1422SSibi Sankar            - const: qdss
269bdea1422SSibi Sankar            - const: xo
270bdea1422SSibi Sankar      required:
271bdea1422SSibi Sankar        - glink-edge
272bdea1422SSibi Sankar
273bdea1422SSibi Sankar  - if:
274bdea1422SSibi Sankar      properties:
275bdea1422SSibi Sankar        compatible:
276bdea1422SSibi Sankar          const: qcom,sdm845-mss-pil
277bdea1422SSibi Sankar    then:
278bdea1422SSibi Sankar      properties:
279bdea1422SSibi Sankar        power-domains:
280bdea1422SSibi Sankar          minItems: 3
281bdea1422SSibi Sankar        power-domain-names:
282bdea1422SSibi Sankar          minItems: 3
283bdea1422SSibi Sankar        resets:
284bdea1422SSibi Sankar          minItems: 2
285bdea1422SSibi Sankar        reset-names:
286bdea1422SSibi Sankar          minItems: 2
287bdea1422SSibi Sankar        clocks:
288bdea1422SSibi Sankar          items:
289bdea1422SSibi Sankar            - description: GCC MSS IFACE clock
290bdea1422SSibi Sankar            - description: GCC MSS BUS clock
291bdea1422SSibi Sankar            - description: GCC MSS MEM clock
292bdea1422SSibi Sankar            - description: GCC MSS GPLL0 clock
293bdea1422SSibi Sankar            - description: GCC MSS SNOC_AXI clock
294bdea1422SSibi Sankar            - description: GCC MSS MNOC_AXI clock
295bdea1422SSibi Sankar            - description: GCC MSS PRNG clock
296bdea1422SSibi Sankar            - description: RPMH XO clock
297bdea1422SSibi Sankar        clock-names:
298bdea1422SSibi Sankar          items:
299bdea1422SSibi Sankar            - const: iface
300bdea1422SSibi Sankar            - const: bus
301bdea1422SSibi Sankar            - const: mem
302bdea1422SSibi Sankar            - const: gpll0_mss
303bdea1422SSibi Sankar            - const: snoc_axi
304bdea1422SSibi Sankar            - const: mnoc_axi
305bdea1422SSibi Sankar            - const: prng
306bdea1422SSibi Sankar            - const: xo
307bdea1422SSibi Sankar      required:
308bdea1422SSibi Sankar        - qcom,qmp
309bdea1422SSibi Sankar        - glink-edge
310bdea1422SSibi Sankar    else:
311bdea1422SSibi Sankar      properties:
312bdea1422SSibi Sankar        iommus: false
313bdea1422SSibi Sankar        power-domains:
314bdea1422SSibi Sankar          maxItems: 2
315bdea1422SSibi Sankar        power-domain-names:
316bdea1422SSibi Sankar          maxItems: 2
317bdea1422SSibi Sankar        resets:
318bdea1422SSibi Sankar          maxItems: 1
319bdea1422SSibi Sankar        reset-names:
320bdea1422SSibi Sankar          maxItems: 1
321bdea1422SSibi Sankar        qcom,qmp: false
322bdea1422SSibi Sankar
323bdea1422SSibi Sankar  # Fallbacks for deprecated properties
324bdea1422SSibi Sankar  - oneOf:
325bdea1422SSibi Sankar      - required:
326bdea1422SSibi Sankar          - memory-region
327bdea1422SSibi Sankar      - required:
328bdea1422SSibi Sankar          - mba
329bdea1422SSibi Sankar          - mpss
3309b302424SSibi Sankar          - metadata
331bdea1422SSibi Sankar
332bdea1422SSibi SankaradditionalProperties: false
333bdea1422SSibi Sankar
334bdea1422SSibi Sankarexamples:
335bdea1422SSibi Sankar  - |
336bdea1422SSibi Sankar    #include <dt-bindings/clock/qcom,gcc-sdm845.h>
337bdea1422SSibi Sankar    #include <dt-bindings/clock/qcom,rpmh.h>
338bdea1422SSibi Sankar    #include <dt-bindings/interrupt-controller/arm-gic.h>
339bdea1422SSibi Sankar    #include <dt-bindings/power/qcom-rpmpd.h>
340bdea1422SSibi Sankar    #include <dt-bindings/reset/qcom,sdm845-aoss.h>
341bdea1422SSibi Sankar    #include <dt-bindings/reset/qcom,sdm845-pdc.h>
342bdea1422SSibi Sankar
343bdea1422SSibi Sankar    remoteproc@4080000 {
344bdea1422SSibi Sankar        compatible = "qcom,sdm845-mss-pil";
345bdea1422SSibi Sankar        reg = <0x04080000 0x408>, <0x04180000 0x48>;
346bdea1422SSibi Sankar        reg-names = "qdsp6", "rmb";
347bdea1422SSibi Sankar
348bdea1422SSibi Sankar        interrupts-extended = <&intc GIC_SPI 266 IRQ_TYPE_EDGE_RISING>,
349bdea1422SSibi Sankar                              <&modem_smp2p_in 0 IRQ_TYPE_EDGE_RISING>,
350bdea1422SSibi Sankar                              <&modem_smp2p_in 1 IRQ_TYPE_EDGE_RISING>,
351bdea1422SSibi Sankar                              <&modem_smp2p_in 2 IRQ_TYPE_EDGE_RISING>,
352bdea1422SSibi Sankar                              <&modem_smp2p_in 3 IRQ_TYPE_EDGE_RISING>,
353bdea1422SSibi Sankar                              <&modem_smp2p_in 7 IRQ_TYPE_EDGE_RISING>;
354bdea1422SSibi Sankar        interrupt-names = "wdog", "fatal", "ready", "handover", "stop-ack",
355bdea1422SSibi Sankar                          "shutdown-ack";
356bdea1422SSibi Sankar
357bdea1422SSibi Sankar        clocks = <&gcc GCC_MSS_CFG_AHB_CLK>,
358bdea1422SSibi Sankar                 <&gcc GCC_MSS_Q6_MEMNOC_AXI_CLK>,
359bdea1422SSibi Sankar                 <&gcc GCC_BOOT_ROM_AHB_CLK>,
360bdea1422SSibi Sankar                 <&gcc GCC_MSS_GPLL0_DIV_CLK_SRC>,
361bdea1422SSibi Sankar                 <&gcc GCC_MSS_SNOC_AXI_CLK>,
362bdea1422SSibi Sankar                 <&gcc GCC_MSS_MFAB_AXIS_CLK>,
363bdea1422SSibi Sankar                 <&gcc GCC_PRNG_AHB_CLK>,
364bdea1422SSibi Sankar                 <&rpmhcc RPMH_CXO_CLK>;
365bdea1422SSibi Sankar        clock-names = "iface", "bus", "mem", "gpll0_mss",
366bdea1422SSibi Sankar                      "snoc_axi", "mnoc_axi", "prng", "xo";
367bdea1422SSibi Sankar
368bdea1422SSibi Sankar        power-domains = <&rpmhpd SDM845_CX>,
369bdea1422SSibi Sankar                        <&rpmhpd SDM845_MX>,
370bdea1422SSibi Sankar                        <&rpmhpd SDM845_MSS>;
371bdea1422SSibi Sankar        power-domain-names = "cx", "mx", "mss";
372bdea1422SSibi Sankar
3739b302424SSibi Sankar        memory-region = <&mba_mem>, <&mpss_mem>, <&mdata_mem>;
374bdea1422SSibi Sankar
375bdea1422SSibi Sankar        resets = <&aoss_reset AOSS_CC_MSS_RESTART>,
376bdea1422SSibi Sankar                 <&pdc_reset PDC_MODEM_SYNC_RESET>;
377bdea1422SSibi Sankar        reset-names = "mss_restart", "pdc_reset";
378bdea1422SSibi Sankar
379bdea1422SSibi Sankar        qcom,halt-regs = <&tcsr_regs_1 0x3000 0x5000 0x4000>;
380bdea1422SSibi Sankar
381bdea1422SSibi Sankar        qcom,qmp = <&aoss_qmp>;
382bdea1422SSibi Sankar
383bdea1422SSibi Sankar        qcom,smem-states = <&modem_smp2p_out 0>;
384bdea1422SSibi Sankar        qcom,smem-state-names = "stop";
385bdea1422SSibi Sankar
386bdea1422SSibi Sankar        glink-edge {
387bdea1422SSibi Sankar            interrupts = <GIC_SPI 449 IRQ_TYPE_EDGE_RISING>;
388bdea1422SSibi Sankar            label = "modem";
389bdea1422SSibi Sankar            qcom,remote-pid = <1>;
390bdea1422SSibi Sankar            mboxes = <&apss_shared 12>;
391bdea1422SSibi Sankar        };
392bdea1422SSibi Sankar    };
393