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