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_8939 146 tristate "MSM8939 Global Clock Controller" 147 select QCOM_GDSC 148 help 149 Support for the global clock controller on msm8939 devices. 150 Say Y if you want to use devices such as UART, SPI i2c, USB, 151 SD/eMMC, display, graphics, camera etc. 152 153config MSM_GCC_8960 154 tristate "APQ8064/MSM8960 Global Clock Controller" 155 help 156 Support for the global clock controller on apq8064/msm8960 devices. 157 Say Y if you want to use peripheral devices such as UART, SPI, 158 i2c, USB, SD/eMMC, SATA, PCIe, etc. 159 160config MSM_LCC_8960 161 tristate "APQ8064/MSM8960 LPASS Clock Controller" 162 select MSM_GCC_8960 163 help 164 Support for the LPASS clock controller on apq8064/msm8960 devices. 165 Say Y if you want to use audio devices such as i2s, pcm, 166 SLIMBus, etc. 167 168config MDM_GCC_9615 169 tristate "MDM9615 Global Clock Controller" 170 help 171 Support for the global clock controller on mdm9615 devices. 172 Say Y if you want to use peripheral devices such as UART, SPI, 173 i2c, USB, SD/eMMC, etc. 174 175config MDM_LCC_9615 176 tristate "MDM9615 LPASS Clock Controller" 177 select MDM_GCC_9615 178 help 179 Support for the LPASS clock controller on mdm9615 devices. 180 Say Y if you want to use audio devices such as i2s, pcm, 181 SLIMBus, etc. 182 183config MSM_MMCC_8960 184 tristate "MSM8960 Multimedia Clock Controller" 185 select MSM_GCC_8960 186 help 187 Support for the multimedia clock controller on msm8960 devices. 188 Say Y if you want to support multimedia devices such as display, 189 graphics, video encode/decode, camera, etc. 190 191config MSM_GCC_8974 192 tristate "MSM8974 Global Clock Controller" 193 select QCOM_GDSC 194 help 195 Support for the global clock controller on msm8974 devices. 196 Say Y if you want to use peripheral devices such as UART, SPI, 197 i2c, USB, SD/eMMC, SATA, PCIe, etc. 198 199config MSM_MMCC_8974 200 tristate "MSM8974 Multimedia Clock Controller" 201 select MSM_GCC_8974 202 select QCOM_GDSC 203 help 204 Support for the multimedia clock controller on msm8974 devices. 205 Say Y if you want to support multimedia devices such as display, 206 graphics, video encode/decode, camera, etc. 207 208config MSM_GCC_8994 209 tristate "MSM8994 Global Clock Controller" 210 help 211 Support for the global clock controller on msm8994 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_GCC_8996 216 tristate "MSM8996 Global Clock Controller" 217 select QCOM_GDSC 218 help 219 Support for the global clock controller on msm8996 devices. 220 Say Y if you want to use peripheral devices such as UART, SPI, 221 i2c, USB, UFS, SD/eMMC, PCIe, etc. 222 223config MSM_MMCC_8996 224 tristate "MSM8996 Multimedia Clock Controller" 225 select MSM_GCC_8996 226 select QCOM_GDSC 227 help 228 Support for the multimedia clock controller on msm8996 devices. 229 Say Y if you want to support multimedia devices such as display, 230 graphics, video encode/decode, camera, etc. 231 232config MSM_GCC_8998 233 tristate "MSM8998 Global Clock Controller" 234 select QCOM_GDSC 235 help 236 Support for the global clock controller on msm8998 devices. 237 Say Y if you want to use peripheral devices such as UART, SPI, 238 i2c, USB, UFS, SD/eMMC, PCIe, etc. 239 240config MSM_GPUCC_8998 241 tristate "MSM8998 Graphics Clock Controller" 242 select MSM_GCC_8998 243 select QCOM_GDSC 244 help 245 Support for the graphics clock controller on MSM8998 devices. 246 Say Y if you want to support graphics controller devices and 247 functionality such as 3D graphics. 248 249config MSM_MMCC_8998 250 tristate "MSM8998 Multimedia Clock Controller" 251 select MSM_GCC_8998 252 select QCOM_GDSC 253 help 254 Support for the multimedia clock controller on msm8998 devices. 255 Say Y if you want to support multimedia devices such as display, 256 graphics, video encode/decode, camera, etc. 257 258config QCS_GCC_404 259 tristate "QCS404 Global Clock Controller" 260 help 261 Support for the global clock controller on QCS404 devices. 262 Say Y if you want to use multimedia devices or peripheral 263 devices such as UART, SPI, I2C, USB, SD/eMMC, PCIe etc. 264 265config SC_DISPCC_7180 266 tristate "SC7180 Display Clock Controller" 267 select SC_GCC_7180 268 help 269 Support for the display clock controller on Qualcomm Technologies, Inc 270 SC7180 devices. 271 Say Y if you want to support display devices and functionality such as 272 splash screen. 273 274config SC_GCC_7180 275 tristate "SC7180 Global Clock Controller" 276 select QCOM_GDSC 277 depends on COMMON_CLK_QCOM 278 help 279 Support for the global clock controller on SC7180 devices. 280 Say Y if you want to use peripheral devices such as UART, SPI, 281 I2C, USB, UFS, SDCC, etc. 282 283config SC_GPUCC_7180 284 tristate "SC7180 Graphics Clock Controller" 285 select SC_GCC_7180 286 help 287 Support for the graphics clock controller on SC7180 devices. 288 Say Y if you want to support graphics controller devices and 289 functionality such as 3D graphics. 290 291config SC_MSS_7180 292 tristate "SC7180 Modem Clock Controller" 293 select SC_GCC_7180 294 help 295 Support for the Modem Subsystem clock controller on Qualcomm 296 Technologies, Inc on SC7180 devices. 297 Say Y if you want to use the Modem branch clocks of the Modem 298 subsystem clock controller to reset the MSS subsystem. 299 300config SC_VIDEOCC_7180 301 tristate "SC7180 Video Clock Controller" 302 select SC_GCC_7180 303 help 304 Support for the video clock controller on SC7180 devices. 305 Say Y if you want to support video devices and functionality such as 306 video encode and decode. 307 308config SDM_CAMCC_845 309 tristate "SDM845 Camera Clock Controller" 310 select SDM_GCC_845 311 help 312 Support for the camera clock controller on SDM845 devices. 313 Say Y if you want to support camera devices and camera functionality. 314 315config SDM_GCC_660 316 tristate "SDM660 Global Clock Controller" 317 select QCOM_GDSC 318 help 319 Support for the global clock controller on SDM660 devices. 320 Say Y if you want to use peripheral devices such as UART, SPI, 321 i2C, USB, UFS, SDDC, PCIe, etc. 322 323config QCS_TURING_404 324 tristate "QCS404 Turing Clock Controller" 325 help 326 Support for the Turing Clock Controller on QCS404, provides clocks 327 and resets for the Turing subsystem. 328 329config QCS_Q6SSTOP_404 330 tristate "QCS404 Q6SSTOP Clock Controller" 331 select QCS_GCC_404 332 help 333 Support for the Q6SSTOP clock controller on QCS404 devices. 334 Say Y if you want to use the Q6SSTOP branch clocks of the WCSS clock 335 controller to reset the Q6SSTOP subsystem. 336 337config SDM_GCC_845 338 tristate "SDM845 Global Clock Controller" 339 select QCOM_GDSC 340 help 341 Support for the global clock controller on SDM845 devices. 342 Say Y if you want to use peripheral devices such as UART, SPI, 343 i2C, USB, UFS, SDDC, PCIe, etc. 344 345config SDM_GPUCC_845 346 tristate "SDM845 Graphics Clock Controller" 347 select SDM_GCC_845 348 help 349 Support for the graphics clock controller on SDM845 devices. 350 Say Y if you want to support graphics controller devices and 351 functionality such as 3D graphics. 352 353config SDM_VIDEOCC_845 354 tristate "SDM845 Video Clock Controller" 355 select SDM_GCC_845 356 select QCOM_GDSC 357 help 358 Support for the video clock controller on SDM845 devices. 359 Say Y if you want to support video devices and functionality such as 360 video encode and decode. 361 362config SDM_DISPCC_845 363 tristate "SDM845 Display Clock Controller" 364 select SDM_GCC_845 365 help 366 Support for the display clock controller on Qualcomm Technologies, Inc 367 SDM845 devices. 368 Say Y if you want to support display devices and functionality such as 369 splash screen. 370 371config SDM_LPASSCC_845 372 tristate "SDM845 Low Power Audio Subsystem (LPAAS) Clock Controller" 373 select SDM_GCC_845 374 help 375 Support for the LPASS clock controller on SDM845 devices. 376 Say Y if you want to use the LPASS branch clocks of the LPASS clock 377 controller to reset the LPASS subsystem. 378 379config SM_GCC_8150 380 tristate "SM8150 Global Clock Controller" 381 help 382 Support for the global clock controller on SM8150 devices. 383 Say Y if you want to use peripheral devices such as UART, 384 SPI, I2C, USB, SD/UFS, PCIe etc. 385 386config SM_GCC_8250 387 tristate "SM8250 Global Clock Controller" 388 select QCOM_GDSC 389 help 390 Support for the global clock controller on SM8250 devices. 391 Say Y if you want to use peripheral devices such as UART, 392 SPI, I2C, USB, SD/UFS, PCIe etc. 393 394config SPMI_PMIC_CLKDIV 395 tristate "SPMI PMIC clkdiv Support" 396 depends on SPMI || COMPILE_TEST 397 help 398 This driver supports the clkdiv functionality on the Qualcomm 399 Technologies, Inc. SPMI PMIC. It configures the frequency of 400 clkdiv outputs of the PMIC. These clocks are typically wired 401 through alternate functions on GPIO pins. 402 403config QCOM_HFPLL 404 tristate "High-Frequency PLL (HFPLL) Clock Controller" 405 help 406 Support for the high-frequency PLLs present on Qualcomm devices. 407 Say Y if you want to support CPU frequency scaling on devices 408 such as MSM8974, APQ8084, etc. 409 410config KPSS_XCC 411 tristate "KPSS Clock Controller" 412 help 413 Support for the Krait ACC and GCC clock controllers. Say Y 414 if you want to support CPU frequency scaling on devices such 415 as MSM8960, APQ8064, etc. 416 417config KRAITCC 418 tristate "Krait Clock Controller" 419 depends on ARM 420 select KRAIT_CLOCKS 421 help 422 Support for the Krait CPU clocks on Qualcomm devices. 423 Say Y if you want to support CPU frequency scaling. 424 425endif 426