162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
262306a36Sopenharmony_ci%YAML 1.2
362306a36Sopenharmony_ci---
462306a36Sopenharmony_ci$id: http://devicetree.org/schemas/clock/qcom,rpmcc.yaml#
562306a36Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml#
662306a36Sopenharmony_ci
762306a36Sopenharmony_cititle: Qualcomm RPM Clock Controller
862306a36Sopenharmony_ci
962306a36Sopenharmony_cimaintainers:
1062306a36Sopenharmony_ci  - Bjorn Andersson <bjorn.andersson@linaro.org>
1162306a36Sopenharmony_ci  - Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
1262306a36Sopenharmony_ci
1362306a36Sopenharmony_cidescription: |
1462306a36Sopenharmony_ci  The clock enumerators are defined in <dt-bindings/clock/qcom,rpmcc.h> and
1562306a36Sopenharmony_ci  come in pairs:: FOO_CLK followed by FOO_A_CLK. The latter clock is
1662306a36Sopenharmony_ci  an "active" clock, which means that the consumer only care that the clock is
1762306a36Sopenharmony_ci  available when the apps CPU subsystem is active, i.e. not suspended or in
1862306a36Sopenharmony_ci  deep idle. If it is important that the clock keeps running during system
1962306a36Sopenharmony_ci  suspend, you need to specify the non-active clock, the one not containing
2062306a36Sopenharmony_ci  *_A_* in the enumerator name.
2162306a36Sopenharmony_ci
2262306a36Sopenharmony_ciproperties:
2362306a36Sopenharmony_ci  compatible:
2462306a36Sopenharmony_ci    items:
2562306a36Sopenharmony_ci      - enum:
2662306a36Sopenharmony_ci          - qcom,rpmcc-apq8060
2762306a36Sopenharmony_ci          - qcom,rpmcc-apq8064
2862306a36Sopenharmony_ci          - qcom,rpmcc-ipq806x
2962306a36Sopenharmony_ci          - qcom,rpmcc-mdm9607
3062306a36Sopenharmony_ci          - qcom,rpmcc-msm8226
3162306a36Sopenharmony_ci          - qcom,rpmcc-msm8660
3262306a36Sopenharmony_ci          - qcom,rpmcc-msm8909
3362306a36Sopenharmony_ci          - qcom,rpmcc-msm8916
3462306a36Sopenharmony_ci          - qcom,rpmcc-msm8917
3562306a36Sopenharmony_ci          - qcom,rpmcc-msm8936
3662306a36Sopenharmony_ci          - qcom,rpmcc-msm8953
3762306a36Sopenharmony_ci          - qcom,rpmcc-msm8974
3862306a36Sopenharmony_ci          - qcom,rpmcc-msm8976
3962306a36Sopenharmony_ci          - qcom,rpmcc-msm8992
4062306a36Sopenharmony_ci          - qcom,rpmcc-msm8994
4162306a36Sopenharmony_ci          - qcom,rpmcc-msm8996
4262306a36Sopenharmony_ci          - qcom,rpmcc-msm8998
4362306a36Sopenharmony_ci          - qcom,rpmcc-qcm2290
4462306a36Sopenharmony_ci          - qcom,rpmcc-qcs404
4562306a36Sopenharmony_ci          - qcom,rpmcc-sdm660
4662306a36Sopenharmony_ci          - qcom,rpmcc-sm6115
4762306a36Sopenharmony_ci          - qcom,rpmcc-sm6125
4862306a36Sopenharmony_ci          - qcom,rpmcc-sm6375
4962306a36Sopenharmony_ci      - const: qcom,rpmcc
5062306a36Sopenharmony_ci
5162306a36Sopenharmony_ci  '#clock-cells':
5262306a36Sopenharmony_ci    const: 1
5362306a36Sopenharmony_ci
5462306a36Sopenharmony_ci  clocks:
5562306a36Sopenharmony_ci    minItems: 1
5662306a36Sopenharmony_ci    maxItems: 2
5762306a36Sopenharmony_ci
5862306a36Sopenharmony_ci  clock-names:
5962306a36Sopenharmony_ci    minItems: 1
6062306a36Sopenharmony_ci    maxItems: 2
6162306a36Sopenharmony_ci
6262306a36Sopenharmony_cirequired:
6362306a36Sopenharmony_ci  - compatible
6462306a36Sopenharmony_ci  - '#clock-cells'
6562306a36Sopenharmony_ci
6662306a36Sopenharmony_ciallOf:
6762306a36Sopenharmony_ci  - if:
6862306a36Sopenharmony_ci      properties:
6962306a36Sopenharmony_ci        compatible:
7062306a36Sopenharmony_ci          contains:
7162306a36Sopenharmony_ci            enum:
7262306a36Sopenharmony_ci              - qcom,rpmcc-apq8060
7362306a36Sopenharmony_ci              - qcom,rpmcc-ipq806x
7462306a36Sopenharmony_ci              - qcom,rpmcc-msm8660
7562306a36Sopenharmony_ci
7662306a36Sopenharmony_ci    then:
7762306a36Sopenharmony_ci      properties:
7862306a36Sopenharmony_ci        clocks:
7962306a36Sopenharmony_ci          items:
8062306a36Sopenharmony_ci            - description: pxo clock
8162306a36Sopenharmony_ci
8262306a36Sopenharmony_ci        clock-names:
8362306a36Sopenharmony_ci          items:
8462306a36Sopenharmony_ci            - const: pxo
8562306a36Sopenharmony_ci
8662306a36Sopenharmony_ci  - if:
8762306a36Sopenharmony_ci      properties:
8862306a36Sopenharmony_ci        compatible:
8962306a36Sopenharmony_ci          contains:
9062306a36Sopenharmony_ci            const: qcom,rpmcc-apq8064
9162306a36Sopenharmony_ci    then:
9262306a36Sopenharmony_ci      properties:
9362306a36Sopenharmony_ci        clocks:
9462306a36Sopenharmony_ci          items:
9562306a36Sopenharmony_ci            - description: pxo clock
9662306a36Sopenharmony_ci            - description: cxo clock
9762306a36Sopenharmony_ci
9862306a36Sopenharmony_ci        clock-names:
9962306a36Sopenharmony_ci          items:
10062306a36Sopenharmony_ci            - const: pxo
10162306a36Sopenharmony_ci            - const: cxo
10262306a36Sopenharmony_ci
10362306a36Sopenharmony_ci  - if:
10462306a36Sopenharmony_ci      properties:
10562306a36Sopenharmony_ci        compatible:
10662306a36Sopenharmony_ci          contains:
10762306a36Sopenharmony_ci            enum:
10862306a36Sopenharmony_ci              - qcom,rpmcc-mdm9607
10962306a36Sopenharmony_ci              - qcom,rpmcc-msm8226
11062306a36Sopenharmony_ci              - qcom,rpmcc-msm8916
11162306a36Sopenharmony_ci              - qcom,rpmcc-msm8917
11262306a36Sopenharmony_ci              - qcom,rpmcc-msm8936
11362306a36Sopenharmony_ci              - qcom,rpmcc-msm8953
11462306a36Sopenharmony_ci              - qcom,rpmcc-msm8974
11562306a36Sopenharmony_ci              - qcom,rpmcc-msm8976
11662306a36Sopenharmony_ci              - qcom,rpmcc-msm8992
11762306a36Sopenharmony_ci              - qcom,rpmcc-msm8994
11862306a36Sopenharmony_ci              - qcom,rpmcc-msm8996
11962306a36Sopenharmony_ci              - qcom,rpmcc-msm8998
12062306a36Sopenharmony_ci              - qcom,rpmcc-qcm2290
12162306a36Sopenharmony_ci              - qcom,rpmcc-qcs404
12262306a36Sopenharmony_ci              - qcom,rpmcc-sdm660
12362306a36Sopenharmony_ci              - qcom,rpmcc-sm6115
12462306a36Sopenharmony_ci              - qcom,rpmcc-sm6125
12562306a36Sopenharmony_ci
12662306a36Sopenharmony_ci    then:
12762306a36Sopenharmony_ci      properties:
12862306a36Sopenharmony_ci        clocks:
12962306a36Sopenharmony_ci          items:
13062306a36Sopenharmony_ci            - description: xo clock
13162306a36Sopenharmony_ci
13262306a36Sopenharmony_ci        clock-names:
13362306a36Sopenharmony_ci          items:
13462306a36Sopenharmony_ci            - const: xo
13562306a36Sopenharmony_ci
13662306a36Sopenharmony_ciadditionalProperties: false
13762306a36Sopenharmony_ci
13862306a36Sopenharmony_ciexamples:
13962306a36Sopenharmony_ci  - |
14062306a36Sopenharmony_ci    rpm {
14162306a36Sopenharmony_ci        rpm-requests {
14262306a36Sopenharmony_ci            compatible = "qcom,rpm-msm8916";
14362306a36Sopenharmony_ci            qcom,smd-channels = "rpm_requests";
14462306a36Sopenharmony_ci
14562306a36Sopenharmony_ci            clock-controller {
14662306a36Sopenharmony_ci                compatible = "qcom,rpmcc-msm8916", "qcom,rpmcc";
14762306a36Sopenharmony_ci                #clock-cells = <1>;
14862306a36Sopenharmony_ci            };
14962306a36Sopenharmony_ci        };
15062306a36Sopenharmony_ci    };
15162306a36Sopenharmony_ci
15262306a36Sopenharmony_ci  - |
15362306a36Sopenharmony_ci    rpm {
15462306a36Sopenharmony_ci        clock-controller {
15562306a36Sopenharmony_ci            compatible = "qcom,rpmcc-ipq806x", "qcom,rpmcc";
15662306a36Sopenharmony_ci            #clock-cells = <1>;
15762306a36Sopenharmony_ci            clocks = <&pxo_board>;
15862306a36Sopenharmony_ci            clock-names = "pxo";
15962306a36Sopenharmony_ci        };
16062306a36Sopenharmony_ci    };
161