982bcdebba4c317290de013171f46e13aa003aba
[platform/kernel/linux-rpi.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     items:
49       - description: primary pll parent of the clock driver
50       - description: auxiliary parent
51       - description: reference clock
52
53   '#mbox-cells':
54     const: 1
55
56   '#clock-cells':
57     enum: [0, 1]
58
59   clock-names:
60     minItems: 2
61     items:
62       - const: pll
63       - const: aux
64       - const: ref
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,ipq6018-apcs-apps-global
79             - qcom,ipq8074-apcs-apps-global
80             - qcom,msm8916-apcs-kpss-global
81             - qcom,msm8994-apcs-kpss-global
82             - qcom,msm8996-apcs-hmss-global
83             - qcom,msm8998-apcs-hmss-global
84             - qcom,qcs404-apcs-apps-global
85             - qcom,sc7180-apss-shared
86             - qcom,sdm660-apcs-hmss-global
87             - qcom,sdm845-apss-shared
88             - qcom,sm6125-apcs-hmss-global
89             - qcom,sm8150-apss-shared
90     then:
91       properties:
92         clocks:
93           maxItems: 2
94   - if:
95       properties:
96         compatible:
97           enum:
98             - qcom,sdx55-apcs-gcc
99     then:
100       properties:
101         clocks:
102           maxItems: 3
103   - if:
104       properties:
105         compatible:
106           enum:
107             - qcom,ipq6018-apcs-apps-global
108             - qcom,ipq8074-apcs-apps-global
109     then:
110       properties:
111         '#clock-cells':
112           const: 1
113     else:
114       properties:
115         '#clock-cells':
116           const: 0
117
118 examples:
119
120   # Example apcs with msm8996
121   - |
122     #include <dt-bindings/interrupt-controller/arm-gic.h>
123     apcs_glb: mailbox@9820000 {
124         compatible = "qcom,msm8996-apcs-hmss-global";
125         reg = <0x9820000 0x1000>;
126
127         #mbox-cells = <1>;
128     };
129
130     rpm-glink {
131         compatible = "qcom,glink-rpm";
132         interrupts = <GIC_SPI 168 IRQ_TYPE_EDGE_RISING>;
133         qcom,rpm-msg-ram = <&rpm_msg_ram>;
134         mboxes = <&apcs_glb 0>;
135         mbox-names = "rpm_hlos";
136     };
137
138   # Example apcs with qcs404
139   - |
140     #define GCC_APSS_AHB_CLK_SRC  1
141     #define GCC_GPLL0_AO_OUT_MAIN 123
142     apcs: mailbox@b011000 {
143         compatible = "qcom,qcs404-apcs-apps-global", "syscon";
144         reg = <0x0b011000 0x1000>;
145         #mbox-cells = <1>;
146         clocks = <&apcs_hfpll>, <&gcc GCC_GPLL0_AO_OUT_MAIN>;
147         clock-names = "pll", "aux";
148         #clock-cells = <0>;
149     };