xref: /linux/Documentation/devicetree/bindings/remoteproc/qcom,nord-pas.yaml (revision fc710de0dd25ed50a087833b4171eb1a46737a9e)
1# SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/remoteproc/qcom,nord-pas.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Qualcomm Nord SoC Peripheral Authentication Service
8
9maintainers:
10  - Shawn Guo <shengchao.guo@oss.qualcomm.com>
11
12description:
13  Qualcomm Nord SoC Peripheral Authentication Service loads and boots firmware
14  on the Qualcomm DSP Hexagon cores.
15
16properties:
17  compatible:
18    enum:
19      - qcom,nord-adsp-pas
20      - qcom,nord-cdsp0-pas
21      - qcom,nord-cdsp1-pas
22      - qcom,nord-cdsp2-pas
23      - qcom,nord-cdsp3-pas
24
25  power-domains:
26    minItems: 2
27    items:
28      - description: CX power domain
29      - description: MX power domain
30      - description: NSP power domain
31
32  power-domain-names:
33    minItems: 2
34    items:
35      - const: cx
36      - const: mx
37      - const: nsp
38
39  reg:
40    maxItems: 1
41
42  clocks:
43    items:
44      - description: XO clock
45
46  clock-names:
47    items:
48      - const: xo
49
50  qcom,qmp:
51    $ref: /schemas/types.yaml#/definitions/phandle
52    description: Reference to the AOSS side-channel message RAM.
53
54  smd-edge: false
55
56  firmware-name:
57    items:
58      - description: Firmware name of the Hexagon core
59      - description: Firmware name of the Hexagon Devicetree
60
61  memory-region:
62    items:
63      - description: Memory region for main Firmware authentication
64      - description: Memory region for Devicetree Firmware authentication
65
66  interrupts:
67    items:
68      - description: Watchdog interrupt
69      - description: Fatal interrupt
70      - description: Ready interrupt
71      - description: Handover interrupt
72      - description: Stop acknowledge interrupt
73      - description: Shutdown acknowledge interrupt
74
75  interrupt-names:
76    items:
77      - const: wdog
78      - const: fatal
79      - const: ready
80      - const: handover
81      - const: stop-ack
82      - const: shutdown-ack
83
84  qcom,smem-states:
85    maxItems: 1
86    description: States used by the AP to signal the Hexagon core
87
88  qcom,smem-state-names:
89    maxItems: 1
90    description: The names of the state bits used for SMP2P output
91
92required:
93  - compatible
94  - reg
95  - memory-region
96
97allOf:
98  - $ref: /schemas/remoteproc/qcom,pas-common.yaml#
99  - if:
100      properties:
101        compatible:
102          enum:
103            - qcom,nord-adsp-pas
104    then:
105      properties:
106        power-domains:
107          maxItems: 2
108        power-domain-names:
109          maxItems: 2
110    else:
111      properties:
112        power-domains:
113          minItems: 3
114        power-domain-names:
115          minItems: 3
116
117unevaluatedProperties: false
118
119examples:
120  - |
121    #include <dt-bindings/clock/qcom,rpmh.h>
122    #include <dt-bindings/interrupt-controller/arm-gic.h>
123    #include <dt-bindings/interrupt-controller/irq.h>
124    #include <dt-bindings/mailbox/qcom-ipcc.h>
125    #include <dt-bindings/power/qcom,rpmhpd.h>
126    #define IPCC_MPROC_ADSP0
127
128    remoteproc@4c00000 {
129        compatible = "qcom,nord-adsp-pas";
130        reg = <0x04c00000 0x10000>;
131
132        clocks = <&rpmhcc RPMH_CXO_CLK>;
133        clock-names = "xo";
134
135        interrupts-extended = <&intc GIC_SPI 159 IRQ_TYPE_EDGE_RISING>,
136                              <&smp2p_adsp_in 0 IRQ_TYPE_EDGE_RISING>,
137                              <&smp2p_adsp_in 1 IRQ_TYPE_EDGE_RISING>,
138                              <&smp2p_adsp_in 2 IRQ_TYPE_EDGE_RISING>,
139                              <&smp2p_adsp_in 3 IRQ_TYPE_EDGE_RISING>,
140                              <&smp2p_adsp_in 7 IRQ_TYPE_EDGE_RISING>;
141        interrupt-names = "wdog",
142                          "fatal",
143                          "ready",
144                          "handover",
145                          "stop-ack",
146                          "shutdown-ack";
147
148        memory-region = <&hpass_dsp0_mem>, <&hpass_dsp0_dtb_mem>;
149
150        firmware-name = "qcom/nord/adsp.mbn",
151                        "qcom/nord/adsp_dtb.mbn";
152
153        power-domains = <&rpmhpd RPMHPD_CX>,
154                        <&rpmhpd RPMHPD_MX>;
155        power-domain-names = "cx",
156                             "mx";
157
158        qcom,qmp = <&aoss_qmp>;
159        qcom,smem-states = <&smp2p_adsp_out 0>;
160        qcom,smem-state-names = "stop";
161
162        glink-edge {
163            interrupts-extended = <&ipcc IPCC_MPROC_ADSP0
164                                         IPCC_MPROC_SIGNAL_GLINK_QMP
165                                         IRQ_TYPE_EDGE_RISING>;
166            mboxes = <&ipcc IPCC_MPROC_ADSP0 IPCC_MPROC_SIGNAL_GLINK_QMP>;
167
168            label = "adsp";
169            qcom,remote-pid = <2>;
170
171            /* ... */
172        };
173    };
174