xref: /openbmc/linux/Documentation/devicetree/bindings/remoteproc/qcom,sm8550-pas.yaml (revision c900529f3d9161bfde5cca0754f83b4d3c3e0220)
1084258d6SNeil Armstrong# SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause
2084258d6SNeil Armstrong%YAML 1.2
3084258d6SNeil Armstrong---
4084258d6SNeil Armstrong$id: http://devicetree.org/schemas/remoteproc/qcom,sm8550-pas.yaml#
5084258d6SNeil Armstrong$schema: http://devicetree.org/meta-schemas/core.yaml#
6084258d6SNeil Armstrong
7084258d6SNeil Armstrongtitle: Qualcomm SM8550 Peripheral Authentication Service
8084258d6SNeil Armstrong
9084258d6SNeil Armstrongmaintainers:
10084258d6SNeil Armstrong  - Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
11084258d6SNeil Armstrong
12084258d6SNeil Armstrongdescription:
13084258d6SNeil Armstrong  Qualcomm SM8550 SoC Peripheral Authentication Service loads and boots firmware
14084258d6SNeil Armstrong  on the Qualcomm DSP Hexagon cores.
15084258d6SNeil Armstrong
16084258d6SNeil Armstrongproperties:
17084258d6SNeil Armstrong  compatible:
18084258d6SNeil Armstrong    enum:
19084258d6SNeil Armstrong      - qcom,sm8550-adsp-pas
20084258d6SNeil Armstrong      - qcom,sm8550-cdsp-pas
21084258d6SNeil Armstrong      - qcom,sm8550-mpss-pas
22084258d6SNeil Armstrong
23084258d6SNeil Armstrong  reg:
24084258d6SNeil Armstrong    maxItems: 1
25084258d6SNeil Armstrong
26084258d6SNeil Armstrong  clocks:
27084258d6SNeil Armstrong    items:
28084258d6SNeil Armstrong      - description: XO clock
29084258d6SNeil Armstrong
30084258d6SNeil Armstrong  clock-names:
31084258d6SNeil Armstrong    items:
32084258d6SNeil Armstrong      - const: xo
33084258d6SNeil Armstrong
34084258d6SNeil Armstrong  qcom,qmp:
35084258d6SNeil Armstrong    $ref: /schemas/types.yaml#/definitions/phandle
36084258d6SNeil Armstrong    description: Reference to the AOSS side-channel message RAM.
37084258d6SNeil Armstrong
38084258d6SNeil Armstrong  smd-edge: false
39084258d6SNeil Armstrong
40084258d6SNeil Armstrong  firmware-name:
41084258d6SNeil Armstrong    $ref: /schemas/types.yaml#/definitions/string-array
42084258d6SNeil Armstrong    items:
43084258d6SNeil Armstrong      - description: Firmware name of the Hexagon core
44084258d6SNeil Armstrong      - description: Firmware name of the Hexagon Devicetree
45084258d6SNeil Armstrong
46084258d6SNeil Armstrong  memory-region:
47084258d6SNeil Armstrong    minItems: 2
48084258d6SNeil Armstrong    items:
49084258d6SNeil Armstrong      - description: Memory region for main Firmware authentication
50084258d6SNeil Armstrong      - description: Memory region for Devicetree Firmware authentication
51084258d6SNeil Armstrong      - description: DSM Memory region
52084258d6SNeil Armstrong
53084258d6SNeil Armstrongrequired:
54084258d6SNeil Armstrong  - compatible
55084258d6SNeil Armstrong  - reg
56*ed850322SKrzysztof Kozlowski  - memory-region
57084258d6SNeil Armstrong
58084258d6SNeil ArmstrongallOf:
59084258d6SNeil Armstrong  - $ref: /schemas/remoteproc/qcom,pas-common.yaml#
60084258d6SNeil Armstrong  - if:
61084258d6SNeil Armstrong      properties:
62084258d6SNeil Armstrong        compatible:
63084258d6SNeil Armstrong          enum:
64084258d6SNeil Armstrong            - qcom,sm8550-adsp-pas
65084258d6SNeil Armstrong            - qcom,sm8550-cdsp-pas
66084258d6SNeil Armstrong    then:
67084258d6SNeil Armstrong      properties:
68084258d6SNeil Armstrong        interrupts:
69084258d6SNeil Armstrong          maxItems: 5
70084258d6SNeil Armstrong        interrupt-names:
71084258d6SNeil Armstrong          maxItems: 5
72084258d6SNeil Armstrong        memory-region:
73084258d6SNeil Armstrong          maxItems: 2
74084258d6SNeil Armstrong    else:
75084258d6SNeil Armstrong      properties:
76084258d6SNeil Armstrong        interrupts:
77084258d6SNeil Armstrong          minItems: 6
78084258d6SNeil Armstrong        interrupt-names:
79084258d6SNeil Armstrong          minItems: 6
80084258d6SNeil Armstrong        memory-region:
81084258d6SNeil Armstrong          minItems: 3
82084258d6SNeil Armstrong
83084258d6SNeil Armstrong  - if:
84084258d6SNeil Armstrong      properties:
85084258d6SNeil Armstrong        compatible:
86084258d6SNeil Armstrong          enum:
87084258d6SNeil Armstrong            - qcom,sm8550-adsp-pas
88084258d6SNeil Armstrong    then:
89084258d6SNeil Armstrong      properties:
90084258d6SNeil Armstrong        power-domains:
91084258d6SNeil Armstrong          items:
92084258d6SNeil Armstrong            - description: LCX power domain
93084258d6SNeil Armstrong            - description: LMX power domain
94084258d6SNeil Armstrong        power-domain-names:
95084258d6SNeil Armstrong          items:
96084258d6SNeil Armstrong            - const: lcx
97084258d6SNeil Armstrong            - const: lmx
98084258d6SNeil Armstrong
99084258d6SNeil Armstrong  - if:
100084258d6SNeil Armstrong      properties:
101084258d6SNeil Armstrong        compatible:
102084258d6SNeil Armstrong          enum:
1036f998eb2SKrzysztof Kozlowski            - qcom,sm8550-mpss-pas
104084258d6SNeil Armstrong    then:
105084258d6SNeil Armstrong      properties:
106084258d6SNeil Armstrong        power-domains:
107084258d6SNeil Armstrong          items:
108084258d6SNeil Armstrong            - description: CX power domain
1096f998eb2SKrzysztof Kozlowski            - description: MSS power domain
110084258d6SNeil Armstrong        power-domain-names:
111084258d6SNeil Armstrong          items:
112084258d6SNeil Armstrong            - const: cx
1136f998eb2SKrzysztof Kozlowski            - const: mss
114084258d6SNeil Armstrong  - if:
115084258d6SNeil Armstrong      properties:
116084258d6SNeil Armstrong        compatible:
117084258d6SNeil Armstrong          enum:
1186f998eb2SKrzysztof Kozlowski            - qcom,sm8550-cdsp-pas
119084258d6SNeil Armstrong    then:
120084258d6SNeil Armstrong      properties:
121084258d6SNeil Armstrong        power-domains:
122084258d6SNeil Armstrong          items:
123084258d6SNeil Armstrong            - description: CX power domain
124084258d6SNeil Armstrong            - description: MXC power domain
125084258d6SNeil Armstrong            - description: NSP power domain
126084258d6SNeil Armstrong        power-domain-names:
127084258d6SNeil Armstrong          items:
128084258d6SNeil Armstrong            - const: cx
129084258d6SNeil Armstrong            - const: mxc
130084258d6SNeil Armstrong            - const: nsp
131084258d6SNeil Armstrong
132084258d6SNeil ArmstrongunevaluatedProperties: false
133084258d6SNeil Armstrong
134084258d6SNeil Armstrongexamples:
135084258d6SNeil Armstrong  - |
136084258d6SNeil Armstrong    #include <dt-bindings/clock/qcom,rpmh.h>
137084258d6SNeil Armstrong    #include <dt-bindings/interrupt-controller/irq.h>
138084258d6SNeil Armstrong    #include <dt-bindings/mailbox/qcom-ipcc.h>
139084258d6SNeil Armstrong
140084258d6SNeil Armstrong    remoteproc@30000000 {
141084258d6SNeil Armstrong        compatible = "qcom,sm8550-adsp-pas";
142084258d6SNeil Armstrong        reg = <0x030000000 0x100>;
143084258d6SNeil Armstrong
144084258d6SNeil Armstrong        clocks = <&rpmhcc RPMH_CXO_CLK>;
145084258d6SNeil Armstrong        clock-names = "xo";
146084258d6SNeil Armstrong
147084258d6SNeil Armstrong        interrupts-extended = <&pdc 6 IRQ_TYPE_EDGE_RISING>,
148084258d6SNeil Armstrong                              <&smp2p_adsp_in 0 IRQ_TYPE_EDGE_RISING>,
149084258d6SNeil Armstrong                              <&smp2p_adsp_in 1 IRQ_TYPE_EDGE_RISING>,
150084258d6SNeil Armstrong                              <&smp2p_adsp_in 2 IRQ_TYPE_EDGE_RISING>,
151084258d6SNeil Armstrong                              <&smp2p_adsp_in 3 IRQ_TYPE_EDGE_RISING>;
152084258d6SNeil Armstrong        interrupt-names = "wdog", "fatal", "ready",
153084258d6SNeil Armstrong                          "handover", "stop-ack";
154084258d6SNeil Armstrong
155084258d6SNeil Armstrong        memory-region = <&adsp_mem>, <&dtb_adsp_mem>;
156084258d6SNeil Armstrong
157084258d6SNeil Armstrong        firmware-name = "qcom/sm8550/adsp.mbn",
158084258d6SNeil Armstrong                        "qcom/sm8550/adsp_dtb.mbn";
159084258d6SNeil Armstrong
160084258d6SNeil Armstrong        power-domains = <&rpmhpd_sm8550_lcx>,
161084258d6SNeil Armstrong                        <&rpmhpd_sm8550_lmx>;
162084258d6SNeil Armstrong        power-domain-names = "lcx", "lmx";
163084258d6SNeil Armstrong
164084258d6SNeil Armstrong        qcom,qmp = <&aoss_qmp>;
165084258d6SNeil Armstrong        qcom,smem-states = <&smp2p_adsp_out 0>;
166084258d6SNeil Armstrong        qcom,smem-state-names = "stop";
167084258d6SNeil Armstrong
168084258d6SNeil Armstrong        glink-edge {
169084258d6SNeil Armstrong            interrupts-extended = <&ipcc IPCC_CLIENT_LPASS
170084258d6SNeil Armstrong                                         IPCC_MPROC_SIGNAL_GLINK_QMP
171084258d6SNeil Armstrong                                         IRQ_TYPE_EDGE_RISING>;
172084258d6SNeil Armstrong            mboxes = <&ipcc IPCC_CLIENT_LPASS IPCC_MPROC_SIGNAL_GLINK_QMP>;
173084258d6SNeil Armstrong
174084258d6SNeil Armstrong            label = "lpass";
175084258d6SNeil Armstrong            qcom,remote-pid = <2>;
176084258d6SNeil Armstrong
177084258d6SNeil Armstrong            /* ... */
178084258d6SNeil Armstrong        };
179084258d6SNeil Armstrong    };
180