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 bindings
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    enum:
19      - qcom,ipq6018-apcs-apps-global
20      - qcom,ipq8074-apcs-apps-global
21      - qcom,msm8916-apcs-kpss-global
22      - qcom,msm8939-apcs-kpss-global
23      - qcom,msm8953-apcs-kpss-global
24      - qcom,msm8976-apcs-kpss-global
25      - qcom,msm8994-apcs-kpss-global
26      - qcom,msm8996-apcs-hmss-global
27      - qcom,msm8998-apcs-hmss-global
28      - qcom,qcm2290-apcs-hmss-global
29      - qcom,qcs404-apcs-apps-global
30      - qcom,sc7180-apss-shared
31      - qcom,sc8180x-apss-shared
32      - qcom,sdm660-apcs-hmss-global
33      - qcom,sdm845-apss-shared
34      - qcom,sm6125-apcs-hmss-global
35      - qcom,sm6115-apcs-hmss-global
36      - qcom,sm8150-apss-shared
37
38  reg:
39    maxItems: 1
40
41  clocks:
42    description: phandles to the parent clocks of the clock driver
43    minItems: 2
44    items:
45      - description: primary pll parent of the clock driver
46      - description: auxiliary parent
47      - description: reference clock
48
49  '#mbox-cells':
50    const: 1
51
52  '#clock-cells':
53    const: 0
54
55  clock-names:
56    minItems: 2
57    items:
58      - const: pll
59      - const: aux
60      - const: ref
61
62required:
63  - compatible
64  - reg
65  - '#mbox-cells'
66
67additionalProperties: false
68
69allOf:
70  - if:
71      properties:
72        compatible:
73          enum:
74            - qcom,ipq6018-apcs-apps-global
75            - qcom,ipq8074-apcs-apps-global
76            - qcom,msm8916-apcs-kpss-global
77            - qcom,msm8994-apcs-kpss-global
78            - qcom,msm8996-apcs-hmss-global
79            - qcom,msm8998-apcs-hmss-global
80            - qcom,qcs404-apcs-apps-global
81            - qcom,sc7180-apss-shared
82            - qcom,sdm660-apcs-hmss-global
83            - qcom,sdm845-apss-shared
84            - qcom,sm6125-apcs-hmss-global
85            - qcom,sm8150-apss-shared
86    then:
87      properties:
88        clocks:
89          maxItems: 2
90  - if:
91      properties:
92        compatible:
93          enum:
94            - qcom,sdx55-apcs-gcc
95    then:
96      properties:
97        clocks:
98          maxItems: 3
99examples:
100
101  # Example apcs with msm8996
102  - |
103    #include <dt-bindings/interrupt-controller/arm-gic.h>
104    apcs_glb: mailbox@9820000 {
105        compatible = "qcom,msm8996-apcs-hmss-global";
106        reg = <0x9820000 0x1000>;
107
108        #mbox-cells = <1>;
109    };
110
111    rpm-glink {
112        compatible = "qcom,glink-rpm";
113        interrupts = <GIC_SPI 168 IRQ_TYPE_EDGE_RISING>;
114        qcom,rpm-msg-ram = <&rpm_msg_ram>;
115        mboxes = <&apcs_glb 0>;
116        mbox-names = "rpm_hlos";
117    };
118
119  # Example apcs with qcs404
120  - |
121    #define GCC_APSS_AHB_CLK_SRC  1
122    #define GCC_GPLL0_AO_OUT_MAIN 123
123    apcs: mailbox@b011000 {
124        compatible = "qcom,qcs404-apcs-apps-global";
125        reg = <0x0b011000 0x1000>;
126        #mbox-cells = <1>;
127        clocks = <&apcs_hfpll>, <&gcc GCC_GPLL0_AO_OUT_MAIN>;
128        clock-names = "pll", "aux";
129        #clock-cells = <0>;
130    };
131