Merge tag 'rproc-v6.3' of git://git.kernel.org/pub/scm/linux/kernel/git/remoteproc...
[linux-block.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,ipq5332-apcs-apps-global
22           - const: qcom,ipq6018-apcs-apps-global
23       - items:
24           - enum:
25               - qcom,ipq6018-apcs-apps-global
26               - qcom,ipq8074-apcs-apps-global
27               - qcom,msm8996-apcs-hmss-global
28               - qcom,msm8998-apcs-hmss-global
29               - qcom,qcm2290-apcs-hmss-global
30               - qcom,sc7180-apss-shared
31               - qcom,sc8180x-apss-shared
32               - qcom,sdm660-apcs-hmss-global
33               - qcom,sdm845-apss-shared
34               - qcom,sm4250-apcs-hmss-global
35               - qcom,sm6125-apcs-hmss-global
36               - qcom,sm6115-apcs-hmss-global
37               - qcom,sm8150-apss-shared
38       - items:
39           - enum:
40               - qcom,msm8916-apcs-kpss-global
41               - qcom,msm8939-apcs-kpss-global
42               - qcom,msm8953-apcs-kpss-global
43               - qcom,msm8976-apcs-kpss-global
44               - qcom,msm8994-apcs-kpss-global
45               - qcom,qcs404-apcs-apps-global
46               - qcom,sdx55-apcs-gcc
47           - const: syscon
48   reg:
49     maxItems: 1
50
51   clocks:
52     description: phandles to the parent clocks of the clock driver
53     minItems: 2
54     maxItems: 3
55
56   '#mbox-cells':
57     const: 1
58
59   '#clock-cells':
60     enum: [0, 1]
61
62   clock-names:
63     minItems: 2
64     maxItems: 3
65
66 required:
67   - compatible
68   - reg
69   - '#mbox-cells'
70
71 additionalProperties: false
72
73 allOf:
74   - if:
75       properties:
76         compatible:
77           enum:
78             - qcom,msm8916-apcs-kpss-global
79             - qcom,msm8939-apcs-kpss-global
80             - qcom,qcs404-apcs-apps-global
81     then:
82       properties:
83         clocks:
84           items:
85             - description: primary pll parent of the clock driver
86             - description: auxiliary parent
87         clock-names:
88           items:
89             - const: pll
90             - const: aux
91   - if:
92       properties:
93         compatible:
94           enum:
95             - qcom,sdx55-apcs-gcc
96     then:
97       properties:
98         clocks:
99           items:
100             - description: primary pll parent of the clock driver
101             - description: auxiliary parent
102             - description: reference clock
103         clock-names:
104           items:
105             - const: pll
106             - const: aux
107             - const: ref
108   - if:
109       properties:
110         compatible:
111           contains:
112             enum:
113               - qcom,ipq6018-apcs-apps-global
114               - qcom,ipq8074-apcs-apps-global
115     then:
116       properties:
117         clocks:
118           items:
119             - description: primary pll parent of the clock driver
120             - description: XO clock
121         clock-names:
122           items:
123             - const: pll
124             - const: xo
125
126   - if:
127       properties:
128         compatible:
129           enum:
130             - qcom,msm8953-apcs-kpss-global
131             - qcom,msm8976-apcs-kpss-global
132             - qcom,msm8994-apcs-kpss-global
133             - qcom,msm8996-apcs-hmss-global
134             - qcom,msm8998-apcs-hmss-global
135             - qcom,qcm2290-apcs-hmss-global
136             - qcom,sc7180-apss-shared
137             - qcom,sc8180x-apss-shared
138             - qcom,sdm660-apcs-hmss-global
139             - qcom,sdm845-apss-shared
140             - qcom,sm4250-apcs-hmss-global
141             - qcom,sm6115-apcs-hmss-global
142             - qcom,sm6125-apcs-hmss-global
143             - qcom,sm8150-apss-shared
144     then:
145       properties:
146         clocks: false
147         clock-names: false
148
149   - if:
150       properties:
151         compatible:
152           contains:
153             enum:
154               - qcom,ipq6018-apcs-apps-global
155               - qcom,ipq8074-apcs-apps-global
156     then:
157       properties:
158         '#clock-cells':
159           const: 1
160     else:
161       properties:
162         '#clock-cells':
163           const: 0
164
165 examples:
166
167   # Example apcs with msm8996
168   - |
169     #include <dt-bindings/interrupt-controller/arm-gic.h>
170     apcs_glb: mailbox@9820000 {
171         compatible = "qcom,msm8996-apcs-hmss-global";
172         reg = <0x9820000 0x1000>;
173
174         #mbox-cells = <1>;
175         #clock-cells = <0>;
176     };
177
178     rpm-glink {
179         compatible = "qcom,glink-rpm";
180         interrupts = <GIC_SPI 168 IRQ_TYPE_EDGE_RISING>;
181         qcom,rpm-msg-ram = <&rpm_msg_ram>;
182         mboxes = <&apcs_glb 0>;
183     };
184
185   # Example apcs with qcs404
186   - |
187     #define GCC_APSS_AHB_CLK_SRC  1
188     #define GCC_GPLL0_AO_OUT_MAIN 123
189     apcs: mailbox@b011000 {
190         compatible = "qcom,qcs404-apcs-apps-global", "syscon";
191         reg = <0x0b011000 0x1000>;
192         #mbox-cells = <1>;
193         clocks = <&apcs_hfpll>, <&gcc GCC_GPLL0_AO_OUT_MAIN>;
194         clock-names = "pll", "aux";
195         #clock-cells = <0>;
196     };