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