1# SPDX-License-Identifier: GPL-2.0-only 2config KRAIT_CLOCKS 3 bool 4 select KRAIT_L2_ACCESSORS 5 6config QCOM_GDSC 7 bool 8 select PM_GENERIC_DOMAINS if PM 9 10config QCOM_RPMCC 11 bool 12 13menuconfig COMMON_CLK_QCOM 14 tristate "Support for Qualcomm's clock controllers" 15 depends on OF 16 depends on ARCH_QCOM || COMPILE_TEST 17 select RATIONAL 18 select REGMAP_MMIO 19 select RESET_CONTROLLER 20 21if COMMON_CLK_QCOM 22 23config QCOM_A53PLL 24 tristate "MSM8916 A53 PLL" 25 help 26 Support for the A53 PLL on MSM8916 devices. It provides 27 the CPU with frequencies above 1GHz. 28 Say Y if you want to support higher CPU frequencies on MSM8916 29 devices. 30 31config QCOM_CLK_APCS_MSM8916 32 tristate "MSM8916 APCS Clock Controller" 33 depends on QCOM_APCS_IPC || COMPILE_TEST 34 help 35 Support for the APCS Clock Controller on msm8916 devices. The 36 APCS is managing the mux and divider which feeds the CPUs. 37 Say Y if you want to support CPU frequency scaling on devices 38 such as msm8916. 39 40config QCOM_CLK_RPM 41 tristate "RPM based Clock Controller" 42 depends on MFD_QCOM_RPM 43 select QCOM_RPMCC 44 help 45 The RPM (Resource Power Manager) is a dedicated hardware engine for 46 managing the shared SoC resources in order to keep the lowest power 47 profile. It communicates with other hardware subsystems via shared 48 memory and accepts clock requests, aggregates the requests and turns 49 the clocks on/off or scales them on demand. 50 Say Y if you want to support the clocks exposed by the RPM on 51 platforms such as apq8064, msm8660, msm8960 etc. 52 53config QCOM_CLK_SMD_RPM 54 tristate "RPM over SMD based Clock Controller" 55 depends on QCOM_SMD_RPM 56 select QCOM_RPMCC 57 help 58 The RPM (Resource Power Manager) is a dedicated hardware engine for 59 managing the shared SoC resources in order to keep the lowest power 60 profile. It communicates with other hardware subsystems via shared 61 memory and accepts clock requests, aggregates the requests and turns 62 the clocks on/off or scales them on demand. 63 Say Y if you want to support the clocks exposed by the RPM on 64 platforms such as apq8016, apq8084, msm8974 etc. 65 66config QCOM_CLK_RPMH 67 tristate "RPMh Clock Driver" 68 depends on QCOM_RPMH 69 help 70 RPMh manages shared resources on some Qualcomm Technologies, Inc. 71 SoCs. It accepts requests from other hardware subsystems via RSC. 72 Say Y if you want to support the clocks exposed by RPMh on 73 platforms such as SDM845. 74 75config APQ_GCC_8084 76 tristate "APQ8084 Global Clock Controller" 77 select QCOM_GDSC 78 help 79 Support for the global clock controller on apq8084 devices. 80 Say Y if you want to use peripheral devices such as UART, SPI, 81 i2c, USB, SD/eMMC, SATA, PCIe, etc. 82 83config APQ_MMCC_8084 84 tristate "APQ8084 Multimedia Clock Controller" 85 select APQ_GCC_8084 86 select QCOM_GDSC 87 help 88 Support for the multimedia clock controller on apq8084 devices. 89 Say Y if you want to support multimedia devices such as display, 90 graphics, video encode/decode, camera, etc. 91 92config IPQ_GCC_4019 93 tristate "IPQ4019 Global Clock Controller" 94 help 95 Support for the global clock controller on ipq4019 devices. 96 Say Y if you want to use peripheral devices such as UART, SPI, 97 i2c, USB, SD/eMMC, etc. 98 99config IPQ_GCC_6018 100 tristate "IPQ6018 Global Clock Controller" 101 help 102 Support for global clock controller on ipq6018 devices. 103 Say Y if you want to use peripheral devices such as UART, SPI, 104 i2c, USB, SD/eMMC, etc. Select this for the root clock 105 of ipq6018. 106 107config IPQ_GCC_806X 108 tristate "IPQ806x Global Clock Controller" 109 help 110 Support for the global clock controller on ipq806x devices. 111 Say Y if you want to use peripheral devices such as UART, SPI, 112 i2c, USB, SD/eMMC, etc. 113 114config IPQ_LCC_806X 115 tristate "IPQ806x LPASS Clock Controller" 116 select IPQ_GCC_806X 117 help 118 Support for the LPASS clock controller on ipq806x devices. 119 Say Y if you want to use audio devices such as i2s, pcm, 120 S/PDIF, etc. 121 122config IPQ_GCC_8074 123 tristate "IPQ8074 Global Clock Controller" 124 help 125 Support for global clock controller on ipq8074 devices. 126 Say Y if you want to use peripheral devices such as UART, SPI, 127 i2c, USB, SD/eMMC, etc. Select this for the root clock 128 of ipq8074. 129 130config MSM_GCC_8660 131 tristate "MSM8660 Global Clock Controller" 132 help 133 Support for the global clock controller on msm8660 devices. 134 Say Y if you want to use peripheral devices such as UART, SPI, 135 i2c, USB, SD/eMMC, etc. 136 137config MSM_GCC_8916 138 tristate "MSM8916 Global Clock Controller" 139 select QCOM_GDSC 140 help 141 Support for the global clock controller on msm8916 devices. 142 Say Y if you want to use devices such as UART, SPI i2c, USB, 143 SD/eMMC, display, graphics, camera etc. 144 145config MSM_GCC_8960 146 tristate "APQ8064/MSM8960 Global Clock Controller" 147 help 148 Support for the global clock controller on apq8064/msm8960 devices. 149 Say Y if you want to use peripheral devices such as UART, SPI, 150 i2c, USB, SD/eMMC, SATA, PCIe, etc. 151 152config MSM_LCC_8960 153 tristate "APQ8064/MSM8960 LPASS Clock Controller" 154 select MSM_GCC_8960 155 help 156 Support for the LPASS clock controller on apq8064/msm8960 devices. 157 Say Y if you want to use audio devices such as i2s, pcm, 158 SLIMBus, etc. 159 160config MDM_GCC_9615 161 tristate "MDM9615 Global Clock Controller" 162 help 163 Support for the global clock controller on mdm9615 devices. 164 Say Y if you want to use peripheral devices such as UART, SPI, 165 i2c, USB, SD/eMMC, etc. 166 167config MDM_LCC_9615 168 tristate "MDM9615 LPASS Clock Controller" 169 select MDM_GCC_9615 170 help 171 Support for the LPASS clock controller on mdm9615 devices. 172 Say Y if you want to use audio devices such as i2s, pcm, 173 SLIMBus, etc. 174 175config MSM_MMCC_8960 176 tristate "MSM8960 Multimedia Clock Controller" 177 select MSM_GCC_8960 178 help 179 Support for the multimedia clock controller on msm8960 devices. 180 Say Y if you want to support multimedia devices such as display, 181 graphics, video encode/decode, camera, etc. 182 183config MSM_GCC_8974 184 tristate "MSM8974 Global Clock Controller" 185 select QCOM_GDSC 186 help 187 Support for the global clock controller on msm8974 devices. 188 Say Y if you want to use peripheral devices such as UART, SPI, 189 i2c, USB, SD/eMMC, SATA, PCIe, etc. 190 191config MSM_MMCC_8974 192 tristate "MSM8974 Multimedia Clock Controller" 193 select MSM_GCC_8974 194 select QCOM_GDSC 195 help 196 Support for the multimedia clock controller on msm8974 devices. 197 Say Y if you want to support multimedia devices such as display, 198 graphics, video encode/decode, camera, etc. 199 200config MSM_GCC_8994 201 tristate "MSM8994 Global Clock Controller" 202 help 203 Support for the global clock controller on msm8994 devices. 204 Say Y if you want to use peripheral devices such as UART, SPI, 205 i2c, USB, UFS, SD/eMMC, PCIe, etc. 206 207config MSM_GCC_8996 208 tristate "MSM8996 Global Clock Controller" 209 select QCOM_GDSC 210 help 211 Support for the global clock controller on msm8996 devices. 212 Say Y if you want to use peripheral devices such as UART, SPI, 213 i2c, USB, UFS, SD/eMMC, PCIe, etc. 214 215config MSM_MMCC_8996 216 tristate "MSM8996 Multimedia Clock Controller" 217 select MSM_GCC_8996 218 select QCOM_GDSC 219 help 220 Support for the multimedia clock controller on msm8996 devices. 221 Say Y if you want to support multimedia devices such as display, 222 graphics, video encode/decode, camera, etc. 223 224config MSM_GCC_8998 225 tristate "MSM8998 Global Clock Controller" 226 select QCOM_GDSC 227 help 228 Support for the global clock controller on msm8998 devices. 229 Say Y if you want to use peripheral devices such as UART, SPI, 230 i2c, USB, UFS, SD/eMMC, PCIe, etc. 231 232config MSM_GPUCC_8998 233 tristate "MSM8998 Graphics Clock Controller" 234 select MSM_GCC_8998 235 select QCOM_GDSC 236 help 237 Support for the graphics clock controller on MSM8998 devices. 238 Say Y if you want to support graphics controller devices and 239 functionality such as 3D graphics. 240 241config MSM_MMCC_8998 242 tristate "MSM8998 Multimedia Clock Controller" 243 select MSM_GCC_8998 244 select QCOM_GDSC 245 help 246 Support for the multimedia clock controller on msm8998 devices. 247 Say Y if you want to support multimedia devices such as display, 248 graphics, video encode/decode, camera, etc. 249 250config QCS_GCC_404 251 tristate "QCS404 Global Clock Controller" 252 help 253 Support for the global clock controller on QCS404 devices. 254 Say Y if you want to use multimedia devices or peripheral 255 devices such as UART, SPI, I2C, USB, SD/eMMC, PCIe etc. 256 257config SC_DISPCC_7180 258 tristate "SC7180 Display Clock Controller" 259 select SC_GCC_7180 260 help 261 Support for the display clock controller on Qualcomm Technologies, Inc 262 SC7180 devices. 263 Say Y if you want to support display devices and functionality such as 264 splash screen. 265 266config SC_GCC_7180 267 tristate "SC7180 Global Clock Controller" 268 select QCOM_GDSC 269 depends on COMMON_CLK_QCOM 270 help 271 Support for the global clock controller on SC7180 devices. 272 Say Y if you want to use peripheral devices such as UART, SPI, 273 I2C, USB, UFS, SDCC, etc. 274 275config SC_GPUCC_7180 276 tristate "SC7180 Graphics Clock Controller" 277 select SC_GCC_7180 278 help 279 Support for the graphics clock controller on SC7180 devices. 280 Say Y if you want to support graphics controller devices and 281 functionality such as 3D graphics. 282 283config SC_VIDEOCC_7180 284 tristate "SC7180 Video Clock Controller" 285 select SC_GCC_7180 286 help 287 Support for the video clock controller on SC7180 devices. 288 Say Y if you want to support video devices and functionality such as 289 video encode and decode. 290 291config SDM_CAMCC_845 292 tristate "SDM845 Camera Clock Controller" 293 select SDM_GCC_845 294 help 295 Support for the camera clock controller on SDM845 devices. 296 Say Y if you want to support camera devices and camera functionality. 297 298config SDM_GCC_660 299 tristate "SDM660 Global Clock Controller" 300 select QCOM_GDSC 301 help 302 Support for the global clock controller on SDM660 devices. 303 Say Y if you want to use peripheral devices such as UART, SPI, 304 i2C, USB, UFS, SDDC, PCIe, etc. 305 306config QCS_TURING_404 307 tristate "QCS404 Turing Clock Controller" 308 help 309 Support for the Turing Clock Controller on QCS404, provides clocks 310 and resets for the Turing subsystem. 311 312config QCS_Q6SSTOP_404 313 tristate "QCS404 Q6SSTOP Clock Controller" 314 select QCS_GCC_404 315 help 316 Support for the Q6SSTOP clock controller on QCS404 devices. 317 Say Y if you want to use the Q6SSTOP branch clocks of the WCSS clock 318 controller to reset the Q6SSTOP subsystem. 319 320config SDM_GCC_845 321 tristate "SDM845 Global Clock Controller" 322 select QCOM_GDSC 323 help 324 Support for the global clock controller on SDM845 devices. 325 Say Y if you want to use peripheral devices such as UART, SPI, 326 i2C, USB, UFS, SDDC, PCIe, etc. 327 328config SDM_GPUCC_845 329 tristate "SDM845 Graphics Clock Controller" 330 select SDM_GCC_845 331 help 332 Support for the graphics clock controller on SDM845 devices. 333 Say Y if you want to support graphics controller devices and 334 functionality such as 3D graphics. 335 336config SDM_VIDEOCC_845 337 tristate "SDM845 Video Clock Controller" 338 select SDM_GCC_845 339 select QCOM_GDSC 340 help 341 Support for the video clock controller on SDM845 devices. 342 Say Y if you want to support video devices and functionality such as 343 video encode and decode. 344 345config SDM_DISPCC_845 346 tristate "SDM845 Display Clock Controller" 347 select SDM_GCC_845 348 help 349 Support for the display clock controller on Qualcomm Technologies, Inc 350 SDM845 devices. 351 Say Y if you want to support display devices and functionality such as 352 splash screen. 353 354config SDM_LPASSCC_845 355 tristate "SDM845 Low Power Audio Subsystem (LPAAS) Clock Controller" 356 select SDM_GCC_845 357 help 358 Support for the LPASS clock controller on SDM845 devices. 359 Say Y if you want to use the LPASS branch clocks of the LPASS clock 360 controller to reset the LPASS subsystem. 361 362config SM_GCC_8150 363 tristate "SM8150 Global Clock Controller" 364 help 365 Support for the global clock controller on SM8150 devices. 366 Say Y if you want to use peripheral devices such as UART, 367 SPI, I2C, USB, SD/UFS, PCIe etc. 368 369config SPMI_PMIC_CLKDIV 370 tristate "SPMI PMIC clkdiv Support" 371 depends on SPMI || COMPILE_TEST 372 help 373 This driver supports the clkdiv functionality on the Qualcomm 374 Technologies, Inc. SPMI PMIC. It configures the frequency of 375 clkdiv outputs of the PMIC. These clocks are typically wired 376 through alternate functions on GPIO pins. 377 378config QCOM_HFPLL 379 tristate "High-Frequency PLL (HFPLL) Clock Controller" 380 help 381 Support for the high-frequency PLLs present on Qualcomm devices. 382 Say Y if you want to support CPU frequency scaling on devices 383 such as MSM8974, APQ8084, etc. 384 385config KPSS_XCC 386 tristate "KPSS Clock Controller" 387 help 388 Support for the Krait ACC and GCC clock controllers. Say Y 389 if you want to support CPU frequency scaling on devices such 390 as MSM8960, APQ8064, etc. 391 392config KRAITCC 393 tristate "Krait Clock Controller" 394 depends on ARM 395 select KRAIT_CLOCKS 396 help 397 Support for the Krait CPU clocks on Qualcomm devices. 398 Say Y if you want to support CPU frequency scaling. 399 400endif 401