GNU Linux-libre 6.8.9-gnu
[releases.git] / Documentation / devicetree / bindings / mailbox / qcom,apcs-kpss-global.yaml
1 # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2 %YAML 1.2
3 ---
4 $id: http://devicetree.org/schemas/mailbox/qcom,apcs-kpss-global.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
6
7 title: Qualcomm APCS global block
8
9 description:
10   This binding describes the APCS "global" block found in various Qualcomm
11   platforms.
12
13 maintainers:
14   - Jassi Brar <jassisinghbrar@gmail.com>
15
16 properties:
17   compatible:
18     oneOf:
19       - items:
20           - enum:
21               - qcom,ipq5018-apcs-apps-global
22               - qcom,ipq5332-apcs-apps-global
23               - qcom,ipq8074-apcs-apps-global
24               - qcom,ipq9574-apcs-apps-global
25           - const: qcom,ipq6018-apcs-apps-global
26       - items:
27           - enum:
28               - qcom,qcs404-apcs-apps-global
29           - const: qcom,msm8916-apcs-kpss-global
30           - const: syscon
31       - items:
32           - enum:
33               - qcom,msm8976-apcs-kpss-global
34           - const: qcom,msm8994-apcs-kpss-global
35           - const: syscon
36       - items:
37           - enum:
38               - qcom,msm8998-apcs-hmss-global
39               - qcom,sdm660-apcs-hmss-global
40               - qcom,sm4250-apcs-hmss-global
41               - qcom,sm6115-apcs-hmss-global
42               - qcom,sm6125-apcs-hmss-global
43           - const: qcom,msm8994-apcs-kpss-global
44       - items:
45           - enum:
46               - qcom,sc7180-apss-shared
47               - qcom,sc8180x-apss-shared
48               - qcom,sm8150-apss-shared
49           - const: qcom,sdm845-apss-shared
50       - items:
51           - enum:
52               - qcom,msm8916-apcs-kpss-global
53               - qcom,msm8939-apcs-kpss-global
54               - qcom,msm8953-apcs-kpss-global
55               - qcom,msm8994-apcs-kpss-global
56               - qcom,sdx55-apcs-gcc
57           - const: syscon
58       - enum:
59           - qcom,ipq6018-apcs-apps-global
60           - qcom,msm8996-apcs-hmss-global
61           - qcom,qcm2290-apcs-hmss-global
62           - qcom,sdm845-apss-shared
63
64   reg:
65     maxItems: 1
66
67   clocks:
68     description: phandles to the parent clocks of the clock driver
69     minItems: 2
70     maxItems: 3
71
72   '#mbox-cells':
73     const: 1
74
75   '#clock-cells':
76     enum: [0, 1]
77
78   clock-names:
79     minItems: 2
80     maxItems: 3
81
82 required:
83   - compatible
84   - reg
85   - '#mbox-cells'
86
87 additionalProperties: false
88
89 allOf:
90   - if:
91       properties:
92         compatible:
93           contains:
94             enum:
95               - qcom,msm8916-apcs-kpss-global
96     then:
97       properties:
98         clocks:
99           items:
100             - description: primary pll parent of the clock driver
101             - description: auxiliary parent
102         clock-names:
103           items:
104             - const: pll
105             - const: aux
106
107   - if:
108       properties:
109         compatible:
110           contains:
111             enum:
112               - qcom,msm8939-apcs-kpss-global
113     then:
114       properties:
115         clocks:
116           items:
117             - description: primary pll parent of the clock driver
118             - description: auxiliary parent
119             - description: reference clock
120         clock-names:
121           items:
122             - const: pll
123             - const: aux
124             - const: ref
125
126   - if:
127       properties:
128         compatible:
129           contains:
130             enum:
131               - qcom,sdx55-apcs-gcc
132     then:
133       properties:
134         clocks:
135           items:
136             - description: reference clock
137             - description: primary pll parent of the clock driver
138             - description: auxiliary parent
139         clock-names:
140           items:
141             - const: ref
142             - const: pll
143             - const: aux
144
145   - if:
146       properties:
147         compatible:
148           contains:
149             enum:
150               - qcom,ipq6018-apcs-apps-global
151     then:
152       properties:
153         clocks:
154           items:
155             - description: primary pll parent of the clock driver
156             - description: XO clock
157             - description: GCC GPLL0 clock source
158         clock-names:
159           items:
160             - const: pll
161             - const: xo
162             - const: gpll0
163
164   - if:
165       properties:
166         compatible:
167           enum:
168             - qcom,msm8953-apcs-kpss-global
169             - qcom,msm8994-apcs-kpss-global
170             - qcom,msm8996-apcs-hmss-global
171             - qcom,qcm2290-apcs-hmss-global
172             - qcom,sdm845-apss-shared
173     then:
174       properties:
175         clocks: false
176         clock-names: false
177
178   - if:
179       properties:
180         compatible:
181           contains:
182             enum:
183               - qcom,ipq6018-apcs-apps-global
184     then:
185       properties:
186         '#clock-cells':
187           const: 1
188     else:
189       properties:
190         '#clock-cells':
191           const: 0
192
193 examples:
194
195   # Example apcs with msm8996
196   - |
197     #include <dt-bindings/interrupt-controller/arm-gic.h>
198     apcs_glb: mailbox@9820000 {
199         compatible = "qcom,msm8996-apcs-hmss-global";
200         reg = <0x9820000 0x1000>;
201
202         #mbox-cells = <1>;
203         #clock-cells = <0>;
204     };
205
206     rpm-glink {
207         compatible = "qcom,glink-rpm";
208         interrupts = <GIC_SPI 168 IRQ_TYPE_EDGE_RISING>;
209         qcom,rpm-msg-ram = <&rpm_msg_ram>;
210         mboxes = <&apcs_glb 0>;
211     };
212
213   # Example apcs with qcs404
214   - |
215     #define GCC_APSS_AHB_CLK_SRC  1
216     #define GCC_GPLL0_AO_OUT_MAIN 123
217     apcs: mailbox@b011000 {
218         compatible = "qcom,qcs404-apcs-apps-global",
219                      "qcom,msm8916-apcs-kpss-global", "syscon";
220         reg = <0x0b011000 0x1000>;
221         #mbox-cells = <1>;
222         clocks = <&apcs_hfpll>, <&gcc GCC_GPLL0_AO_OUT_MAIN>;
223         clock-names = "pll", "aux";
224         #clock-cells = <0>;
225     };