xref: /freebsd/sys/contrib/device-tree/Bindings/mailbox/qcom,apcs-kpss-global.yaml (revision 8d13bc63c0e1d50bc9e47ac1f26329c999bfecf0)
1c66ec88fSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2c66ec88fSEmmanuel Vadot%YAML 1.2
3c66ec88fSEmmanuel Vadot---
4fac71e4eSEmmanuel Vadot$id: http://devicetree.org/schemas/mailbox/qcom,apcs-kpss-global.yaml#
5fac71e4eSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6c66ec88fSEmmanuel Vadot
78bab661aSEmmanuel Vadottitle: Qualcomm APCS global block
8c66ec88fSEmmanuel Vadot
9c66ec88fSEmmanuel Vadotdescription:
10c66ec88fSEmmanuel Vadot  This binding describes the APCS "global" block found in various Qualcomm
11c66ec88fSEmmanuel Vadot  platforms.
12c66ec88fSEmmanuel Vadot
13c66ec88fSEmmanuel Vadotmaintainers:
148cc087a1SEmmanuel Vadot  - Jassi Brar <jassisinghbrar@gmail.com>
15c66ec88fSEmmanuel Vadot
16c66ec88fSEmmanuel Vadotproperties:
17c66ec88fSEmmanuel Vadot  compatible:
18b97ee269SEmmanuel Vadot    oneOf:
19b97ee269SEmmanuel Vadot      - items:
20b97ee269SEmmanuel Vadot          - enum:
21f126890aSEmmanuel Vadot              - qcom,ipq5018-apcs-apps-global
22cb7aa33aSEmmanuel Vadot              - qcom,ipq5332-apcs-apps-global
23fac71e4eSEmmanuel Vadot              - qcom,ipq8074-apcs-apps-global
24fac71e4eSEmmanuel Vadot              - qcom,ipq9574-apcs-apps-global
25cb7aa33aSEmmanuel Vadot          - const: qcom,ipq6018-apcs-apps-global
26cb7aa33aSEmmanuel Vadot      - items:
27cb7aa33aSEmmanuel Vadot          - enum:
28*8d13bc63SEmmanuel Vadot              - qcom,qcs404-apcs-apps-global
29*8d13bc63SEmmanuel Vadot          - const: qcom,msm8916-apcs-kpss-global
30*8d13bc63SEmmanuel Vadot          - const: syscon
31*8d13bc63SEmmanuel Vadot      - items:
32*8d13bc63SEmmanuel Vadot          - enum:
33*8d13bc63SEmmanuel Vadot              - qcom,msm8976-apcs-kpss-global
34*8d13bc63SEmmanuel Vadot          - const: qcom,msm8994-apcs-kpss-global
35*8d13bc63SEmmanuel Vadot          - const: syscon
36*8d13bc63SEmmanuel Vadot      - items:
37*8d13bc63SEmmanuel Vadot          - enum:
38*8d13bc63SEmmanuel Vadot              - qcom,msm8998-apcs-hmss-global
39*8d13bc63SEmmanuel Vadot              - qcom,sdm660-apcs-hmss-global
40*8d13bc63SEmmanuel Vadot              - qcom,sm4250-apcs-hmss-global
41*8d13bc63SEmmanuel Vadot              - qcom,sm6115-apcs-hmss-global
42*8d13bc63SEmmanuel Vadot              - qcom,sm6125-apcs-hmss-global
43*8d13bc63SEmmanuel Vadot          - const: qcom,msm8994-apcs-kpss-global
44*8d13bc63SEmmanuel Vadot      - items:
45*8d13bc63SEmmanuel Vadot          - enum:
46c66ec88fSEmmanuel Vadot              - qcom,sc7180-apss-shared
475def4c47SEmmanuel Vadot              - qcom,sc8180x-apss-shared
48c66ec88fSEmmanuel Vadot              - qcom,sm8150-apss-shared
49fac71e4eSEmmanuel Vadot          - const: qcom,sdm845-apss-shared
50b97ee269SEmmanuel Vadot      - items:
51b97ee269SEmmanuel Vadot          - enum:
52b97ee269SEmmanuel Vadot              - qcom,msm8916-apcs-kpss-global
53b97ee269SEmmanuel Vadot              - qcom,msm8939-apcs-kpss-global
54b97ee269SEmmanuel Vadot              - qcom,msm8953-apcs-kpss-global
55b97ee269SEmmanuel Vadot              - qcom,msm8994-apcs-kpss-global
56cb7aa33aSEmmanuel Vadot              - qcom,sdx55-apcs-gcc
57b97ee269SEmmanuel Vadot          - const: syscon
58fac71e4eSEmmanuel Vadot      - enum:
59fac71e4eSEmmanuel Vadot          - qcom,ipq6018-apcs-apps-global
60fac71e4eSEmmanuel Vadot          - qcom,msm8996-apcs-hmss-global
61fac71e4eSEmmanuel Vadot          - qcom,qcm2290-apcs-hmss-global
62fac71e4eSEmmanuel Vadot          - qcom,sdm845-apss-shared
63fac71e4eSEmmanuel Vadot
64c66ec88fSEmmanuel Vadot  reg:
65c66ec88fSEmmanuel Vadot    maxItems: 1
66c66ec88fSEmmanuel Vadot
67c66ec88fSEmmanuel Vadot  clocks:
68c66ec88fSEmmanuel Vadot    description: phandles to the parent clocks of the clock driver
695def4c47SEmmanuel Vadot    minItems: 2
707ef62cebSEmmanuel Vadot    maxItems: 3
71c66ec88fSEmmanuel Vadot
72c66ec88fSEmmanuel Vadot  '#mbox-cells':
73c66ec88fSEmmanuel Vadot    const: 1
74c66ec88fSEmmanuel Vadot
75c66ec88fSEmmanuel Vadot  '#clock-cells':
767ef62cebSEmmanuel Vadot    enum: [0, 1]
77c66ec88fSEmmanuel Vadot
78c66ec88fSEmmanuel Vadot  clock-names:
795def4c47SEmmanuel Vadot    minItems: 2
807ef62cebSEmmanuel Vadot    maxItems: 3
81c66ec88fSEmmanuel Vadot
82c66ec88fSEmmanuel Vadotrequired:
83c66ec88fSEmmanuel Vadot  - compatible
84c66ec88fSEmmanuel Vadot  - reg
85c66ec88fSEmmanuel Vadot  - '#mbox-cells'
86c66ec88fSEmmanuel Vadot
87c66ec88fSEmmanuel VadotadditionalProperties: false
88c66ec88fSEmmanuel Vadot
895def4c47SEmmanuel VadotallOf:
905def4c47SEmmanuel Vadot  - if:
915def4c47SEmmanuel Vadot      properties:
925def4c47SEmmanuel Vadot        compatible:
93*8d13bc63SEmmanuel Vadot          contains:
945def4c47SEmmanuel Vadot            enum:
955def4c47SEmmanuel Vadot              - qcom,msm8916-apcs-kpss-global
965def4c47SEmmanuel Vadot    then:
975def4c47SEmmanuel Vadot      properties:
985def4c47SEmmanuel Vadot        clocks:
997ef62cebSEmmanuel Vadot          items:
1007ef62cebSEmmanuel Vadot            - description: primary pll parent of the clock driver
1017ef62cebSEmmanuel Vadot            - description: auxiliary parent
1027ef62cebSEmmanuel Vadot        clock-names:
1037ef62cebSEmmanuel Vadot          items:
1047ef62cebSEmmanuel Vadot            - const: pll
1057ef62cebSEmmanuel Vadot            - const: aux
106fac71e4eSEmmanuel Vadot
1075def4c47SEmmanuel Vadot  - if:
1085def4c47SEmmanuel Vadot      properties:
1095def4c47SEmmanuel Vadot        compatible:
110fac71e4eSEmmanuel Vadot          contains:
1115def4c47SEmmanuel Vadot            enum:
112*8d13bc63SEmmanuel Vadot              - qcom,msm8939-apcs-kpss-global
113*8d13bc63SEmmanuel Vadot    then:
114*8d13bc63SEmmanuel Vadot      properties:
115*8d13bc63SEmmanuel Vadot        clocks:
116*8d13bc63SEmmanuel Vadot          items:
117*8d13bc63SEmmanuel Vadot            - description: primary pll parent of the clock driver
118*8d13bc63SEmmanuel Vadot            - description: auxiliary parent
119*8d13bc63SEmmanuel Vadot            - description: reference clock
120*8d13bc63SEmmanuel Vadot        clock-names:
121*8d13bc63SEmmanuel Vadot          items:
122*8d13bc63SEmmanuel Vadot            - const: pll
123*8d13bc63SEmmanuel Vadot            - const: aux
124*8d13bc63SEmmanuel Vadot            - const: ref
125*8d13bc63SEmmanuel Vadot
126*8d13bc63SEmmanuel Vadot  - if:
127*8d13bc63SEmmanuel Vadot      properties:
128*8d13bc63SEmmanuel Vadot        compatible:
129*8d13bc63SEmmanuel Vadot          contains:
130*8d13bc63SEmmanuel Vadot            enum:
1315def4c47SEmmanuel Vadot              - qcom,sdx55-apcs-gcc
1325def4c47SEmmanuel Vadot    then:
1335def4c47SEmmanuel Vadot      properties:
1345def4c47SEmmanuel Vadot        clocks:
1357ef62cebSEmmanuel Vadot          items:
136fac71e4eSEmmanuel Vadot            - description: reference clock
1377ef62cebSEmmanuel Vadot            - description: primary pll parent of the clock driver
1387ef62cebSEmmanuel Vadot            - description: auxiliary parent
1397ef62cebSEmmanuel Vadot        clock-names:
1407ef62cebSEmmanuel Vadot          items:
141fac71e4eSEmmanuel Vadot            - const: ref
1427ef62cebSEmmanuel Vadot            - const: pll
1437ef62cebSEmmanuel Vadot            - const: aux
144*8d13bc63SEmmanuel Vadot
1457ef62cebSEmmanuel Vadot  - if:
1467ef62cebSEmmanuel Vadot      properties:
1477ef62cebSEmmanuel Vadot        compatible:
148cb7aa33aSEmmanuel Vadot          contains:
1497ef62cebSEmmanuel Vadot            enum:
1507ef62cebSEmmanuel Vadot              - qcom,ipq6018-apcs-apps-global
1517ef62cebSEmmanuel Vadot    then:
1527ef62cebSEmmanuel Vadot      properties:
1537ef62cebSEmmanuel Vadot        clocks:
1547ef62cebSEmmanuel Vadot          items:
1557ef62cebSEmmanuel Vadot            - description: primary pll parent of the clock driver
1567ef62cebSEmmanuel Vadot            - description: XO clock
15784943d6fSEmmanuel Vadot            - description: GCC GPLL0 clock source
1587ef62cebSEmmanuel Vadot        clock-names:
1597ef62cebSEmmanuel Vadot          items:
1607ef62cebSEmmanuel Vadot            - const: pll
1617ef62cebSEmmanuel Vadot            - const: xo
16284943d6fSEmmanuel Vadot            - const: gpll0
163cb7aa33aSEmmanuel Vadot
1647ef62cebSEmmanuel Vadot  - if:
1657ef62cebSEmmanuel Vadot      properties:
1667ef62cebSEmmanuel Vadot        compatible:
1677ef62cebSEmmanuel Vadot          enum:
168cb7aa33aSEmmanuel Vadot            - qcom,msm8953-apcs-kpss-global
169cb7aa33aSEmmanuel Vadot            - qcom,msm8994-apcs-kpss-global
170cb7aa33aSEmmanuel Vadot            - qcom,msm8996-apcs-hmss-global
171cb7aa33aSEmmanuel Vadot            - qcom,qcm2290-apcs-hmss-global
172cb7aa33aSEmmanuel Vadot            - qcom,sdm845-apss-shared
173cb7aa33aSEmmanuel Vadot    then:
174cb7aa33aSEmmanuel Vadot      properties:
175cb7aa33aSEmmanuel Vadot        clocks: false
176cb7aa33aSEmmanuel Vadot        clock-names: false
177cb7aa33aSEmmanuel Vadot
178cb7aa33aSEmmanuel Vadot  - if:
179cb7aa33aSEmmanuel Vadot      properties:
180cb7aa33aSEmmanuel Vadot        compatible:
181cb7aa33aSEmmanuel Vadot          contains:
182cb7aa33aSEmmanuel Vadot            enum:
1837ef62cebSEmmanuel Vadot              - qcom,ipq6018-apcs-apps-global
1847ef62cebSEmmanuel Vadot    then:
1857ef62cebSEmmanuel Vadot      properties:
1867ef62cebSEmmanuel Vadot        '#clock-cells':
1877ef62cebSEmmanuel Vadot          const: 1
1887ef62cebSEmmanuel Vadot    else:
1897ef62cebSEmmanuel Vadot      properties:
1907ef62cebSEmmanuel Vadot        '#clock-cells':
1917ef62cebSEmmanuel Vadot          const: 0
1927ef62cebSEmmanuel Vadot
193c66ec88fSEmmanuel Vadotexamples:
194c66ec88fSEmmanuel Vadot
195c66ec88fSEmmanuel Vadot  # Example apcs with msm8996
196c66ec88fSEmmanuel Vadot  - |
197c66ec88fSEmmanuel Vadot    #include <dt-bindings/interrupt-controller/arm-gic.h>
198c66ec88fSEmmanuel Vadot    apcs_glb: mailbox@9820000 {
199c66ec88fSEmmanuel Vadot        compatible = "qcom,msm8996-apcs-hmss-global";
200c66ec88fSEmmanuel Vadot        reg = <0x9820000 0x1000>;
201c66ec88fSEmmanuel Vadot
202c66ec88fSEmmanuel Vadot        #mbox-cells = <1>;
203cb7aa33aSEmmanuel Vadot        #clock-cells = <0>;
204c66ec88fSEmmanuel Vadot    };
205c66ec88fSEmmanuel Vadot
206c66ec88fSEmmanuel Vadot    rpm-glink {
207c66ec88fSEmmanuel Vadot        compatible = "qcom,glink-rpm";
208c66ec88fSEmmanuel Vadot        interrupts = <GIC_SPI 168 IRQ_TYPE_EDGE_RISING>;
209c66ec88fSEmmanuel Vadot        qcom,rpm-msg-ram = <&rpm_msg_ram>;
210c66ec88fSEmmanuel Vadot        mboxes = <&apcs_glb 0>;
211c66ec88fSEmmanuel Vadot    };
212c66ec88fSEmmanuel Vadot
213c66ec88fSEmmanuel Vadot  # Example apcs with qcs404
214c66ec88fSEmmanuel Vadot  - |
215c66ec88fSEmmanuel Vadot    #define GCC_APSS_AHB_CLK_SRC  1
216c66ec88fSEmmanuel Vadot    #define GCC_GPLL0_AO_OUT_MAIN 123
217c66ec88fSEmmanuel Vadot    apcs: mailbox@b011000 {
218*8d13bc63SEmmanuel Vadot        compatible = "qcom,qcs404-apcs-apps-global",
219*8d13bc63SEmmanuel Vadot                     "qcom,msm8916-apcs-kpss-global", "syscon";
220c66ec88fSEmmanuel Vadot        reg = <0x0b011000 0x1000>;
221c66ec88fSEmmanuel Vadot        #mbox-cells = <1>;
222c66ec88fSEmmanuel Vadot        clocks = <&apcs_hfpll>, <&gcc GCC_GPLL0_AO_OUT_MAIN>;
223c66ec88fSEmmanuel Vadot        clock-names = "pll", "aux";
224c66ec88fSEmmanuel Vadot        #clock-cells = <0>;
225c66ec88fSEmmanuel Vadot    };
226