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 <krzk@kernel.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 oneOf: 25 - items: 26 - enum: 27 - qcom,rpmcc-apq8060 28 - qcom,rpmcc-apq8064 29 - qcom,rpmcc-ipq806x 30 - qcom,rpmcc-mdm9607 31 - qcom,rpmcc-msm8226 32 - qcom,rpmcc-msm8660 33 - qcom,rpmcc-msm8909 34 - qcom,rpmcc-msm8916 35 - qcom,rpmcc-msm8917 36 - qcom,rpmcc-msm8936 37 - qcom,rpmcc-msm8937 38 - qcom,rpmcc-msm8940 39 - qcom,rpmcc-msm8953 40 - qcom,rpmcc-msm8974 41 - qcom,rpmcc-msm8976 42 - qcom,rpmcc-msm8992 43 - qcom,rpmcc-msm8994 44 - qcom,rpmcc-msm8996 45 - qcom,rpmcc-msm8998 46 - qcom,rpmcc-qcm2290 47 - qcom,rpmcc-qcs404 48 - qcom,rpmcc-sdm429 49 - qcom,rpmcc-sdm660 50 - qcom,rpmcc-sm6115 51 - qcom,rpmcc-sm6125 52 - qcom,rpmcc-sm6375 53 - const: qcom,rpmcc 54 - items: 55 - enum: 56 - qcom,rpmcc-shikra 57 - const: qcom,rpmcc-qcm2290 58 - const: qcom,rpmcc 59 60 '#clock-cells': 61 const: 1 62 63 clocks: 64 minItems: 1 65 maxItems: 2 66 67 clock-names: 68 minItems: 1 69 maxItems: 2 70 71required: 72 - compatible 73 - '#clock-cells' 74 75allOf: 76 - if: 77 properties: 78 compatible: 79 contains: 80 enum: 81 - qcom,rpmcc-apq8060 82 - qcom,rpmcc-ipq806x 83 - qcom,rpmcc-msm8660 84 85 then: 86 properties: 87 clocks: 88 items: 89 - description: pxo clock 90 91 clock-names: 92 items: 93 - const: pxo 94 95 - if: 96 properties: 97 compatible: 98 contains: 99 const: qcom,rpmcc-apq8064 100 then: 101 properties: 102 clocks: 103 items: 104 - description: pxo clock 105 - description: cxo clock 106 107 clock-names: 108 items: 109 - const: pxo 110 - const: cxo 111 112 - if: 113 properties: 114 compatible: 115 contains: 116 enum: 117 - qcom,rpmcc-mdm9607 118 - qcom,rpmcc-msm8226 119 - qcom,rpmcc-msm8916 120 - qcom,rpmcc-msm8917 121 - qcom,rpmcc-msm8936 122 - qcom,rpmcc-msm8937 123 - qcom,rpmcc-msm8940 124 - qcom,rpmcc-msm8953 125 - qcom,rpmcc-msm8974 126 - qcom,rpmcc-msm8976 127 - qcom,rpmcc-msm8992 128 - qcom,rpmcc-msm8994 129 - qcom,rpmcc-msm8996 130 - qcom,rpmcc-msm8998 131 - qcom,rpmcc-qcm2290 132 - qcom,rpmcc-qcs404 133 - qcom,rpmcc-sdm429 134 - qcom,rpmcc-sdm660 135 - qcom,rpmcc-shikra 136 - qcom,rpmcc-sm6115 137 - qcom,rpmcc-sm6125 138 139 then: 140 properties: 141 clocks: 142 items: 143 - description: xo clock 144 145 clock-names: 146 items: 147 - const: xo 148 149additionalProperties: false 150 151examples: 152 - | 153 rpm { 154 rpm-requests { 155 compatible = "qcom,rpm-msm8916", "qcom,smd-rpm"; 156 qcom,smd-channels = "rpm_requests"; 157 158 clock-controller { 159 compatible = "qcom,rpmcc-msm8916", "qcom,rpmcc"; 160 #clock-cells = <1>; 161 }; 162 }; 163 }; 164 165 - | 166 rpm { 167 clock-controller { 168 compatible = "qcom,rpmcc-ipq806x", "qcom,rpmcc"; 169 #clock-cells = <1>; 170 clocks = <&pxo_board>; 171 clock-names = "pxo"; 172 }; 173 }; 174