xref: /linux/Documentation/devicetree/bindings/remoteproc/qcom,sa8775p-pas.yaml (revision c532de5a67a70f8533d495f8f2aaa9a0491c3ad0)
1# SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/remoteproc/qcom,sa8775p-pas.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Qualcomm SA8775p Peripheral Authentication Service
8
9maintainers:
10  - Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
11
12description:
13  Qualcomm SA8775p SoC Peripheral Authentication Service loads and boots firmware
14  on the Qualcomm DSP Hexagon cores.
15
16properties:
17  compatible:
18    enum:
19      - qcom,sa8775p-adsp-pas
20      - qcom,sa8775p-cdsp0-pas
21      - qcom,sa8775p-cdsp1-pas
22      - qcom,sa8775p-gpdsp0-pas
23      - qcom,sa8775p-gpdsp1-pas
24
25  reg:
26    maxItems: 1
27
28  clocks:
29    items:
30      - description: XO clock
31
32  clock-names:
33    items:
34      - const: xo
35
36  qcom,qmp:
37    $ref: /schemas/types.yaml#/definitions/phandle
38    description: Reference to the AOSS side-channel message RAM.
39
40  firmware-name:
41    $ref: /schemas/types.yaml#/definitions/string-array
42    items:
43      - description: Firmware name of the Hexagon core
44
45  memory-region:
46    items:
47      - description: Memory region for main Firmware authentication
48
49  interrupts:
50    maxItems: 5
51
52  interrupt-names:
53    maxItems: 5
54
55required:
56  - compatible
57  - reg
58  - memory-region
59
60allOf:
61  - $ref: /schemas/remoteproc/qcom,pas-common.yaml#
62
63  - if:
64      properties:
65        compatible:
66          enum:
67            - qcom,sa8775p-adsp-pas
68    then:
69      properties:
70        power-domains:
71          items:
72            - description: LCX power domain
73            - description: LMX power domain
74        power-domain-names:
75          items:
76            - const: lcx
77            - const: lmx
78
79  - if:
80      properties:
81        compatible:
82          enum:
83            - qcom,sa8775p-cdsp0-pas
84            - qcom,sa8775p-cdsp1-pas
85    then:
86      properties:
87        power-domains:
88          items:
89            - description: CX power domain
90            - description: MXC power domain
91            - description: NSP0 power domain
92        power-domain-names:
93          items:
94            - const: cx
95            - const: mxc
96            - const: nsp
97
98  - if:
99      properties:
100        compatible:
101          enum:
102            - qcom,sa8775p-gpdsp0-pas
103            - qcom,sa8775p-gpdsp1-pas
104    then:
105      properties:
106        power-domains:
107          items:
108            - description: CX power domain
109            - description: MXC power domain
110        power-domain-names:
111          items:
112            - const: cx
113            - const: mxc
114
115unevaluatedProperties: false
116
117examples:
118  - |
119    #include <dt-bindings/clock/qcom,rpmh.h>
120    #include <dt-bindings/interconnect/qcom,sa8775p-rpmh.h>
121    #include <dt-bindings/interrupt-controller/irq.h>
122    #include <dt-bindings/mailbox/qcom-ipcc.h>
123    #include <dt-bindings/power/qcom,rpmhpd.h>
124
125    remoteproc@30000000 {
126        compatible = "qcom,sa8775p-adsp-pas";
127        reg = <0x30000000 0x100>;
128
129        interrupts-extended = <&pdc 6 IRQ_TYPE_EDGE_RISING>,
130                              <&smp2p_adsp_in 0 IRQ_TYPE_EDGE_RISING>,
131                              <&smp2p_adsp_in 2 IRQ_TYPE_EDGE_RISING>,
132                              <&smp2p_adsp_in 1 IRQ_TYPE_EDGE_RISING>,
133                              <&smp2p_adsp_in 3 IRQ_TYPE_EDGE_RISING>;
134        interrupt-names = "wdog", "fatal", "ready", "handover", "stop-ack";
135
136        clocks = <&rpmhcc RPMH_CXO_CLK>;
137        clock-names = "xo";
138
139        power-domains = <&rpmhpd RPMHPD_LCX>, <&rpmhpd RPMHPD_LMX>;
140        power-domain-names = "lcx", "lmx";
141
142        interconnects = <&lpass_ag_noc MASTER_LPASS_PROC 0 &mc_virt SLAVE_EBI1 0>;
143
144        memory-region = <&pil_adsp_mem>;
145
146        qcom,qmp = <&aoss_qmp>;
147
148        qcom,smem-states = <&smp2p_adsp_out 0>;
149        qcom,smem-state-names = "stop";
150
151        glink-edge {
152            interrupts-extended = <&ipcc IPCC_CLIENT_LPASS
153                                   IPCC_MPROC_SIGNAL_GLINK_QMP
154                                   IRQ_TYPE_EDGE_RISING>;
155            mboxes = <&ipcc IPCC_CLIENT_LPASS IPCC_MPROC_SIGNAL_GLINK_QMP>;
156
157            label = "lpass";
158            qcom,remote-pid = <2>;
159        };
160    };
161