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