xref: /freebsd/sys/contrib/device-tree/Bindings/clock/qcom,rpmcc.yaml (revision b2d2a78ad80ec68d4a17f5aef97d21686cb1e29b)
1d5b0e70fSEmmanuel Vadot# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
2d5b0e70fSEmmanuel Vadot%YAML 1.2
3d5b0e70fSEmmanuel Vadot---
4d5b0e70fSEmmanuel Vadot$id: http://devicetree.org/schemas/clock/qcom,rpmcc.yaml#
5d5b0e70fSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6d5b0e70fSEmmanuel Vadot
7d5b0e70fSEmmanuel Vadottitle: Qualcomm RPM Clock Controller
8d5b0e70fSEmmanuel Vadot
9d5b0e70fSEmmanuel Vadotmaintainers:
10d5b0e70fSEmmanuel Vadot  - Bjorn Andersson <bjorn.andersson@linaro.org>
11d5b0e70fSEmmanuel Vadot  - Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
12d5b0e70fSEmmanuel Vadot
13d5b0e70fSEmmanuel Vadotdescription: |
14d5b0e70fSEmmanuel Vadot  The clock enumerators are defined in <dt-bindings/clock/qcom,rpmcc.h> and
15d5b0e70fSEmmanuel Vadot  come in pairs:: FOO_CLK followed by FOO_A_CLK. The latter clock is
16d5b0e70fSEmmanuel Vadot  an "active" clock, which means that the consumer only care that the clock is
17d5b0e70fSEmmanuel Vadot  available when the apps CPU subsystem is active, i.e. not suspended or in
18d5b0e70fSEmmanuel Vadot  deep idle. If it is important that the clock keeps running during system
19d5b0e70fSEmmanuel Vadot  suspend, you need to specify the non-active clock, the one not containing
20d5b0e70fSEmmanuel Vadot  *_A_* in the enumerator name.
21d5b0e70fSEmmanuel Vadot
22d5b0e70fSEmmanuel Vadotproperties:
23d5b0e70fSEmmanuel Vadot  compatible:
24d5b0e70fSEmmanuel Vadot    items:
25d5b0e70fSEmmanuel Vadot      - enum:
26d5b0e70fSEmmanuel Vadot          - qcom,rpmcc-apq8060
27d5b0e70fSEmmanuel Vadot          - qcom,rpmcc-apq8064
28d5b0e70fSEmmanuel Vadot          - qcom,rpmcc-ipq806x
29d5b0e70fSEmmanuel Vadot          - qcom,rpmcc-mdm9607
30d5b0e70fSEmmanuel Vadot          - qcom,rpmcc-msm8226
31d5b0e70fSEmmanuel Vadot          - qcom,rpmcc-msm8660
327ef62cebSEmmanuel Vadot          - qcom,rpmcc-msm8909
33d5b0e70fSEmmanuel Vadot          - qcom,rpmcc-msm8916
34fac71e4eSEmmanuel Vadot          - qcom,rpmcc-msm8917
35d5b0e70fSEmmanuel Vadot          - qcom,rpmcc-msm8936
36d5b0e70fSEmmanuel Vadot          - qcom,rpmcc-msm8953
37d5b0e70fSEmmanuel Vadot          - qcom,rpmcc-msm8974
38d5b0e70fSEmmanuel Vadot          - qcom,rpmcc-msm8976
39d5b0e70fSEmmanuel Vadot          - qcom,rpmcc-msm8992
40d5b0e70fSEmmanuel Vadot          - qcom,rpmcc-msm8994
41d5b0e70fSEmmanuel Vadot          - qcom,rpmcc-msm8996
42d5b0e70fSEmmanuel Vadot          - qcom,rpmcc-msm8998
43d5b0e70fSEmmanuel Vadot          - qcom,rpmcc-qcm2290
44d5b0e70fSEmmanuel Vadot          - qcom,rpmcc-qcs404
45d5b0e70fSEmmanuel Vadot          - qcom,rpmcc-sdm660
46d5b0e70fSEmmanuel Vadot          - qcom,rpmcc-sm6115
47d5b0e70fSEmmanuel Vadot          - qcom,rpmcc-sm6125
487ef62cebSEmmanuel Vadot          - qcom,rpmcc-sm6375
49d5b0e70fSEmmanuel Vadot      - const: qcom,rpmcc
50d5b0e70fSEmmanuel Vadot
51d5b0e70fSEmmanuel Vadot  '#clock-cells':
52d5b0e70fSEmmanuel Vadot    const: 1
53d5b0e70fSEmmanuel Vadot
54d5b0e70fSEmmanuel Vadot  clocks:
55b97ee269SEmmanuel Vadot    minItems: 1
56b97ee269SEmmanuel Vadot    maxItems: 2
57d5b0e70fSEmmanuel Vadot
58d5b0e70fSEmmanuel Vadot  clock-names:
59b97ee269SEmmanuel Vadot    minItems: 1
60b97ee269SEmmanuel Vadot    maxItems: 2
61d5b0e70fSEmmanuel Vadot
62d5b0e70fSEmmanuel Vadotrequired:
63d5b0e70fSEmmanuel Vadot  - compatible
64d5b0e70fSEmmanuel Vadot  - '#clock-cells'
65d5b0e70fSEmmanuel Vadot
66b97ee269SEmmanuel VadotallOf:
67b97ee269SEmmanuel Vadot  - if:
68b97ee269SEmmanuel Vadot      properties:
69b97ee269SEmmanuel Vadot        compatible:
70b97ee269SEmmanuel Vadot          contains:
71b97ee269SEmmanuel Vadot            enum:
72b97ee269SEmmanuel Vadot              - qcom,rpmcc-apq8060
73b97ee269SEmmanuel Vadot              - qcom,rpmcc-ipq806x
74b97ee269SEmmanuel Vadot              - qcom,rpmcc-msm8660
75b97ee269SEmmanuel Vadot
76b97ee269SEmmanuel Vadot    then:
77b97ee269SEmmanuel Vadot      properties:
78b97ee269SEmmanuel Vadot        clocks:
79b97ee269SEmmanuel Vadot          items:
80b97ee269SEmmanuel Vadot            - description: pxo clock
81b97ee269SEmmanuel Vadot
82b97ee269SEmmanuel Vadot        clock-names:
83b97ee269SEmmanuel Vadot          items:
84b97ee269SEmmanuel Vadot            - const: pxo
85b97ee269SEmmanuel Vadot
86b97ee269SEmmanuel Vadot  - if:
87b97ee269SEmmanuel Vadot      properties:
88b97ee269SEmmanuel Vadot        compatible:
89b97ee269SEmmanuel Vadot          contains:
90b97ee269SEmmanuel Vadot            const: qcom,rpmcc-apq8064
91b97ee269SEmmanuel Vadot    then:
92b97ee269SEmmanuel Vadot      properties:
93b97ee269SEmmanuel Vadot        clocks:
94b97ee269SEmmanuel Vadot          items:
95b97ee269SEmmanuel Vadot            - description: pxo clock
96b97ee269SEmmanuel Vadot            - description: cxo clock
97b97ee269SEmmanuel Vadot
98b97ee269SEmmanuel Vadot        clock-names:
99b97ee269SEmmanuel Vadot          items:
100b97ee269SEmmanuel Vadot            - const: pxo
101b97ee269SEmmanuel Vadot            - const: cxo
102b97ee269SEmmanuel Vadot
103b97ee269SEmmanuel Vadot  - if:
104b97ee269SEmmanuel Vadot      properties:
105b97ee269SEmmanuel Vadot        compatible:
106b97ee269SEmmanuel Vadot          contains:
107b97ee269SEmmanuel Vadot            enum:
108b97ee269SEmmanuel Vadot              - qcom,rpmcc-mdm9607
109b97ee269SEmmanuel Vadot              - qcom,rpmcc-msm8226
110b97ee269SEmmanuel Vadot              - qcom,rpmcc-msm8916
111fac71e4eSEmmanuel Vadot              - qcom,rpmcc-msm8917
112b97ee269SEmmanuel Vadot              - qcom,rpmcc-msm8936
113b97ee269SEmmanuel Vadot              - qcom,rpmcc-msm8953
114b97ee269SEmmanuel Vadot              - qcom,rpmcc-msm8974
115b97ee269SEmmanuel Vadot              - qcom,rpmcc-msm8976
116b97ee269SEmmanuel Vadot              - qcom,rpmcc-msm8992
117b97ee269SEmmanuel Vadot              - qcom,rpmcc-msm8994
118b97ee269SEmmanuel Vadot              - qcom,rpmcc-msm8996
119b97ee269SEmmanuel Vadot              - qcom,rpmcc-msm8998
120b97ee269SEmmanuel Vadot              - qcom,rpmcc-qcm2290
121b97ee269SEmmanuel Vadot              - qcom,rpmcc-qcs404
122b97ee269SEmmanuel Vadot              - qcom,rpmcc-sdm660
123b97ee269SEmmanuel Vadot              - qcom,rpmcc-sm6115
124b97ee269SEmmanuel Vadot              - qcom,rpmcc-sm6125
125b97ee269SEmmanuel Vadot
126b97ee269SEmmanuel Vadot    then:
127b97ee269SEmmanuel Vadot      properties:
128b97ee269SEmmanuel Vadot        clocks:
129b97ee269SEmmanuel Vadot          items:
130b97ee269SEmmanuel Vadot            - description: xo clock
131b97ee269SEmmanuel Vadot
132b97ee269SEmmanuel Vadot        clock-names:
133b97ee269SEmmanuel Vadot          items:
134b97ee269SEmmanuel Vadot            - const: xo
135b97ee269SEmmanuel Vadot
136d5b0e70fSEmmanuel VadotadditionalProperties: false
137d5b0e70fSEmmanuel Vadot
138d5b0e70fSEmmanuel Vadotexamples:
139d5b0e70fSEmmanuel Vadot  - |
140d5b0e70fSEmmanuel Vadot    rpm {
141d5b0e70fSEmmanuel Vadot        rpm-requests {
142*b2d2a78aSEmmanuel Vadot            compatible = "qcom,rpm-msm8916", "qcom,smd-rpm";
143d5b0e70fSEmmanuel Vadot            qcom,smd-channels = "rpm_requests";
144d5b0e70fSEmmanuel Vadot
145d5b0e70fSEmmanuel Vadot            clock-controller {
146d5b0e70fSEmmanuel Vadot                compatible = "qcom,rpmcc-msm8916", "qcom,rpmcc";
147d5b0e70fSEmmanuel Vadot                #clock-cells = <1>;
148d5b0e70fSEmmanuel Vadot            };
149d5b0e70fSEmmanuel Vadot        };
150d5b0e70fSEmmanuel Vadot    };
151b97ee269SEmmanuel Vadot
152b97ee269SEmmanuel Vadot  - |
153b97ee269SEmmanuel Vadot    rpm {
154b97ee269SEmmanuel Vadot        clock-controller {
155b97ee269SEmmanuel Vadot            compatible = "qcom,rpmcc-ipq806x", "qcom,rpmcc";
156b97ee269SEmmanuel Vadot            #clock-cells = <1>;
157b97ee269SEmmanuel Vadot            clocks = <&pxo_board>;
158b97ee269SEmmanuel Vadot            clock-names = "pxo";
159b97ee269SEmmanuel Vadot        };
160b97ee269SEmmanuel Vadot    };
161