xref: /openbmc/linux/Documentation/devicetree/bindings/remoteproc/qcom,msm8916-mss-pil.yaml (revision 1ac731c529cd4d6adbce134754b51ff7d822b145)
1b9880532SStephan Gerhold# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2b9880532SStephan Gerhold%YAML 1.2
3b9880532SStephan Gerhold---
4b9880532SStephan Gerhold$id: http://devicetree.org/schemas/remoteproc/qcom,msm8916-mss-pil.yaml#
5b9880532SStephan Gerhold$schema: http://devicetree.org/meta-schemas/core.yaml#
6b9880532SStephan Gerhold
7b9880532SStephan Gerholdtitle: Qualcomm MSM8916 MSS Peripheral Image Loader (and similar)
8b9880532SStephan Gerhold
9b9880532SStephan Gerholdmaintainers:
10b9880532SStephan Gerhold  - Stephan Gerhold <stephan@gerhold.net>
11b9880532SStephan Gerhold
12b9880532SStephan Gerholddescription:
13b9880532SStephan Gerhold  This document describes the hardware for a component that loads and boots
14b9880532SStephan Gerhold  firmware on the Qualcomm MSM8916 Modem Hexagon Core (and similar).
15b9880532SStephan Gerhold
16b9880532SStephan Gerholdproperties:
17b9880532SStephan Gerhold  compatible:
18b9880532SStephan Gerhold    oneOf:
19b9880532SStephan Gerhold      - enum:
20f8fb0b3dSStephan Gerhold          - qcom,msm8909-mss-pil
21b9880532SStephan Gerhold          - qcom,msm8916-mss-pil
2243baa1a2SStephan Gerhold          - qcom,msm8953-mss-pil
23ac686cbcSStephan Gerhold          - qcom,msm8974-mss-pil
24b9880532SStephan Gerhold
25b9880532SStephan Gerhold      - const: qcom,q6v5-pil
26b9880532SStephan Gerhold        description: Deprecated, prefer using qcom,msm8916-mss-pil
27b9880532SStephan Gerhold        deprecated: true
28b9880532SStephan Gerhold
29b9880532SStephan Gerhold  reg:
30b9880532SStephan Gerhold    items:
31b9880532SStephan Gerhold      - description: MSS QDSP6 registers
32b9880532SStephan Gerhold      - description: RMB registers
33b9880532SStephan Gerhold
34b9880532SStephan Gerhold  reg-names:
35b9880532SStephan Gerhold    items:
36b9880532SStephan Gerhold      - const: qdsp6
37b9880532SStephan Gerhold      - const: rmb
38b9880532SStephan Gerhold
39b9880532SStephan Gerhold  interrupts:
40b9880532SStephan Gerhold    items:
41b9880532SStephan Gerhold      - description: Watchdog interrupt
42b9880532SStephan Gerhold      - description: Fatal interrupt
43b9880532SStephan Gerhold      - description: Ready interrupt
44b9880532SStephan Gerhold      - description: Handover interrupt
45b9880532SStephan Gerhold      - description: Stop acknowledge interrupt
46b9880532SStephan Gerhold
47b9880532SStephan Gerhold  interrupt-names:
48b9880532SStephan Gerhold    items:
49b9880532SStephan Gerhold      - const: wdog
50b9880532SStephan Gerhold      - const: fatal
51b9880532SStephan Gerhold      - const: ready
52b9880532SStephan Gerhold      - const: handover
53b9880532SStephan Gerhold      - const: stop-ack
54b9880532SStephan Gerhold
55b9880532SStephan Gerhold  clocks:
56b9880532SStephan Gerhold    items:
57b9880532SStephan Gerhold      - description: Configuration interface (AXI) clock
58b9880532SStephan Gerhold      - description: Configuration bus (AHB) clock
59b9880532SStephan Gerhold      - description: Boot ROM (AHB) clock
60b9880532SStephan Gerhold      - description: XO proxy clock (control handed over after startup)
61b9880532SStephan Gerhold
62b9880532SStephan Gerhold  clock-names:
63b9880532SStephan Gerhold    items:
64b9880532SStephan Gerhold      - const: iface
65b9880532SStephan Gerhold      - const: bus
66b9880532SStephan Gerhold      - const: mem
67b9880532SStephan Gerhold      - const: xo
68b9880532SStephan Gerhold
69b9880532SStephan Gerhold  power-domains:
70b9880532SStephan Gerhold    items:
71b9880532SStephan Gerhold      - description: CX proxy power domain (control handed over after startup)
72b9880532SStephan Gerhold      - description: MX proxy power domain (control handed over after startup)
7343baa1a2SStephan Gerhold      - description: MSS proxy power domain (control handed over after startup)
7443baa1a2SStephan Gerhold                     (only valid for qcom,msm8953-mss-pil)
7543baa1a2SStephan Gerhold    minItems: 2
76b9880532SStephan Gerhold
77b9880532SStephan Gerhold  power-domain-names:
78b9880532SStephan Gerhold    items:
79b9880532SStephan Gerhold      - const: cx
80b9880532SStephan Gerhold      - const: mx
8143baa1a2SStephan Gerhold      - const: mss # only valid for qcom,msm8953-mss-pil
8243baa1a2SStephan Gerhold    minItems: 2
83b9880532SStephan Gerhold
84b9880532SStephan Gerhold  pll-supply:
85b9880532SStephan Gerhold    description: PLL proxy supply (control handed over after startup)
86b9880532SStephan Gerhold
87ac686cbcSStephan Gerhold  mss-supply:
88ac686cbcSStephan Gerhold    description: MSS power domain supply (only valid for qcom,msm8974-mss-pil)
89ac686cbcSStephan Gerhold
90b9880532SStephan Gerhold  resets:
91b9880532SStephan Gerhold    items:
92b9880532SStephan Gerhold      - description: MSS restart control
93b9880532SStephan Gerhold
94b9880532SStephan Gerhold  reset-names:
95b9880532SStephan Gerhold    items:
96b9880532SStephan Gerhold      - const: mss_restart
97b9880532SStephan Gerhold
98b9880532SStephan Gerhold  qcom,smem-states:
99b9880532SStephan Gerhold    $ref: /schemas/types.yaml#/definitions/phandle-array
100b9880532SStephan Gerhold    description: States used by the AP to signal the Hexagon core
101b9880532SStephan Gerhold    items:
102b9880532SStephan Gerhold      - description: Stop modem
103b9880532SStephan Gerhold
104b9880532SStephan Gerhold  qcom,smem-state-names:
105b9880532SStephan Gerhold    description: Names of the states used by the AP to signal the Hexagon core
106b9880532SStephan Gerhold    items:
107b9880532SStephan Gerhold      - const: stop
108b9880532SStephan Gerhold
109b9880532SStephan Gerhold  qcom,halt-regs:
110b9880532SStephan Gerhold    $ref: /schemas/types.yaml#/definitions/phandle-array
111b9880532SStephan Gerhold    description:
112b9880532SStephan Gerhold      Halt registers are used to halt transactions of various sub-components
113b9880532SStephan Gerhold      within MSS.
114b9880532SStephan Gerhold    items:
115b9880532SStephan Gerhold      - items:
116b9880532SStephan Gerhold          - description: phandle to TCSR syscon region
117b9880532SStephan Gerhold          - description: offset to the Q6 halt register
118b9880532SStephan Gerhold          - description: offset to the modem halt register
119b9880532SStephan Gerhold          - description: offset to the nc halt register
120b9880532SStephan Gerhold
121b9880532SStephan Gerhold  memory-region:
122b9880532SStephan Gerhold    items:
123b9880532SStephan Gerhold      - description: MBA reserved region
124b9880532SStephan Gerhold      - description: MPSS reserved region
125b9880532SStephan Gerhold
126b9880532SStephan Gerhold  firmware-name:
127b9880532SStephan Gerhold    $ref: /schemas/types.yaml#/definitions/string-array
128b9880532SStephan Gerhold    items:
129b9880532SStephan Gerhold      - description: Name of MBA firmware
130b9880532SStephan Gerhold      - description: Name of modem firmware
131b9880532SStephan Gerhold
132b9880532SStephan Gerhold  bam-dmux:
133b9880532SStephan Gerhold    $ref: /schemas/net/qcom,bam-dmux.yaml#
134b9880532SStephan Gerhold    description:
135b9880532SStephan Gerhold      Qualcomm BAM Data Multiplexer (provides network interface to the modem)
136b9880532SStephan Gerhold
137b9880532SStephan Gerhold  smd-edge:
138b9880532SStephan Gerhold    $ref: qcom,smd-edge.yaml#
139b9880532SStephan Gerhold    description:
140b9880532SStephan Gerhold      Qualcomm SMD subnode which represents communication edge, channels
141b9880532SStephan Gerhold      and devices related to the DSP.
142b9880532SStephan Gerhold    properties:
143b9880532SStephan Gerhold      label:
144b9880532SStephan Gerhold        enum:
145b9880532SStephan Gerhold          - modem
146b9880532SStephan Gerhold          - hexagon
147b9880532SStephan Gerhold    unevaluatedProperties: false
148b9880532SStephan Gerhold
149b9880532SStephan Gerhold  # Deprecated properties
150b9880532SStephan Gerhold  cx-supply:
151b9880532SStephan Gerhold    description: CX power domain regulator supply (prefer using power-domains)
152b9880532SStephan Gerhold    deprecated: true
153b9880532SStephan Gerhold
154b9880532SStephan Gerhold  mx-supply:
155b9880532SStephan Gerhold    description: MX power domain regulator supply (prefer using power-domains)
156b9880532SStephan Gerhold    deprecated: true
157b9880532SStephan Gerhold
158b9880532SStephan Gerhold  mba:
159b9880532SStephan Gerhold    type: object
160*e62fc182SRob Herring    additionalProperties: false
161b9880532SStephan Gerhold    description:
162b9880532SStephan Gerhold      MBA reserved region (prefer using memory-region with two items)
163b9880532SStephan Gerhold    properties:
164b9880532SStephan Gerhold      memory-region: true
165b9880532SStephan Gerhold    required:
166b9880532SStephan Gerhold      - memory-region
167b9880532SStephan Gerhold    deprecated: true
168b9880532SStephan Gerhold
169b9880532SStephan Gerhold  mpss:
170b9880532SStephan Gerhold    type: object
171*e62fc182SRob Herring    additionalProperties: false
172b9880532SStephan Gerhold    description:
173b9880532SStephan Gerhold      MPSS reserved region (prefer using memory-region with two items)
174b9880532SStephan Gerhold    properties:
175b9880532SStephan Gerhold      memory-region: true
176b9880532SStephan Gerhold    required:
177b9880532SStephan Gerhold      - memory-region
178b9880532SStephan Gerhold    deprecated: true
179b9880532SStephan Gerhold
180b9880532SStephan Gerholdrequired:
181b9880532SStephan Gerhold  - compatible
182b9880532SStephan Gerhold  - reg
183b9880532SStephan Gerhold  - reg-names
184b9880532SStephan Gerhold  - interrupts
185b9880532SStephan Gerhold  - interrupt-names
186b9880532SStephan Gerhold  - clocks
187b9880532SStephan Gerhold  - clock-names
188b9880532SStephan Gerhold  - pll-supply
189b9880532SStephan Gerhold  - resets
190b9880532SStephan Gerhold  - reset-names
191b9880532SStephan Gerhold  - qcom,halt-regs
192b9880532SStephan Gerhold  - qcom,smem-states
193b9880532SStephan Gerhold  - qcom,smem-state-names
194b9880532SStephan Gerhold  - smd-edge
195b9880532SStephan Gerhold
196b9880532SStephan GerholdallOf:
197ac686cbcSStephan Gerhold  - if:
198ac686cbcSStephan Gerhold      properties:
199ac686cbcSStephan Gerhold        compatible:
20043baa1a2SStephan Gerhold          const: qcom,msm8953-mss-pil
20143baa1a2SStephan Gerhold    then:
20243baa1a2SStephan Gerhold      properties:
20343baa1a2SStephan Gerhold        power-domains:
20443baa1a2SStephan Gerhold          minItems: 3
20543baa1a2SStephan Gerhold        power-domain-names:
20643baa1a2SStephan Gerhold          minItems: 3
20743baa1a2SStephan Gerhold      required:
20843baa1a2SStephan Gerhold        - power-domains
20943baa1a2SStephan Gerhold        - power-domain-names
21043baa1a2SStephan Gerhold    else:
21143baa1a2SStephan Gerhold      properties:
21243baa1a2SStephan Gerhold        power-domains:
21343baa1a2SStephan Gerhold          maxItems: 2
21443baa1a2SStephan Gerhold        power-domain-names:
21543baa1a2SStephan Gerhold          maxItems: 2
21643baa1a2SStephan Gerhold
21743baa1a2SStephan Gerhold  - if:
21843baa1a2SStephan Gerhold      properties:
21943baa1a2SStephan Gerhold        compatible:
220ac686cbcSStephan Gerhold          const: qcom,msm8974-mss-pil
221ac686cbcSStephan Gerhold    then:
222ac686cbcSStephan Gerhold      required:
223ac686cbcSStephan Gerhold        - mss-supply
224ac686cbcSStephan Gerhold    else:
225ac686cbcSStephan Gerhold      properties:
226ac686cbcSStephan Gerhold        mss-supply: false
227ac686cbcSStephan Gerhold
228b9880532SStephan Gerhold  # Fallbacks for deprecated properties
229b9880532SStephan Gerhold  - oneOf:
230b9880532SStephan Gerhold      - required:
231b9880532SStephan Gerhold          - memory-region
232b9880532SStephan Gerhold      - required:
233b9880532SStephan Gerhold          - mba
234b9880532SStephan Gerhold          - mpss
235b9880532SStephan Gerhold  - oneOf:
236b9880532SStephan Gerhold      - required:
237b9880532SStephan Gerhold          - power-domains
238b9880532SStephan Gerhold          - power-domain-names
239b9880532SStephan Gerhold      - required:
240b9880532SStephan Gerhold          - cx-supply
241b9880532SStephan Gerhold          - mx-supply
242b9880532SStephan Gerhold
243b9880532SStephan GerholdadditionalProperties: false
244b9880532SStephan Gerhold
245b9880532SStephan Gerholdexamples:
246b9880532SStephan Gerhold  - |
247b9880532SStephan Gerhold    #include <dt-bindings/clock/qcom,gcc-msm8916.h>
248b9880532SStephan Gerhold    #include <dt-bindings/interrupt-controller/arm-gic.h>
249b9880532SStephan Gerhold    #include <dt-bindings/power/qcom-rpmpd.h>
250b9880532SStephan Gerhold
251b9880532SStephan Gerhold    remoteproc_mpss: remoteproc@4080000 {
252b9880532SStephan Gerhold        compatible = "qcom,msm8916-mss-pil";
253b9880532SStephan Gerhold        reg = <0x04080000 0x100>, <0x04020000 0x40>;
254b9880532SStephan Gerhold        reg-names = "qdsp6", "rmb";
255b9880532SStephan Gerhold
256b9880532SStephan Gerhold        interrupts-extended = <&intc GIC_SPI 24 IRQ_TYPE_EDGE_RISING>,
257b9880532SStephan Gerhold                              <&hexagon_smp2p_in 0 IRQ_TYPE_EDGE_RISING>,
258b9880532SStephan Gerhold                              <&hexagon_smp2p_in 1 IRQ_TYPE_EDGE_RISING>,
259b9880532SStephan Gerhold                              <&hexagon_smp2p_in 2 IRQ_TYPE_EDGE_RISING>,
260b9880532SStephan Gerhold                              <&hexagon_smp2p_in 3 IRQ_TYPE_EDGE_RISING>;
261b9880532SStephan Gerhold        interrupt-names = "wdog", "fatal", "ready", "handover", "stop-ack";
262b9880532SStephan Gerhold
263b9880532SStephan Gerhold        qcom,smem-states = <&hexagon_smp2p_out 0>;
264b9880532SStephan Gerhold        qcom,smem-state-names = "stop";
265b9880532SStephan Gerhold        qcom,halt-regs = <&tcsr 0x18000 0x19000 0x1a000>;
266b9880532SStephan Gerhold
267b9880532SStephan Gerhold        clocks = <&gcc GCC_MSS_CFG_AHB_CLK>,
268b9880532SStephan Gerhold                 <&gcc GCC_MSS_Q6_BIMC_AXI_CLK>,
269b9880532SStephan Gerhold                 <&gcc GCC_BOOT_ROM_AHB_CLK>,
270b9880532SStephan Gerhold                 <&xo_board>;
271b9880532SStephan Gerhold        clock-names = "iface", "bus", "mem", "xo";
272b9880532SStephan Gerhold
273b9880532SStephan Gerhold        power-domains = <&rpmpd MSM8916_VDDCX>, <&rpmpd MSM8916_VDDMX>;
274b9880532SStephan Gerhold        power-domain-names = "cx", "mx";
275b9880532SStephan Gerhold        pll-supply = <&pm8916_l7>;
276b9880532SStephan Gerhold
277b9880532SStephan Gerhold        resets = <&scm 0>;
278b9880532SStephan Gerhold        reset-names = "mss_restart";
279b9880532SStephan Gerhold
280b9880532SStephan Gerhold        memory-region = <&mba_mem>, <&mpss_mem>;
281b9880532SStephan Gerhold
282b9880532SStephan Gerhold        smd-edge {
283b9880532SStephan Gerhold            interrupts = <GIC_SPI 25 IRQ_TYPE_EDGE_RISING>;
284b9880532SStephan Gerhold
285b9880532SStephan Gerhold            qcom,smd-edge = <0>;
286b9880532SStephan Gerhold            qcom,ipc = <&apcs 8 12>;
287b9880532SStephan Gerhold            qcom,remote-pid = <1>;
288b9880532SStephan Gerhold
289b9880532SStephan Gerhold            label = "hexagon";
290b9880532SStephan Gerhold        };
291b9880532SStephan Gerhold    };
292