xref: /freebsd/sys/contrib/device-tree/Bindings/clock/qcom,rpmcc.yaml (revision 7ef62cebc2f965b0f640263e179276928885e33d)
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
32*7ef62cebSEmmanuel Vadot          - qcom,rpmcc-msm8909
33d5b0e70fSEmmanuel Vadot          - qcom,rpmcc-msm8916
34d5b0e70fSEmmanuel Vadot          - qcom,rpmcc-msm8936
35d5b0e70fSEmmanuel Vadot          - qcom,rpmcc-msm8953
36d5b0e70fSEmmanuel Vadot          - qcom,rpmcc-msm8974
37d5b0e70fSEmmanuel Vadot          - qcom,rpmcc-msm8976
38d5b0e70fSEmmanuel Vadot          - qcom,rpmcc-msm8992
39d5b0e70fSEmmanuel Vadot          - qcom,rpmcc-msm8994
40d5b0e70fSEmmanuel Vadot          - qcom,rpmcc-msm8996
41d5b0e70fSEmmanuel Vadot          - qcom,rpmcc-msm8998
42d5b0e70fSEmmanuel Vadot          - qcom,rpmcc-qcm2290
43d5b0e70fSEmmanuel Vadot          - qcom,rpmcc-qcs404
44d5b0e70fSEmmanuel Vadot          - qcom,rpmcc-sdm660
45d5b0e70fSEmmanuel Vadot          - qcom,rpmcc-sm6115
46d5b0e70fSEmmanuel Vadot          - qcom,rpmcc-sm6125
47*7ef62cebSEmmanuel Vadot          - qcom,rpmcc-sm6375
48d5b0e70fSEmmanuel Vadot      - const: qcom,rpmcc
49d5b0e70fSEmmanuel Vadot
50d5b0e70fSEmmanuel Vadot  '#clock-cells':
51d5b0e70fSEmmanuel Vadot    const: 1
52d5b0e70fSEmmanuel Vadot
53d5b0e70fSEmmanuel Vadot  clocks:
54b97ee269SEmmanuel Vadot    minItems: 1
55b97ee269SEmmanuel Vadot    maxItems: 2
56d5b0e70fSEmmanuel Vadot
57d5b0e70fSEmmanuel Vadot  clock-names:
58b97ee269SEmmanuel Vadot    minItems: 1
59b97ee269SEmmanuel Vadot    maxItems: 2
60d5b0e70fSEmmanuel Vadot
61d5b0e70fSEmmanuel Vadotrequired:
62d5b0e70fSEmmanuel Vadot  - compatible
63d5b0e70fSEmmanuel Vadot  - '#clock-cells'
64d5b0e70fSEmmanuel Vadot
65b97ee269SEmmanuel VadotallOf:
66b97ee269SEmmanuel Vadot  - if:
67b97ee269SEmmanuel Vadot      properties:
68b97ee269SEmmanuel Vadot        compatible:
69b97ee269SEmmanuel Vadot          contains:
70b97ee269SEmmanuel Vadot            enum:
71b97ee269SEmmanuel Vadot              - qcom,rpmcc-apq8060
72b97ee269SEmmanuel Vadot              - qcom,rpmcc-ipq806x
73b97ee269SEmmanuel Vadot              - qcom,rpmcc-msm8660
74b97ee269SEmmanuel Vadot
75b97ee269SEmmanuel Vadot    then:
76b97ee269SEmmanuel Vadot      properties:
77b97ee269SEmmanuel Vadot        clocks:
78b97ee269SEmmanuel Vadot          items:
79b97ee269SEmmanuel Vadot            - description: pxo clock
80b97ee269SEmmanuel Vadot
81b97ee269SEmmanuel Vadot        clock-names:
82b97ee269SEmmanuel Vadot          items:
83b97ee269SEmmanuel Vadot            - const: pxo
84b97ee269SEmmanuel Vadot
85b97ee269SEmmanuel Vadot  - if:
86b97ee269SEmmanuel Vadot      properties:
87b97ee269SEmmanuel Vadot        compatible:
88b97ee269SEmmanuel Vadot          contains:
89b97ee269SEmmanuel Vadot            const: qcom,rpmcc-apq8064
90b97ee269SEmmanuel Vadot    then:
91b97ee269SEmmanuel Vadot      properties:
92b97ee269SEmmanuel Vadot        clocks:
93b97ee269SEmmanuel Vadot          items:
94b97ee269SEmmanuel Vadot            - description: pxo clock
95b97ee269SEmmanuel Vadot            - description: cxo clock
96b97ee269SEmmanuel Vadot
97b97ee269SEmmanuel Vadot        clock-names:
98b97ee269SEmmanuel Vadot          items:
99b97ee269SEmmanuel Vadot            - const: pxo
100b97ee269SEmmanuel Vadot            - const: cxo
101b97ee269SEmmanuel Vadot
102b97ee269SEmmanuel Vadot  - if:
103b97ee269SEmmanuel Vadot      properties:
104b97ee269SEmmanuel Vadot        compatible:
105b97ee269SEmmanuel Vadot          contains:
106b97ee269SEmmanuel Vadot            enum:
107b97ee269SEmmanuel Vadot              - qcom,rpmcc-mdm9607
108b97ee269SEmmanuel Vadot              - qcom,rpmcc-msm8226
109b97ee269SEmmanuel Vadot              - qcom,rpmcc-msm8916
110b97ee269SEmmanuel Vadot              - qcom,rpmcc-msm8936
111b97ee269SEmmanuel Vadot              - qcom,rpmcc-msm8953
112b97ee269SEmmanuel Vadot              - qcom,rpmcc-msm8974
113b97ee269SEmmanuel Vadot              - qcom,rpmcc-msm8976
114b97ee269SEmmanuel Vadot              - qcom,rpmcc-msm8992
115b97ee269SEmmanuel Vadot              - qcom,rpmcc-msm8994
116b97ee269SEmmanuel Vadot              - qcom,rpmcc-msm8996
117b97ee269SEmmanuel Vadot              - qcom,rpmcc-msm8998
118b97ee269SEmmanuel Vadot              - qcom,rpmcc-qcm2290
119b97ee269SEmmanuel Vadot              - qcom,rpmcc-qcs404
120b97ee269SEmmanuel Vadot              - qcom,rpmcc-sdm660
121b97ee269SEmmanuel Vadot              - qcom,rpmcc-sm6115
122b97ee269SEmmanuel Vadot              - qcom,rpmcc-sm6125
123b97ee269SEmmanuel Vadot
124b97ee269SEmmanuel Vadot    then:
125b97ee269SEmmanuel Vadot      properties:
126b97ee269SEmmanuel Vadot        clocks:
127b97ee269SEmmanuel Vadot          items:
128b97ee269SEmmanuel Vadot            - description: xo clock
129b97ee269SEmmanuel Vadot
130b97ee269SEmmanuel Vadot        clock-names:
131b97ee269SEmmanuel Vadot          items:
132b97ee269SEmmanuel Vadot            - const: xo
133b97ee269SEmmanuel Vadot
134d5b0e70fSEmmanuel VadotadditionalProperties: false
135d5b0e70fSEmmanuel Vadot
136d5b0e70fSEmmanuel Vadotexamples:
137d5b0e70fSEmmanuel Vadot  - |
138d5b0e70fSEmmanuel Vadot    rpm {
139d5b0e70fSEmmanuel Vadot        rpm-requests {
140d5b0e70fSEmmanuel Vadot            compatible = "qcom,rpm-msm8916";
141d5b0e70fSEmmanuel Vadot            qcom,smd-channels = "rpm_requests";
142d5b0e70fSEmmanuel Vadot
143d5b0e70fSEmmanuel Vadot            clock-controller {
144d5b0e70fSEmmanuel Vadot                compatible = "qcom,rpmcc-msm8916", "qcom,rpmcc";
145d5b0e70fSEmmanuel Vadot                #clock-cells = <1>;
146d5b0e70fSEmmanuel Vadot            };
147d5b0e70fSEmmanuel Vadot        };
148d5b0e70fSEmmanuel Vadot    };
149b97ee269SEmmanuel Vadot
150b97ee269SEmmanuel Vadot  - |
151b97ee269SEmmanuel Vadot    rpm {
152b97ee269SEmmanuel Vadot        clock-controller {
153b97ee269SEmmanuel Vadot            compatible = "qcom,rpmcc-ipq806x", "qcom,rpmcc";
154b97ee269SEmmanuel Vadot            #clock-cells = <1>;
155b97ee269SEmmanuel Vadot            clocks = <&pxo_board>;
156b97ee269SEmmanuel Vadot            clock-names = "pxo";
157b97ee269SEmmanuel Vadot        };
158b97ee269SEmmanuel Vadot    };
159