1# SPDX-License-Identifier: GPL-2.0-only 2%YAML 1.2 3--- 4$id: http://devicetree.org/schemas/bindings/clock/qcom,gcc.yaml# 5$schema: http://devicetree.org/meta-schemas/core.yaml# 6 7title: Qualcomm Global Clock & Reset Controller Binding 8 9maintainers: 10 - Stephen Boyd <sboyd@kernel.org> 11 - Taniya Das <tdas@codeaurora.org> 12 13description: | 14 Qualcomm global clock control module which supports the clocks, resets and 15 power domains. 16 17properties: 18 compatible : 19 enum: 20 - qcom,gcc-apq8064 21 - qcom,gcc-apq8084 22 - qcom,gcc-ipq8064 23 - qcom,gcc-ipq4019 24 - qcom,gcc-ipq8074 25 - qcom,gcc-msm8660 26 - qcom,gcc-msm8916 27 - qcom,gcc-msm8960 28 - qcom,gcc-msm8974 29 - qcom,gcc-msm8974pro 30 - qcom,gcc-msm8974pro-ac 31 - qcom,gcc-msm8994 32 - qcom,gcc-msm8996 33 - qcom,gcc-msm8998 34 - qcom,gcc-mdm9615 35 - qcom,gcc-qcs404 36 - qcom,gcc-sdm630 37 - qcom,gcc-sdm660 38 - qcom,gcc-sdm845 39 - qcom,gcc-sm8150 40 41 clocks: 42 minItems: 1 43 maxItems: 3 44 items: 45 - description: Board XO source 46 - description: Board active XO source 47 - description: Sleep clock source 48 49 clock-names: 50 minItems: 1 51 maxItems: 3 52 items: 53 - const: bi_tcxo 54 - const: bi_tcxo_ao 55 - const: sleep_clk 56 57 '#clock-cells': 58 const: 1 59 60 '#reset-cells': 61 const: 1 62 63 '#power-domain-cells': 64 const: 1 65 66 reg: 67 maxItems: 1 68 69 nvmem-cells: 70 minItems: 1 71 maxItems: 2 72 description: 73 Qualcomm TSENS (thermal sensor device) on some devices can 74 be part of GCC and hence the TSENS properties can also be part 75 of the GCC/clock-controller node. 76 For more details on the TSENS properties please refer 77 Documentation/devicetree/bindings/thermal/qcom-tsens.txt 78 79 nvmem-cell-names: 80 minItems: 1 81 maxItems: 2 82 description: 83 Names for each nvmem-cells specified. 84 items: 85 - const: calib 86 - const: calib_backup 87 88 'thermal-sensor-cells': 89 const: 1 90 91 protected-clocks: 92 description: 93 Protected clock specifier list as per common clock binding 94 95required: 96 - compatible 97 - reg 98 - '#clock-cells' 99 - '#reset-cells' 100 - '#power-domain-cells' 101 102if: 103 properties: 104 compatible: 105 contains: 106 const: qcom,gcc-apq8064 107 108then: 109 required: 110 - nvmem-cells 111 - nvmem-cell-names 112 - '#thermal-sensor-cells' 113 114else: 115 if: 116 properties: 117 compatible: 118 contains: 119 enum: 120 - qcom,gcc-sm8150 121 then: 122 required: 123 - clocks 124 - clock-names 125 126 127examples: 128 # Example for GCC for MSM8960: 129 - | 130 clock-controller@900000 { 131 compatible = "qcom,gcc-msm8960"; 132 reg = <0x900000 0x4000>; 133 #clock-cells = <1>; 134 #reset-cells = <1>; 135 #power-domain-cells = <1>; 136 }; 137 138 139 # Example of GCC with TSENS properties: 140 - | 141 clock-controller@900000 { 142 compatible = "qcom,gcc-apq8064"; 143 reg = <0x00900000 0x4000>; 144 nvmem-cells = <&tsens_calib>, <&tsens_backup>; 145 nvmem-cell-names = "calib", "calib_backup"; 146 #clock-cells = <1>; 147 #reset-cells = <1>; 148 #power-domain-cells = <1>; 149 #thermal-sensor-cells = <1>; 150 }; 151 152 # Example of GCC with protected-clocks properties: 153 - | 154 clock-controller@100000 { 155 compatible = "qcom,gcc-sdm845"; 156 reg = <0x100000 0x1f0000>; 157 protected-clocks = <187>, <188>, <189>, <190>, <191>; 158 #clock-cells = <1>; 159 #reset-cells = <1>; 160 #power-domain-cells = <1>; 161 }; 162 163 # Example of GCC with clock node properties for SM8150: 164 - | 165 clock-controller@100000 { 166 compatible = "qcom,gcc-sm8150"; 167 reg = <0x00100000 0x1f0000>; 168 clocks = <&rpmhcc 0>, <&rpmhcc 1>, <&sleep_clk>; 169 clock-names = "bi_tcxo", "bi_tcxo_ao", "sleep_clk"; 170 #clock-cells = <1>; 171 #reset-cells = <1>; 172 #power-domain-cells = <1>; 173 }; 174... 175