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 };