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