1# SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/remoteproc/qcom,sc7180-pas.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Qualcomm SC7180/SC7280 Peripheral Authentication Service
8
9maintainers:
10  - Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
11
12description:
13  Qualcomm SC7180/SC7280 SoC Peripheral Authentication Service loads and boots
14  firmware on the Qualcomm DSP Hexagon cores.
15
16properties:
17  compatible:
18    enum:
19      - qcom,sc7180-mpss-pas
20      - qcom,sc7280-mpss-pas
21
22  reg:
23    maxItems: 1
24
25  clocks:
26    items:
27      - description: XO clock
28
29  clock-names:
30    items:
31      - const: xo
32
33  interrupts:
34    minItems: 6
35
36  interrupt-names:
37    minItems: 6
38
39  power-domains:
40    minItems: 2
41    items:
42      - description: CX power domain
43      - description: MX power domain
44      - description: MSS power domain
45
46  power-domain-names:
47    minItems: 2
48    items:
49      - const: cx
50      - const: mx
51      - const: mss
52
53  memory-region:
54    minItems: 1
55    description: Reference to the reserved-memory for the Hexagon core
56
57  qcom,qmp:
58    $ref: /schemas/types.yaml#/definitions/phandle
59    description: Reference to the AOSS side-channel message RAM.
60
61  smd-edge: false
62
63  firmware-name:
64    $ref: /schemas/types.yaml#/definitions/string
65    description: Firmware name for the Hexagon core
66
67required:
68  - compatible
69  - reg
70
71allOf:
72  - $ref: /schemas/remoteproc/qcom,pas-common.yaml#
73  - if:
74      properties:
75        compatible:
76          enum:
77            - qcom,sc7180-mpss-pas
78    then:
79      properties:
80        power-domains:
81          minItems: 3
82        power-domain-names:
83          minItems: 3
84    else:
85      properties:
86        power-domains:
87          maxItems: 2
88        power-domain-names:
89          maxItems: 2
90
91unevaluatedProperties: false
92
93examples:
94  - |
95    #include <dt-bindings/clock/qcom,rpmh.h>
96    #include <dt-bindings/interrupt-controller/arm-gic.h>
97    #include <dt-bindings/interrupt-controller/irq.h>
98    #include <dt-bindings/power/qcom-rpmpd.h>
99
100    remoteproc@4080000 {
101        compatible = "qcom,sc7180-mpss-pas";
102        reg = <0x04080000 0x4040>;
103
104        clocks = <&rpmhcc RPMH_CXO_CLK>;
105        clock-names = "xo";
106
107        interrupts-extended = <&intc GIC_SPI 266 IRQ_TYPE_EDGE_RISING>,
108                              <&modem_smp2p_in 0 IRQ_TYPE_EDGE_RISING>,
109                              <&modem_smp2p_in 1 IRQ_TYPE_EDGE_RISING>,
110                              <&modem_smp2p_in 2 IRQ_TYPE_EDGE_RISING>,
111                              <&modem_smp2p_in 3 IRQ_TYPE_EDGE_RISING>,
112                              <&modem_smp2p_in 7 IRQ_TYPE_EDGE_RISING>;
113        interrupt-names = "wdog", "fatal", "ready", "handover",
114                          "stop-ack", "shutdown-ack";
115
116        memory-region = <&mpss_mem>;
117
118        power-domains = <&rpmhpd SC7180_CX>,
119                        <&rpmhpd SC7180_MX>,
120                        <&rpmhpd SC7180_MSS>;
121        power-domain-names = "cx", "mx", "mss";
122
123        qcom,qmp = <&aoss_qmp>;
124        qcom,smem-states = <&modem_smp2p_out 0>;
125        qcom,smem-state-names = "stop";
126
127        glink-edge {
128            interrupts = <GIC_SPI 449 IRQ_TYPE_EDGE_RISING>;
129            label = "modem";
130            qcom,remote-pid = <1>;
131            mboxes = <&apss_shared 12>;
132        };
133    };
134