# SPDX-License-Identifier: GPL-2.0-only
config KRAIT_CLOCKS
	bool
	select KRAIT_L2_ACCESSORS

config QCOM_GDSC
	bool
	select PM_GENERIC_DOMAINS if PM

config QCOM_RPMCC
	bool

menuconfig COMMON_CLK_QCOM
	tristate "Support for Qualcomm's clock controllers"
	depends on OF
	depends on ARCH_QCOM || COMPILE_TEST
	select RATIONAL
	select REGMAP_MMIO
	select RESET_CONTROLLER

if COMMON_CLK_QCOM

config QCOM_A53PLL
	tristate "MSM8916 A53 PLL"
	help
	  Support for the A53 PLL on MSM8916 devices. It provides
	  the CPU with frequencies above 1GHz.
	  Say Y if you want to support higher CPU frequencies on MSM8916
	  devices.

config QCOM_CLK_APCS_MSM8916
	tristate "MSM8916 APCS Clock Controller"
	depends on QCOM_APCS_IPC || COMPILE_TEST
	help
	  Support for the APCS Clock Controller on msm8916 devices. The
	  APCS is managing the mux and divider which feeds the CPUs.
	  Say Y if you want to support CPU frequency scaling on devices
	  such as msm8916.

config QCOM_CLK_RPM
	tristate "RPM based Clock Controller"
	depends on MFD_QCOM_RPM
	select QCOM_RPMCC
	help
	  The RPM (Resource Power Manager) is a dedicated hardware engine for
	  managing the shared SoC resources in order to keep the lowest power
	  profile. It communicates with other hardware subsystems via shared
	  memory and accepts clock requests, aggregates the requests and turns
	  the clocks on/off or scales them on demand.
	  Say Y if you want to support the clocks exposed by the RPM on
	  platforms such as apq8064, msm8660, msm8960 etc.

config QCOM_CLK_SMD_RPM
	tristate "RPM over SMD based Clock Controller"
	depends on QCOM_SMD_RPM
	select QCOM_RPMCC
	help
	  The RPM (Resource Power Manager) is a dedicated hardware engine for
	  managing the shared SoC resources in order to keep the lowest power
	  profile. It communicates with other hardware subsystems via shared
	  memory and accepts clock requests, aggregates the requests and turns
	  the clocks on/off or scales them on demand.
	  Say Y if you want to support the clocks exposed by the RPM on
	  platforms such as apq8016, apq8084, msm8974 etc.

config QCOM_CLK_RPMH
	tristate "RPMh Clock Driver"
	depends on QCOM_RPMH
	help
	 RPMh manages shared resources on some Qualcomm Technologies, Inc.
	 SoCs. It accepts requests from other hardware subsystems via RSC.
	 Say Y if you want to support the clocks exposed by RPMh on
	 platforms such as SDM845.

config APQ_GCC_8084
	tristate "APQ8084 Global Clock Controller"
	select QCOM_GDSC
	help
	  Support for the global clock controller on apq8084 devices.
	  Say Y if you want to use peripheral devices such as UART, SPI,
	  i2c, USB, SD/eMMC, SATA, PCIe, etc.

config APQ_MMCC_8084
	tristate "APQ8084 Multimedia Clock Controller"
	select APQ_GCC_8084
	select QCOM_GDSC
	help
	  Support for the multimedia clock controller on apq8084 devices.
	  Say Y if you want to support multimedia devices such as display,
	  graphics, video encode/decode, camera, etc.

config IPQ_GCC_4019
	tristate "IPQ4019 Global Clock Controller"
	help
	  Support for the global clock controller on ipq4019 devices.
	  Say Y if you want to use peripheral devices such as UART, SPI,
	  i2c, USB, SD/eMMC, etc.

config IPQ_GCC_6018
	tristate "IPQ6018 Global Clock Controller"
	help
	  Support for global clock controller on ipq6018 devices.
	  Say Y if you want to use peripheral devices such as UART, SPI,
	  i2c, USB, SD/eMMC, etc. Select this for the root clock
	  of ipq6018.

config IPQ_GCC_806X
	tristate "IPQ806x Global Clock Controller"
	help
	  Support for the global clock controller on ipq806x devices.
	  Say Y if you want to use peripheral devices such as UART, SPI,
	  i2c, USB, SD/eMMC, etc.

config IPQ_LCC_806X
	tristate "IPQ806x LPASS Clock Controller"
	select IPQ_GCC_806X
	help
	  Support for the LPASS clock controller on ipq806x devices.
	  Say Y if you want to use audio devices such as i2s, pcm,
	  S/PDIF, etc.

config IPQ_GCC_8074
	tristate "IPQ8074 Global Clock Controller"
	help
	  Support for global clock controller on ipq8074 devices.
	  Say Y if you want to use peripheral devices such as UART, SPI,
	  i2c, USB, SD/eMMC, etc. Select this for the root clock
	  of ipq8074.

config MSM_GCC_8660
	tristate "MSM8660 Global Clock Controller"
	help
	  Support for the global clock controller on msm8660 devices.
	  Say Y if you want to use peripheral devices such as UART, SPI,
	  i2c, USB, SD/eMMC, etc.

config MSM_GCC_8916
	tristate "MSM8916 Global Clock Controller"
	select QCOM_GDSC
	help
	  Support for the global clock controller on msm8916 devices.
	  Say Y if you want to use devices such as UART, SPI i2c, USB,
	  SD/eMMC, display, graphics, camera etc.

config MSM_GCC_8960
	tristate "APQ8064/MSM8960 Global Clock Controller"
	help
	  Support for the global clock controller on apq8064/msm8960 devices.
	  Say Y if you want to use peripheral devices such as UART, SPI,
	  i2c, USB, SD/eMMC, SATA, PCIe, etc.

config MSM_LCC_8960
	tristate "APQ8064/MSM8960 LPASS Clock Controller"
	select MSM_GCC_8960
	help
	  Support for the LPASS clock controller on apq8064/msm8960 devices.
	  Say Y if you want to use audio devices such as i2s, pcm,
	  SLIMBus, etc.

config MDM_GCC_9615
	tristate "MDM9615 Global Clock Controller"
	help
	  Support for the global clock controller on mdm9615 devices.
	  Say Y if you want to use peripheral devices such as UART, SPI,
	  i2c, USB, SD/eMMC, etc.

config MDM_LCC_9615
	tristate "MDM9615 LPASS Clock Controller"
	select MDM_GCC_9615
	help
	  Support for the LPASS clock controller on mdm9615 devices.
	  Say Y if you want to use audio devices such as i2s, pcm,
	  SLIMBus, etc.

config MSM_MMCC_8960
	tristate "MSM8960 Multimedia Clock Controller"
	select MSM_GCC_8960
	help
	  Support for the multimedia clock controller on msm8960 devices.
	  Say Y if you want to support multimedia devices such as display,
	  graphics, video encode/decode, camera, etc.

config MSM_GCC_8974
	tristate "MSM8974 Global Clock Controller"
	select QCOM_GDSC
	help
	  Support for the global clock controller on msm8974 devices.
	  Say Y if you want to use peripheral devices such as UART, SPI,
	  i2c, USB, SD/eMMC, SATA, PCIe, etc.

config MSM_MMCC_8974
	tristate "MSM8974 Multimedia Clock Controller"
	select MSM_GCC_8974
	select QCOM_GDSC
	help
	  Support for the multimedia clock controller on msm8974 devices.
	  Say Y if you want to support multimedia devices such as display,
	  graphics, video encode/decode, camera, etc.

config MSM_GCC_8994
	tristate "MSM8994 Global Clock Controller"
	help
	  Support for the global clock controller on msm8994 devices.
	  Say Y if you want to use peripheral devices such as UART, SPI,
	  i2c, USB, UFS, SD/eMMC, PCIe, etc.

config MSM_GCC_8996
	tristate "MSM8996 Global Clock Controller"
	select QCOM_GDSC
	help
	  Support for the global clock controller on msm8996 devices.
	  Say Y if you want to use peripheral devices such as UART, SPI,
	  i2c, USB, UFS, SD/eMMC, PCIe, etc.

config MSM_MMCC_8996
	tristate "MSM8996 Multimedia Clock Controller"
	select MSM_GCC_8996
	select QCOM_GDSC
	help
	  Support for the multimedia clock controller on msm8996 devices.
	  Say Y if you want to support multimedia devices such as display,
	  graphics, video encode/decode, camera, etc.

config MSM_GCC_8998
	tristate "MSM8998 Global Clock Controller"
	select QCOM_GDSC
	help
	  Support for the global clock controller on msm8998 devices.
	  Say Y if you want to use peripheral devices such as UART, SPI,
	  i2c, USB, UFS, SD/eMMC, PCIe, etc.

config MSM_GPUCC_8998
	tristate "MSM8998 Graphics Clock Controller"
	select MSM_GCC_8998
	select QCOM_GDSC
	help
	  Support for the graphics clock controller on MSM8998 devices.
	  Say Y if you want to support graphics controller devices and
	  functionality such as 3D graphics.

config MSM_MMCC_8998
	tristate "MSM8998 Multimedia Clock Controller"
	select MSM_GCC_8998
	select QCOM_GDSC
	help
	  Support for the multimedia clock controller on msm8998 devices.
	  Say Y if you want to support multimedia devices such as display,
	  graphics, video encode/decode, camera, etc.

config QCS_GCC_404
	tristate "QCS404 Global Clock Controller"
	help
	  Support for the global clock controller on QCS404 devices.
	  Say Y if you want to use multimedia devices or peripheral
	  devices such as UART, SPI, I2C, USB, SD/eMMC, PCIe etc.

config SC_DISPCC_7180
	tristate "SC7180 Display Clock Controller"
	select SC_GCC_7180
	help
	  Support for the display clock controller on Qualcomm Technologies, Inc
	  SC7180 devices.
	  Say Y if you want to support display devices and functionality such as
	  splash screen.

config SC_GCC_7180
	tristate "SC7180 Global Clock Controller"
	select QCOM_GDSC
	depends on COMMON_CLK_QCOM
	help
	  Support for the global clock controller on SC7180 devices.
	  Say Y if you want to use peripheral devices such as UART, SPI,
	  I2C, USB, UFS, SDCC, etc.

config SC_GPUCC_7180
	tristate "SC7180 Graphics Clock Controller"
	select SC_GCC_7180
	help
	  Support for the graphics clock controller on SC7180 devices.
	  Say Y if you want to support graphics controller devices and
	  functionality such as 3D graphics.

config SC_MSS_7180
	tristate "SC7180 Modem Clock Controller"
	select SC_GCC_7180
	help
	  Support for the Modem Subsystem clock controller on Qualcomm
	  Technologies, Inc on SC7180 devices.
	  Say Y if you want to use the Modem branch clocks of the Modem
	  subsystem clock controller to reset the MSS subsystem.

config SC_VIDEOCC_7180
	tristate "SC7180 Video Clock Controller"
	select SC_GCC_7180
	help
	  Support for the video clock controller on SC7180 devices.
	  Say Y if you want to support video devices and functionality such as
	  video encode and decode.

config SDM_CAMCC_845
	tristate "SDM845 Camera Clock Controller"
	select SDM_GCC_845
	help
	  Support for the camera clock controller on SDM845 devices.
	  Say Y if you want to support camera devices and camera functionality.

config SDM_GCC_660
	tristate "SDM660 Global Clock Controller"
	select QCOM_GDSC
	help
	  Support for the global clock controller on SDM660 devices.
	  Say Y if you want to use peripheral devices such as UART, SPI,
	  i2C, USB, UFS, SDDC, PCIe, etc.

config QCS_TURING_404
	tristate "QCS404 Turing Clock Controller"
	help
	  Support for the Turing Clock Controller on QCS404, provides clocks
	  and resets for the Turing subsystem.

config QCS_Q6SSTOP_404
	tristate "QCS404 Q6SSTOP Clock Controller"
	select QCS_GCC_404
	help
	  Support for the Q6SSTOP clock controller on QCS404 devices.
	  Say Y if you want to use the Q6SSTOP branch clocks of the WCSS clock
	  controller to reset the Q6SSTOP subsystem.

config SDM_GCC_845
	tristate "SDM845 Global Clock Controller"
	select QCOM_GDSC
	help
	  Support for the global clock controller on SDM845 devices.
	  Say Y if you want to use peripheral devices such as UART, SPI,
	  i2C, USB, UFS, SDDC, PCIe, etc.

config SDM_GPUCC_845
	tristate "SDM845 Graphics Clock Controller"
	select SDM_GCC_845
	help
	  Support for the graphics clock controller on SDM845 devices.
	  Say Y if you want to support graphics controller devices and
	  functionality such as 3D graphics.

config SDM_VIDEOCC_845
	tristate "SDM845 Video Clock Controller"
	select SDM_GCC_845
	select QCOM_GDSC
	help
	  Support for the video clock controller on SDM845 devices.
	  Say Y if you want to support video devices and functionality such as
	  video encode and decode.

config SDM_DISPCC_845
	tristate "SDM845 Display Clock Controller"
	select SDM_GCC_845
	help
	  Support for the display clock controller on Qualcomm Technologies, Inc
	  SDM845 devices.
	  Say Y if you want to support display devices and functionality such as
	  splash screen.

config SDM_LPASSCC_845
	tristate "SDM845 Low Power Audio Subsystem (LPAAS) Clock Controller"
	select SDM_GCC_845
	help
	  Support for the LPASS clock controller on SDM845 devices.
	  Say Y if you want to use the LPASS branch clocks of the LPASS clock
	  controller to reset the LPASS subsystem.

config SM_GCC_8150
	tristate "SM8150 Global Clock Controller"
	help
	  Support for the global clock controller on SM8150 devices.
	  Say Y if you want to use peripheral devices such as UART,
	  SPI, I2C, USB, SD/UFS, PCIe etc.

config SM_GCC_8250
	tristate "SM8250 Global Clock Controller"
	select QCOM_GDSC
	help
	  Support for the global clock controller on SM8250 devices.
	  Say Y if you want to use peripheral devices such as UART,
	  SPI, I2C, USB, SD/UFS, PCIe etc.

config SPMI_PMIC_CLKDIV
	tristate "SPMI PMIC clkdiv Support"
	depends on SPMI || COMPILE_TEST
	help
	  This driver supports the clkdiv functionality on the Qualcomm
	  Technologies, Inc. SPMI PMIC. It configures the frequency of
	  clkdiv outputs of the PMIC. These clocks are typically wired
	  through alternate functions on GPIO pins.

config QCOM_HFPLL
	tristate "High-Frequency PLL (HFPLL) Clock Controller"
	help
	  Support for the high-frequency PLLs present on Qualcomm devices.
	  Say Y if you want to support CPU frequency scaling on devices
	  such as MSM8974, APQ8084, etc.

config KPSS_XCC
	tristate "KPSS Clock Controller"
	help
	  Support for the Krait ACC and GCC clock controllers. Say Y
	  if you want to support CPU frequency scaling on devices such
	  as MSM8960, APQ8064, etc.

config KRAITCC
	tristate "Krait Clock Controller"
	depends on ARM
	select KRAIT_CLOCKS
	help
	  Support for the Krait CPU clocks on Qualcomm devices.
	  Say Y if you want to support CPU frequency scaling.

endif
