1*397c619cSKrzysztof Kozlowski# SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause
2*397c619cSKrzysztof Kozlowski%YAML 1.2
3*397c619cSKrzysztof Kozlowski---
4*397c619cSKrzysztof Kozlowski$id: http://devicetree.org/schemas/remoteproc/qcom,sc8280xp-pas.yaml#
5*397c619cSKrzysztof Kozlowski$schema: http://devicetree.org/meta-schemas/core.yaml#
6*397c619cSKrzysztof Kozlowski
7*397c619cSKrzysztof Kozlowskititle: Qualcomm SC8280XP Peripheral Authentication Service
8*397c619cSKrzysztof Kozlowski
9*397c619cSKrzysztof Kozlowskimaintainers:
10*397c619cSKrzysztof Kozlowski  - Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
11*397c619cSKrzysztof Kozlowski
12*397c619cSKrzysztof Kozlowskidescription:
13*397c619cSKrzysztof Kozlowski  Qualcomm SC8280XP SoC Peripheral Authentication Service loads and boots
14*397c619cSKrzysztof Kozlowski  firmware on the Qualcomm DSP Hexagon cores.
15*397c619cSKrzysztof Kozlowski
16*397c619cSKrzysztof Kozlowskiproperties:
17*397c619cSKrzysztof Kozlowski  compatible:
18*397c619cSKrzysztof Kozlowski    enum:
19*397c619cSKrzysztof Kozlowski      - qcom,sc8280xp-adsp-pas
20*397c619cSKrzysztof Kozlowski      - qcom,sc8280xp-nsp0-pas
21*397c619cSKrzysztof Kozlowski      - qcom,sc8280xp-nsp1-pas
22*397c619cSKrzysztof Kozlowski
23*397c619cSKrzysztof Kozlowski  reg:
24*397c619cSKrzysztof Kozlowski    maxItems: 1
25*397c619cSKrzysztof Kozlowski
26*397c619cSKrzysztof Kozlowski  clocks:
27*397c619cSKrzysztof Kozlowski    items:
28*397c619cSKrzysztof Kozlowski      - description: XO clock
29*397c619cSKrzysztof Kozlowski
30*397c619cSKrzysztof Kozlowski  clock-names:
31*397c619cSKrzysztof Kozlowski    items:
32*397c619cSKrzysztof Kozlowski      - const: xo
33*397c619cSKrzysztof Kozlowski
34*397c619cSKrzysztof Kozlowski  qcom,qmp:
35*397c619cSKrzysztof Kozlowski    $ref: /schemas/types.yaml#/definitions/phandle
36*397c619cSKrzysztof Kozlowski    description: Reference to the AOSS side-channel message RAM.
37*397c619cSKrzysztof Kozlowski
38*397c619cSKrzysztof Kozlowski  smd-edge: false
39*397c619cSKrzysztof Kozlowski
40*397c619cSKrzysztof Kozlowskirequired:
41*397c619cSKrzysztof Kozlowski  - compatible
42*397c619cSKrzysztof Kozlowski  - reg
43*397c619cSKrzysztof Kozlowski
44*397c619cSKrzysztof KozlowskiallOf:
45*397c619cSKrzysztof Kozlowski  - $ref: /schemas/remoteproc/qcom,pas-common.yaml#
46*397c619cSKrzysztof Kozlowski  - if:
47*397c619cSKrzysztof Kozlowski      properties:
48*397c619cSKrzysztof Kozlowski        compatible:
49*397c619cSKrzysztof Kozlowski          enum:
50*397c619cSKrzysztof Kozlowski            - qcom,sc8280xp-nsp0-pas
51*397c619cSKrzysztof Kozlowski            - qcom,sc8280xp-nsp1-pas
52*397c619cSKrzysztof Kozlowski    then:
53*397c619cSKrzysztof Kozlowski      properties:
54*397c619cSKrzysztof Kozlowski        interrupts:
55*397c619cSKrzysztof Kozlowski          maxItems: 5
56*397c619cSKrzysztof Kozlowski        interrupt-names:
57*397c619cSKrzysztof Kozlowski          maxItems: 5
58*397c619cSKrzysztof Kozlowski    else:
59*397c619cSKrzysztof Kozlowski      properties:
60*397c619cSKrzysztof Kozlowski        interrupts:
61*397c619cSKrzysztof Kozlowski          minItems: 6
62*397c619cSKrzysztof Kozlowski        interrupt-names:
63*397c619cSKrzysztof Kozlowski          minItems: 6
64*397c619cSKrzysztof Kozlowski
65*397c619cSKrzysztof Kozlowski  - if:
66*397c619cSKrzysztof Kozlowski      properties:
67*397c619cSKrzysztof Kozlowski        compatible:
68*397c619cSKrzysztof Kozlowski          enum:
69*397c619cSKrzysztof Kozlowski            - qcom,sc8280xp-adsp-pas
70*397c619cSKrzysztof Kozlowski    then:
71*397c619cSKrzysztof Kozlowski      properties:
72*397c619cSKrzysztof Kozlowski        power-domains:
73*397c619cSKrzysztof Kozlowski          items:
74*397c619cSKrzysztof Kozlowski            - description: LCX power domain
75*397c619cSKrzysztof Kozlowski            - description: LMX power domain
76*397c619cSKrzysztof Kozlowski        power-domain-names:
77*397c619cSKrzysztof Kozlowski          items:
78*397c619cSKrzysztof Kozlowski            - const: lcx
79*397c619cSKrzysztof Kozlowski            - const: lmx
80*397c619cSKrzysztof Kozlowski    else:
81*397c619cSKrzysztof Kozlowski      properties:
82*397c619cSKrzysztof Kozlowski        power-domains:
83*397c619cSKrzysztof Kozlowski          items:
84*397c619cSKrzysztof Kozlowski            - description: NSP power domain
85*397c619cSKrzysztof Kozlowski        power-domain-names:
86*397c619cSKrzysztof Kozlowski          items:
87*397c619cSKrzysztof Kozlowski            - const: nsp
88*397c619cSKrzysztof Kozlowski
89*397c619cSKrzysztof KozlowskiunevaluatedProperties: false
90*397c619cSKrzysztof Kozlowski
91*397c619cSKrzysztof Kozlowskiexamples:
92*397c619cSKrzysztof Kozlowski  - |
93*397c619cSKrzysztof Kozlowski    #include <dt-bindings/clock/qcom,rpmh.h>
94*397c619cSKrzysztof Kozlowski    #include <dt-bindings/interrupt-controller/arm-gic.h>
95*397c619cSKrzysztof Kozlowski    #include <dt-bindings/interrupt-controller/irq.h>
96*397c619cSKrzysztof Kozlowski    #include <dt-bindings/mailbox/qcom-ipcc.h>
97*397c619cSKrzysztof Kozlowski    #include <dt-bindings/power/qcom-rpmpd.h>
98*397c619cSKrzysztof Kozlowski
99*397c619cSKrzysztof Kozlowski    remoteproc@3000000 {
100*397c619cSKrzysztof Kozlowski        compatible = "qcom,sc8280xp-adsp-pas";
101*397c619cSKrzysztof Kozlowski        reg = <0x03000000 0x100>;
102*397c619cSKrzysztof Kozlowski
103*397c619cSKrzysztof Kozlowski        clocks = <&rpmhcc RPMH_CXO_CLK>;
104*397c619cSKrzysztof Kozlowski        clock-names = "xo";
105*397c619cSKrzysztof Kozlowski
106*397c619cSKrzysztof Kozlowski        firmware-name = "qcom/sc8280xp/qcadsp8280.mbn";
107*397c619cSKrzysztof Kozlowski
108*397c619cSKrzysztof Kozlowski        interrupts-extended = <&intc GIC_SPI 162 IRQ_TYPE_LEVEL_HIGH>,
109*397c619cSKrzysztof Kozlowski                              <&smp2p_adsp_in 0 IRQ_TYPE_EDGE_RISING>,
110*397c619cSKrzysztof Kozlowski                              <&smp2p_adsp_in 1 IRQ_TYPE_EDGE_RISING>,
111*397c619cSKrzysztof Kozlowski                              <&smp2p_adsp_in 2 IRQ_TYPE_EDGE_RISING>,
112*397c619cSKrzysztof Kozlowski                              <&smp2p_adsp_in 3 IRQ_TYPE_EDGE_RISING>,
113*397c619cSKrzysztof Kozlowski                              <&smp2p_adsp_in 7 IRQ_TYPE_EDGE_RISING>;
114*397c619cSKrzysztof Kozlowski        interrupt-names = "wdog", "fatal", "ready",
115*397c619cSKrzysztof Kozlowski                          "handover", "stop-ack", "shutdown-ack";
116*397c619cSKrzysztof Kozlowski
117*397c619cSKrzysztof Kozlowski        memory-region = <&pil_adsp_mem>;
118*397c619cSKrzysztof Kozlowski
119*397c619cSKrzysztof Kozlowski        power-domains = <&rpmhpd SC8280XP_LCX>,
120*397c619cSKrzysztof Kozlowski                        <&rpmhpd SC8280XP_LMX>;
121*397c619cSKrzysztof Kozlowski        power-domain-names = "lcx", "lmx";
122*397c619cSKrzysztof Kozlowski
123*397c619cSKrzysztof Kozlowski        qcom,qmp = <&aoss_qmp>;
124*397c619cSKrzysztof Kozlowski        qcom,smem-states = <&smp2p_adsp_out 0>;
125*397c619cSKrzysztof Kozlowski        qcom,smem-state-names = "stop";
126*397c619cSKrzysztof Kozlowski
127*397c619cSKrzysztof Kozlowski        glink-edge {
128*397c619cSKrzysztof Kozlowski            interrupts-extended = <&ipcc IPCC_CLIENT_LPASS
129*397c619cSKrzysztof Kozlowski                                         IPCC_MPROC_SIGNAL_GLINK_QMP
130*397c619cSKrzysztof Kozlowski                                         IRQ_TYPE_EDGE_RISING>;
131*397c619cSKrzysztof Kozlowski            mboxes = <&ipcc IPCC_CLIENT_LPASS
132*397c619cSKrzysztof Kozlowski                            IPCC_MPROC_SIGNAL_GLINK_QMP>;
133*397c619cSKrzysztof Kozlowski
134*397c619cSKrzysztof Kozlowski            label = "lpass";
135*397c619cSKrzysztof Kozlowski            qcom,remote-pid = <2>;
136*397c619cSKrzysztof Kozlowski
137*397c619cSKrzysztof Kozlowski            /* ... */
138*397c619cSKrzysztof Kozlowski        };
139*397c619cSKrzysztof Kozlowski    };
140