# 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

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
	select INTERCONNECT
	select INTERCONNECT_CLK

if COMMON_CLK_QCOM

config CLK_X1E80100_CAMCC
	tristate "X1E80100 Camera Clock Controller"
	depends on ARM64 || COMPILE_TEST
	select CLK_X1E80100_GCC
	help
	  Support for the camera clock controller on X1E80100 devices.
	  Say Y if you want to support camera devices and camera functionality.

config CLK_X1E80100_DISPCC
	tristate "X1E80100 Display Clock Controller"
	depends on ARM64 || COMPILE_TEST
	select CLK_X1E80100_GCC
	help
	  Support for the two display clock controllers on Qualcomm
	  Technologies, Inc. X1E80100 devices.
	  Say Y if you want to support display devices and functionality such as
	  splash screen.

config CLK_X1E80100_GCC
	tristate "X1E80100 Global Clock Controller"
	depends on ARM64 || COMPILE_TEST
	select QCOM_GDSC
	help
	  Support for the global clock controller on Qualcomm Technologies, Inc
	  X1E80100 devices.
	  Say Y if you want to use peripheral devices such as UART, SPI, I2C,
	  USB, UFS, SD/eMMC, PCIe, etc.

config CLK_X1E80100_GPUCC
	tristate "X1E80100 Graphics Clock Controller"
	depends on ARM64 || COMPILE_TEST
	select CLK_X1E80100_GCC
	help
	  Support for the graphics clock controller on X1E80100 devices.
	  Say Y if you want to support graphics controller devices and
	  functionality such as 3D graphics.

config CLK_X1E80100_TCSRCC
	tristate "X1E80100 TCSR Clock Controller"
	depends on ARM64 || COMPILE_TEST
	select QCOM_GDSC
	help
	  Support for the TCSR clock controller on X1E80100 devices.
	  Say Y if you want to use peripheral devices such as SD/UFS.

config CLK_QCM2290_GPUCC
	tristate "QCM2290 Graphics Clock Controller"
	depends on ARM64 || COMPILE_TEST
	select QCM_GCC_2290
	help
	  Support for the graphics clock controller on QCM2290 devices.
	  Say Y if you want to support graphics controller devices and
	  functionality such as 3D graphics.

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_A7PLL
	tristate "A7 PLL driver for SDX55 and SDX65"
	help
	  Support for the A7 PLL on SDX55 and SDX65 devices. It provides the CPU with
	  frequencies above 1GHz.
	  Say Y if you want to support higher CPU frequencies on SDX55 and SDX65
	  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_APCC_MSM8996
	tristate "MSM8996 CPU Clock Controller"
	select QCOM_KRYO_L2_ACCESSORS
	select INTERCONNECT_CLK if INTERCONNECT
	depends on ARM64
	help
	  Support for the CPU clock controller on msm8996 devices.
	  Say Y if you want to support CPU clock scaling using CPUfreq
	  drivers for dynamic power management.

config QCOM_CLK_APCS_SDX55
	tristate "SDX55 and SDX65 APCS Clock Controller"
	depends on QCOM_APCS_IPC || COMPILE_TEST
	depends on ARM || COMPILE_TEST
	help
	  Support for the APCS Clock Controller on SDX55, SDX65 platforms. 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 SDX55, SDX65.

config QCOM_CLK_RPM
	tristate "RPM based Clock Controller"
	depends on MFD_QCOM_RPM
	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
	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"
	depends on ARM || COMPILE_TEST
	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"
	depends on ARM || COMPILE_TEST
	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_APSS_PLL
	tristate "IPQ APSS PLL"
	help
	  Support for APSS PLL on ipq devices. The APSS PLL is the main
	  clock that feeds the CPUs on ipq based devices.
	  Say Y if you want to support CPU frequency scaling on ipq based
	  devices.

config IPQ_APSS_6018
	tristate "IPQ APSS Clock Controller"
	select IPQ_APSS_PLL
	depends on QCOM_APCS_IPC || COMPILE_TEST
	depends on QCOM_SMEM
	help
	  Support for APSS clock controller on IPQ platforms. The
	  APSS clock controller manages the Mux and enable block that feeds the
	  CPUs.
	  Say Y if you want to support CPU frequency scaling on
	  ipq based devices.

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_5018
	tristate "IPQ5018 Global Clock Controller"
	depends on ARM64 || COMPILE_TEST
	help
	  Support for global clock controller on ipq5018 devices.
	  Say Y if you want to use peripheral devices such as UART, SPI,
	  i2c, USB, SD/eMMC, etc.

config IPQ_GCC_5332
	tristate "IPQ5332 Global Clock Controller"
	depends on ARM64 || COMPILE_TEST
	help
	  Support for the global clock controller on ipq5332 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"
	depends on ARM || COMPILE_TEST
	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"
	depends on ARM || COMPILE_TEST
	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"
	select QCOM_GDSC
	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 IPQ_GCC_9574
	tristate "IPQ9574 Global Clock Controller"
	help
	  Support for global clock controller on ipq9574 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 ipq9574.

config IPQ_NSSCC_QCA8K
	tristate "QCA8K(QCA8386 or QCA8084) NSS Clock Controller"
	depends on MDIO_BUS
	help
	  Support for NSS(Network SubSystem) clock controller on
	  qca8386/qca8084 chip.
	  Say Y or M if you want to use network features of switch or
	  PHY device. Select this for the root clock of qca8k.

config MSM_GCC_8660
	tristate "MSM8660 Global Clock Controller"
	depends on ARM || COMPILE_TEST
	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_8909
	tristate "MSM8909 Global Clock Controller"
	depends on ARM || COMPILE_TEST
	select QCOM_GDSC
	help
	  Support for the global clock controller on msm8909 devices.
	  Say Y if you want to use devices such as UART, SPI, I2C, USB,
	  SD/eMMC, display, graphics, camera 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_8917
	tristate "MSM8917/QM215 Global Clock Controller"
	depends on ARM64 || COMPILE_TEST
	select QCOM_GDSC
	help
	  Support for the global clock controller on msm8917 and qm215
	  devices.
	  Say Y if you want to use devices such as UART, SPI i2c, USB,
	  SD/eMMC, display, graphics, camera etc.

config MSM_GCC_8939
	tristate "MSM8939 Global Clock Controller"
	select QCOM_GDSC
	help
	  Support for the global clock controller on msm8939 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"
	depends on ARM || COMPILE_TEST
	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/MDM9650 LPASS Clock Controller"
	depends on ARM || COMPILE_TEST
	help
	  Support for the LPASS clock controller on apq8064/msm8960/mdm9650
	  devices.
	  Say Y if you want to use audio devices such as i2s, pcm,
	  SLIMBus, etc.

config MDM_GCC_9607
	tristate "MDM9607 Global Clock Controller"
	depends on ARM || COMPILE_TEST
	help
	  Support for the global clock controller on mdm9607 devices.
	  Say Y if you want to use peripheral devices such as UART, SPI,
	  I2C, USB, SD/eMMC, etc.

config MDM_GCC_9615
	tristate "MDM9615 Global Clock Controller"
	depends on ARM || COMPILE_TEST
	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 MSM_MMCC_8960
	tristate "MSM8960 Multimedia Clock Controller"
	depends on ARM || COMPILE_TEST
	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_8953
	tristate "MSM8953 Global Clock Controller"
	select QCOM_GDSC
	help
	  Support for the global clock controller on msm8953 devices.
	  Say Y if you want to use devices such as UART, SPI i2c, USB,
	  SD/eMMC, display, graphics, camera etc.

config MSM_GCC_8974
	tristate "MSM8974 Global Clock Controller"
	depends on ARM || COMPILE_TEST
	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"
	depends on ARM || COMPILE_TEST
	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_8976
	tristate "MSM8956/76 Global Clock Controller"
	select QCOM_GDSC
	help
	  Support for the global clock controller on msm8956/76 devices.
	  Say Y if you want to use peripheral devices such as UART, SPI,
	  i2c, USB, SD/eMMC, SATA, PCIe, etc.

config MSM_MMCC_8994
	tristate "MSM8994 Multimedia Clock Controller"
	select MSM_GCC_8994
	select QCOM_GDSC
	help
	  Support for the multimedia clock controller on msm8994 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 QCM_GCC_2290
	tristate "QCM2290 Global Clock Controller"
	select QCOM_GDSC
	help
	  Support for the global clock controller on QCM2290 devices.
	  Say Y if you want to use multimedia devices or peripheral
	  devices such as UART, SPI, I2C, USB, SD/eMMC etc.

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

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_CAMCC_7180
	tristate "SC7180 Camera Clock Controller"
	depends on ARM64 || COMPILE_TEST
	select SC_GCC_7180
	help
	  Support for the camera clock controller on Qualcomm Technologies, Inc
	  SC7180 devices.
	  Say Y if you want to support camera devices and functionality such as
	  capturing pictures.

config SC_CAMCC_7280
	tristate "SC7280 Camera Clock Controller"
	depends on ARM64 || COMPILE_TEST
	select SC_GCC_7280
	help
	  Support for the camera clock controller on Qualcomm Technologies, Inc
	  SC7280 devices.
	  Say Y if you want to support camera devices and functionality such as
	  capturing pictures.

config SC_CAMCC_8280XP
	tristate "SC8280XP Camera Clock Controller"
	depends on ARM64 || COMPILE_TEST
	select SC_GCC_8280XP
	help
	  Support for the camera clock controller on Qualcomm Technologies, Inc
	  SC8280XP devices.
	  Say Y if you want to support camera devices and functionality such as
	  capturing pictures.

config SC_DISPCC_7180
	tristate "SC7180 Display Clock Controller"
	depends on ARM64 || COMPILE_TEST
	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_DISPCC_7280
	tristate "SC7280 Display Clock Controller"
	depends on ARM64 || COMPILE_TEST
	select SC_GCC_7280
	help
	  Support for the display clock controller on Qualcomm Technologies, Inc.
	  SC7280 devices.
	  Say Y if you want to support display devices and functionality such as
	  splash screen.

config SC_DISPCC_8280XP
	tristate "SC8280XP Display Clock Controller"
	depends on ARM64 || COMPILE_TEST
	select SC_GCC_8280XP
	help
	  Support for the two display clock controllers on Qualcomm
	  Technologies, Inc. SC8280XP devices.
	  Say Y if you want to support display devices and functionality such as
	  splash screen.

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

config SA_GPUCC_8775P
	tristate "SA8775P Graphics clock controller"
	select QCOM_GDSC
	select SA_GCC_8775P
	help
	  Support for the graphics clock controller on SA8775P devices.
	  Say Y if you want to support graphics controller devices and
	  functionality such as 3D graphics.

config SC_GCC_7180
	tristate "SC7180 Global Clock Controller"
	select QCOM_GDSC
	depends on COMMON_CLK_QCOM
	depends on ARM64 || COMPILE_TEST
	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_GCC_7280
	tristate "SC7280 Global Clock Controller"
	select QCOM_GDSC
	depends on COMMON_CLK_QCOM
	depends on ARM64 || COMPILE_TEST
	help
	  Support for the global clock controller on SC7280 devices.
	  Say Y if you want to use peripheral devices such as UART, SPI,
	  I2C, USB, UFS, SDCC, PCIe etc.

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

config SC_GCC_8280XP
	tristate "SC8280XP Global Clock Controller"
	select QCOM_GDSC
	depends on COMMON_CLK_QCOM
	depends on ARM64 || COMPILE_TEST
	help
	  Support for the global clock controller on SC8280XP 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"
	depends on ARM64 || COMPILE_TEST
	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_GPUCC_7280
	tristate "SC7280 Graphics Clock Controller"
	depends on ARM64 || COMPILE_TEST
	select SC_GCC_7280
	help
	  Support for the graphics clock controller on SC7280 devices.
	  Say Y if you want to support graphics controller devices and
	  functionality such as 3D graphics.

config SC_GPUCC_8280XP
	tristate "SC8280XP Graphics Clock Controller"
	depends on ARM64 || COMPILE_TEST
	select SC_GCC_8280XP
	help
	  Support for the graphics clock controller on SC8280XP devices.
	  Say Y if you want to support graphics controller devices and
	  functionality such as 3D graphics.

config SC_LPASSCC_7280
	tristate "SC7280 Low Power Audio Subsystem (LPASS) Clock Controller"
	depends on ARM64 || COMPILE_TEST
	select SC_GCC_7280
	help
	  Support for the LPASS clock controller on SC7280 devices.
	  Say Y if you want to use the LPASS branch clocks of the LPASS clock
	  controller to reset the LPASS subsystem.

config SC_LPASSCC_8280XP
	tristate "SC8280 Low Power Audio Subsystem (LPASS) Clock Controller"
	depends on ARM64 || COMPILE_TEST
	select SC_GCC_8280XP
	help
	  Support for the LPASS clock controller on SC8280XP devices.
	  Say Y if you want to use the LPASS branch clocks of the LPASS clock
	  controller to reset the LPASS subsystem.

config SC_LPASS_CORECC_7180
	tristate "SC7180 LPASS Core Clock Controller"
	depends on ARM64 || COMPILE_TEST
	select SC_GCC_7180
	help
	  Support for the LPASS(Low Power Audio Subsystem) core clock controller
	  on SC7180 devices.
	  Say Y if you want to use LPASS clocks and power domains of the LPASS
	  core clock controller.

config SC_LPASS_CORECC_7280
	tristate "SC7280 LPASS Core & Audio Clock Controller"
	depends on ARM64 || COMPILE_TEST
	select SC_GCC_7280
	select QCOM_GDSC
	help
	  Support for the LPASS(Low Power Audio Subsystem) core and audio clock
	  controller on SC7280 devices.
	  Say Y if you want to use LPASS clocks and power domains of the LPASS
	  core clock controller.

config SC_VIDEOCC_7180
	tristate "SC7180 Video Clock Controller"
	depends on ARM64 || COMPILE_TEST
	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 SC_VIDEOCC_7280
	tristate "SC7280 Video Clock Controller"
	depends on ARM64 || COMPILE_TEST
	select SC_GCC_7280
	help
	  Support for the video clock controller on SC7280 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"
	depends on ARM64 || COMPILE_TEST
	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"
	depends on ARM64 || COMPILE_TEST
	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 SDM_MMCC_660
	tristate "SDM660 Multimedia Clock Controller"
	depends on ARM64 || COMPILE_TEST
	select SDM_GCC_660
	select QCOM_GDSC
	help
	  Support for the multimedia clock controller on SDM660 devices.
	  Say Y if you want to support multimedia devices such as display,
	  graphics, video encode/decode, camera, etc.

config SDM_GPUCC_660
	tristate "SDM660 Graphics Clock Controller"
	depends on ARM64 || COMPILE_TEST
	select SDM_GCC_660
	select QCOM_GDSC
	help
	  Support for the graphics clock controller on SDM630/636/660 devices.
	  Say Y if you want to support graphics controller devices and
	  functionality such as 3D graphics

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 QDU_GCC_1000
	tristate "QDU1000/QRU1000 Global Clock Controller"
	select QCOM_GDSC
	help
	  Support for the global clock controller on QDU1000 and
	  QRU1000 devices. Say Y if you want to use peripheral
	  devices such as UART, SPI, I2C, USB, SD, PCIe, etc.

config QDU_ECPRICC_1000
	tristate "QDU1000/QRU1000 ECPRI Clock Controller"
	depends on ARM64 || COMPILE_TEST
	select QDU_GCC_1000
	help
	  Support for the ECPRI clock controller on QDU1000 and
	  QRU1000 devices. Say Y if you want to support the ECPRI
	  clock controller functionality such as Ethernet.

config SDM_GCC_845
	tristate "SDM845/SDM670 Global Clock Controller"
	depends on ARM64 || COMPILE_TEST
	select QCOM_GDSC
	help
	  Support for the global clock controller on SDM845 and SDM670 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"
	depends on ARM64 || COMPILE_TEST
	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"
	depends on ARM64 || COMPILE_TEST
	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"
	depends on ARM64 || COMPILE_TEST
	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"
	depends on ARM64 || COMPILE_TEST
	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 SDX_GCC_55
	tristate "SDX55 Global Clock Controller"
	depends on ARM || COMPILE_TEST
	select QCOM_GDSC
	help
	  Support for the global clock controller on SDX55 devices.
	  Say Y if you want to use peripheral devices such as UART,
	  SPI, I2C, USB, SD/UFS, PCIe etc.

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

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

config SM_CAMCC_4450
	tristate "SM4450 Camera Clock Controller"
	depends on ARM64 || COMPILE_TEST
	select SM_GCC_4450
	help
	  Support for the camera clock controller on SM4450 devices.
	  Say Y if you want to support camera devices and camera functionality.

config SM_CAMCC_6350
	tristate "SM6350 Camera Clock Controller"
	depends on ARM64 || COMPILE_TEST
	select SM_GCC_6350
	help
	  Support for the camera clock controller on SM6350 devices.
	  Say Y if you want to support camera devices and camera functionality.

config SM_CAMCC_7150
	tristate "SM7150 Camera Clock Controller"
	depends on ARM64 || COMPILE_TEST
	select SM_GCC_7150
	help
	  Support for the camera clock controller on SM7150 devices.
	  Say Y if you want to support camera devices and camera functionality.

config SM_CAMCC_8150
	tristate "SM8150 Camera Clock Controller"
	depends on ARM64 || COMPILE_TEST
	select SM_GCC_8150
	help
	  Support for the camera clock controller on Qualcomm Technologies, Inc
	  SM8150 devices.
	  Say Y if you want to support camera devices and functionality such as
	  capturing pictures.

config SM_CAMCC_8250
	tristate "SM8250 Camera Clock Controller"
	depends on ARM64 || COMPILE_TEST
	select SM_GCC_8250
	help
	  Support for the camera clock controller on SM8250 devices.
	  Say Y if you want to support camera devices and camera functionality.

config SM_CAMCC_8450
	tristate "SM8450 Camera Clock Controller"
	depends on ARM64 || COMPILE_TEST
	select SM_GCC_8450
	help
	  Support for the camera clock controller on SM8450 devices.
	  Say Y if you want to support camera devices and camera functionality.

config SM_CAMCC_8550
	tristate "SM8550 Camera Clock Controller"
	depends on ARM64 || COMPILE_TEST
	select SM_GCC_8550
	help
	  Support for the camera clock controller on SM8550 devices.
	  Say Y if you want to support camera devices and camera functionality.

config SM_CAMCC_8650
	tristate "SM8650 Camera Clock Controller"
	depends on ARM64 || COMPILE_TEST
	select SM_GCC_8650
	help
	  Support for the camera clock controller on SM8650 devices.
	  Say Y if you want to support camera devices and camera functionality.

config SM_DISPCC_4450
	tristate "SM4450 Display Clock Controller"
	depends on ARM64 || COMPILE_TEST
	depends on SM_GCC_4450
	help
	  Support for the display clock controller on Qualcomm Technologies, Inc
	  SM4450 devices.
	  Say Y if you want to support display devices and functionality such as
	  splash screen

config SM_DISPCC_6115
	tristate "SM6115 Display Clock Controller"
	depends on ARM64 || COMPILE_TEST
	depends on SM_GCC_6115
	help
	  Support for the display clock controller on Qualcomm Technologies, Inc
	  SM6115/SM4250 devices.
	  Say Y if you want to support display devices and functionality such as
	  splash screen

config SM_DISPCC_6125
	tristate "SM6125 Display Clock Controller"
	depends on ARM64 || COMPILE_TEST
	depends on SM_GCC_6125
	help
	  Support for the display clock controller on Qualcomm Technologies, Inc
	  SM6125 devices.
	  Say Y if you want to support display devices and functionality such as
	  splash screen

config SM_DISPCC_7150
	tristate "SM7150 Display Clock Controller"
	depends on ARM64 || COMPILE_TEST
	depends on SM_GCC_7150
	help
	  Support for the display clock controller on Qualcomm Technologies, Inc
	  SM7150 devices.
	  Say Y if you want to support display devices and functionality such as
	  splash screen.

config SM_DISPCC_8250
	tristate "SM8150/SM8250/SM8350 Display Clock Controller"
	depends on ARM64 || COMPILE_TEST
	depends on SM_GCC_8150 || SM_GCC_8250 || SM_GCC_8350
	help
	  Support for the display clock controller on Qualcomm Technologies, Inc
	  SM8150/SM8250/SM8350 devices.
	  Say Y if you want to support display devices and functionality such as
	  splash screen.

config SM_DISPCC_6350
	tristate "SM6350 Display Clock Controller"
	depends on ARM64 || COMPILE_TEST
	depends on SM_GCC_6350
	help
	  Support for the display clock controller on Qualcomm Technologies, Inc
	  SM6350 devices.
	  Say Y if you want to support display devices and functionality such as
	  splash screen.

config SM_DISPCC_6375
	tristate "SM6375 Display Clock Controller"
	depends on ARM64 || COMPILE_TEST
	depends on SM_GCC_6375
	help
	  Support for the display clock controller on Qualcomm Technologies, Inc
	  SM6375 devices.
	  Say Y if you want to support display devices and functionality such as
	  splash screen.

config SM_DISPCC_8450
	tristate "SM8450 Display Clock Controller"
	depends on ARM64 || COMPILE_TEST
	depends on SM_GCC_8450
	help
	  Support for the display clock controller on Qualcomm Technologies, Inc
	  SM8450 devices.
	  Say Y if you want to support display devices and functionality such as
	  splash screen.

config SM_DISPCC_8550
	tristate "SM8550 Display Clock Controller"
	depends on ARM64 || COMPILE_TEST
	depends on SM_GCC_8550 || SM_GCC_8650
	help
	  Support for the display clock controller on Qualcomm Technologies, Inc
	  SM8550 or SM8650 devices.
	  Say Y if you want to support display devices and functionality such as
	  splash screen.

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

config SM_GCC_6115
	tristate "SM6115 and SM4250 Global Clock Controller"
	depends on ARM64 || COMPILE_TEST
	select QCOM_GDSC
	help
	  Support for the global clock controller on SM6115 and SM4250 devices.
	  Say Y if you want to use peripheral devices such as UART, SPI,
	  i2C, USB, UFS, SDDC, PCIe, etc.

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

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

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

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

config SM_GCC_8150
	tristate "SM8150 Global Clock Controller"
	depends on ARM64 || COMPILE_TEST
	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"
	depends on ARM64 || COMPILE_TEST
	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 SM_GCC_8350
	tristate "SM8350 Global Clock Controller"
	depends on ARM64 || COMPILE_TEST
	select QCOM_GDSC
	help
	  Support for the global clock controller on SM8350 devices.
	  Say Y if you want to use peripheral devices such as UART,
	  SPI, I2C, USB, SD/UFS, PCIe etc.

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

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

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

config SM_GPUCC_4450
	tristate "SM4450 Graphics Clock Controller"
	depends on ARM64 || COMPILE_TEST
	select SM_GCC_4450
	help
	  Support for the graphics clock controller on SM4450 devices.
	  Say Y if you want to support graphics controller devices and
	  functionality such as 3D graphics.

config SM_GPUCC_6115
	tristate "SM6115 Graphics Clock Controller"
	select SM_GCC_6115
	depends on ARM64 || COMPILE_TEST
	help
	  Support for the graphics clock controller on SM6115 devices.
	  Say Y if you want to support graphics controller devices and
	  functionality such as 3D graphics.

config SM_GPUCC_6125
	tristate "SM6125 Graphics Clock Controller"
	select SM_GCC_6125
	depends on ARM64 || COMPILE_TEST
	help
	  Support for the graphics clock controller on SM6125 devices.
	  Say Y if you want to support graphics controller devices and
	  functionality such as 3D graphics.

config SM_GPUCC_6375
	tristate "SM6375 Graphics Clock Controller"
	select SM_GCC_6375
	depends on ARM64 || COMPILE_TEST
	help
	  Support for the graphics clock controller on SM6375 devices.
	  Say Y if you want to support graphics controller devices and
	  functionality such as 3D graphics.

config SM_GPUCC_6350
	tristate "SM6350 Graphics Clock Controller"
	depends on ARM64 || COMPILE_TEST
	select SM_GCC_6350
	help
	  Support for the graphics clock controller on SM6350 devices.
	  Say Y if you want to support graphics controller devices and
	  functionality such as 3D graphics.

config SM_GPUCC_8150
	tristate "SM8150 Graphics Clock Controller"
	depends on ARM64 || COMPILE_TEST
	select SM_GCC_8150
	help
	  Support for the graphics clock controller on SM8150 devices.
	  Say Y if you want to support graphics controller devices and
	  functionality such as 3D graphics.

config SM_GPUCC_8250
	tristate "SM8250 Graphics Clock Controller"
	depends on ARM64 || COMPILE_TEST
	select SM_GCC_8250
	help
	  Support for the graphics clock controller on SM8250 devices.
	  Say Y if you want to support graphics controller devices and
	  functionality such as 3D graphics.

config SM_GPUCC_8350
	tristate "SM8350 Graphics Clock Controller"
	depends on ARM64 || COMPILE_TEST
	select SM_GCC_8350
	help
	  Support for the graphics clock controller on SM8350 devices.
	  Say Y if you want to support graphics controller devices and
	  functionality such as 3D graphics.

config SM_GPUCC_8450
	tristate "SM8450 Graphics Clock Controller"
	depends on ARM64 || COMPILE_TEST
	select SM_GCC_8450
	help
	  Support for the graphics clock controller on SM8450 devices.
	  Say Y if you want to support graphics controller devices and
	  functionality such as 3D graphics.

config SM_GPUCC_8550
	tristate "SM8550 Graphics Clock Controller"
	depends on ARM64 || COMPILE_TEST
	select SM_GCC_8550
	help
	  Support for the graphics clock controller on SM8550 devices.
	  Say Y if you want to support graphics controller devices and
	  functionality such as 3D graphics.

config SM_GPUCC_8650
	tristate "SM8650 Graphics Clock Controller"
	depends on ARM64 || COMPILE_TEST
	select SM_GCC_8650
	help
	  Support for the graphics clock controller on SM8650 devices.
	  Say Y if you want to support graphics controller devices and
	  functionality such as 3D graphics.

config SM_TCSRCC_8550
	tristate "SM8550 TCSR Clock Controller"
	depends on ARM64 || COMPILE_TEST
	select QCOM_GDSC
	help
	  Support for the TCSR clock controller on SM8550 devices.
	  Say Y if you want to use peripheral devices such as SD/UFS.

config SM_TCSRCC_8650
	tristate "SM8650 TCSR Clock Controller"
	depends on ARM64 || COMPILE_TEST
	select QCOM_GDSC
	help
	  Support for the TCSR clock controller on SM8650 devices.
	  Say Y if you want to use peripheral devices such as SD/UFS.

config SM_VIDEOCC_7150
	tristate "SM7150 Video Clock Controller"
	depends on ARM64 || COMPILE_TEST
	select SM_GCC_7150
	select QCOM_GDSC
	help
	  Support for the video clock controller on SM7150 devices.
	  Say Y if you want to support video devices and functionality such as
	  video encode and decode.

config SM_VIDEOCC_8150
	tristate "SM8150 Video Clock Controller"
	depends on ARM64 || COMPILE_TEST
	select SM_GCC_8150
	select QCOM_GDSC
	help
	  Support for the video clock controller on SM8150 devices.
	  Say Y if you want to support video devices and functionality such as
	  video encode and decode.

config SM_VIDEOCC_8250
	tristate "SM8250 Video Clock Controller"
	depends on ARM64 || COMPILE_TEST
	select SM_GCC_8250
	select QCOM_GDSC
	help
	  Support for the video clock controller on SM8250 devices.
	  Say Y if you want to support video devices and functionality such as
	  video encode and decode.

config SM_VIDEOCC_8350
	tristate "SM8350 Video Clock Controller"
	depends on ARM64 || COMPILE_TEST
	select SM_GCC_8350
	select QCOM_GDSC
	help
	  Support for the video clock controller on SM8350 devices.
	  Say Y if you want to support video devices and functionality such as
	  video encode and decode.

config SM_VIDEOCC_8550
	tristate "SM8550 Video Clock Controller"
	depends on ARM64 || COMPILE_TEST
	select SM_GCC_8550
	select QCOM_GDSC
	help
	  Support for the video clock controller on Qualcomm Technologies, Inc.
	  SM8550 devices.
	  Say Y if you want to support video devices and functionality such as
	  video encode/decode.

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.

config CLK_GFM_LPASS_SM8250
	tristate "SM8250 GFM LPASS Clocks"
	depends on ARM64 || COMPILE_TEST
	help
	  Support for the Glitch Free Mux (GFM) Low power audio
          subsystem (LPASS) clocks found on SM8250 SoCs.

config SM_VIDEOCC_8450
	tristate "SM8450 Video Clock Controller"
	depends on ARM64 || COMPILE_TEST
	select SM_GCC_8450
	select QCOM_GDSC
	help
	  Support for the video clock controller on Qualcomm Technologies, Inc.
	  SM8450 devices.
	  Say Y if you want to support video devices and functionality such as
	  video encode/decode.
endif
