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