Back to home page

OSCL-LXR

 
 

    


0001 # SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
0002 %YAML 1.2
0003 ---
0004 $id: http://devicetree.org/schemas/clock/qcom,rpmcc.yaml#
0005 $schema: http://devicetree.org/meta-schemas/core.yaml#
0006 
0007 title: Qualcomm RPM Clock Controller
0008 
0009 maintainers:
0010   - Bjorn Andersson <bjorn.andersson@linaro.org>
0011   - Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
0012 
0013 description: |
0014   The clock enumerators are defined in <dt-bindings/clock/qcom,rpmcc.h> and
0015   come in pairs:: FOO_CLK followed by FOO_A_CLK. The latter clock is
0016   an "active" clock, which means that the consumer only care that the clock is
0017   available when the apps CPU subsystem is active, i.e. not suspended or in
0018   deep idle. If it is important that the clock keeps running during system
0019   suspend, you need to specify the non-active clock, the one not containing
0020   *_A_* in the enumerator name.
0021 
0022 properties:
0023   compatible:
0024     items:
0025       - enum:
0026           - qcom,rpmcc-apq8060
0027           - qcom,rpmcc-apq8064
0028           - qcom,rpmcc-ipq806x
0029           - qcom,rpmcc-mdm9607
0030           - qcom,rpmcc-msm8226
0031           - qcom,rpmcc-msm8660
0032           - qcom,rpmcc-msm8916
0033           - qcom,rpmcc-msm8936
0034           - qcom,rpmcc-msm8953
0035           - qcom,rpmcc-msm8974
0036           - qcom,rpmcc-msm8976
0037           - qcom,rpmcc-msm8992
0038           - qcom,rpmcc-msm8994
0039           - qcom,rpmcc-msm8996
0040           - qcom,rpmcc-msm8998
0041           - qcom,rpmcc-qcm2290
0042           - qcom,rpmcc-qcs404
0043           - qcom,rpmcc-sdm660
0044           - qcom,rpmcc-sm6115
0045           - qcom,rpmcc-sm6125
0046       - const: qcom,rpmcc
0047 
0048   '#clock-cells':
0049     const: 1
0050 
0051   clocks:
0052     minItems: 1
0053     maxItems: 2
0054 
0055   clock-names:
0056     minItems: 1
0057     maxItems: 2
0058 
0059 required:
0060   - compatible
0061   - '#clock-cells'
0062 
0063 allOf:
0064   - if:
0065       properties:
0066         compatible:
0067           contains:
0068             enum:
0069               - qcom,rpmcc-apq8060
0070               - qcom,rpmcc-ipq806x
0071               - qcom,rpmcc-msm8660
0072 
0073     then:
0074       properties:
0075         clocks:
0076           items:
0077             - description: pxo clock
0078 
0079         clock-names:
0080           items:
0081             - const: pxo
0082 
0083   - if:
0084       properties:
0085         compatible:
0086           contains:
0087             const: qcom,rpmcc-apq8064
0088     then:
0089       properties:
0090         clocks:
0091           items:
0092             - description: pxo clock
0093             - description: cxo clock
0094 
0095         clock-names:
0096           items:
0097             - const: pxo
0098             - const: cxo
0099 
0100   - if:
0101       properties:
0102         compatible:
0103           contains:
0104             enum:
0105               - qcom,rpmcc-mdm9607
0106               - qcom,rpmcc-msm8226
0107               - qcom,rpmcc-msm8916
0108               - qcom,rpmcc-msm8936
0109               - qcom,rpmcc-msm8953
0110               - qcom,rpmcc-msm8974
0111               - qcom,rpmcc-msm8976
0112               - qcom,rpmcc-msm8992
0113               - qcom,rpmcc-msm8994
0114               - qcom,rpmcc-msm8996
0115               - qcom,rpmcc-msm8998
0116               - qcom,rpmcc-qcm2290
0117               - qcom,rpmcc-qcs404
0118               - qcom,rpmcc-sdm660
0119               - qcom,rpmcc-sm6115
0120               - qcom,rpmcc-sm6125
0121 
0122     then:
0123       properties:
0124         clocks:
0125           items:
0126             - description: xo clock
0127 
0128         clock-names:
0129           items:
0130             - const: xo
0131 
0132 additionalProperties: false
0133 
0134 examples:
0135   - |
0136     rpm {
0137         rpm-requests {
0138             compatible = "qcom,rpm-msm8916";
0139             qcom,smd-channels = "rpm_requests";
0140 
0141             clock-controller {
0142                 compatible = "qcom,rpmcc-msm8916", "qcom,rpmcc";
0143                 #clock-cells = <1>;
0144             };
0145         };
0146     };
0147 
0148   - |
0149     rpm {
0150         clock-controller {
0151             compatible = "qcom,rpmcc-ipq806x", "qcom,rpmcc";
0152             #clock-cells = <1>;
0153             clocks = <&pxo_board>;
0154             clock-names = "pxo";
0155         };
0156     };