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