source "drivers/clk/qcom/mdss/Kconfig"

config QCOM_GDSC
	bool
	select PM_GENERIC_DOMAINS if PM

config QCOM_RPMCC
	bool

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

config QCOM_A53PLL
	tristate "MSM8916 A53 PLL"
	depends on COMMON_CLK_QCOM
	default ARCH_QCOM
	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 COMMON_CLK_QCOM
	depends on QCOM_APCS_IPC || COMPILE_TEST
	default ARCH_QCOM
	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 COMMON_CLK_QCOM && 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 COMMON_CLK_QCOM && 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 COMMON_CLK_QCOM && 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
	depends on COMMON_CLK_QCOM
	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
	depends on COMMON_CLK_QCOM
	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"
	depends on COMMON_CLK_QCOM
	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_806X
	tristate "IPQ806x Global Clock Controller"
	depends on COMMON_CLK_QCOM
	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
	depends on COMMON_CLK_QCOM
	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"
	depends on COMMON_CLK_QCOM
	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"
	depends on COMMON_CLK_QCOM
	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
	depends on COMMON_CLK_QCOM
	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"
	depends on COMMON_CLK_QCOM
	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
	depends on COMMON_CLK_QCOM
	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"
	depends on COMMON_CLK_QCOM
	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
	depends on COMMON_CLK_QCOM
	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
	depends on COMMON_CLK_QCOM
	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
	depends on COMMON_CLK_QCOM
	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
	depends on COMMON_CLK_QCOM
	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"
	depends on COMMON_CLK_QCOM
	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
	depends on COMMON_CLK_QCOM
	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
	depends on COMMON_CLK_QCOM
	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"
	depends on COMMON_CLK_QCOM
	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 SDM_GCC_845
	tristate "SDM845 Global Clock Controller"
	select QCOM_GDSC
	depends on COMMON_CLK_QCOM
	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_VIDEOCC_845
	tristate "SDM845 Video Clock Controller"
	depends on COMMON_CLK_QCOM
	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
	depends on COMMON_CLK_QCOM
	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 SPMI_PMIC_CLKDIV
	tristate "SPMI PMIC clkdiv Support"
	depends on (COMMON_CLK_QCOM && 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 MSM_CLK_AOP_QMP
	tristate "AOP QMP Clock Driver"
	depends on COMMON_CLK_QCOM && MSM_QMP
	help
	Always On Processor manages few shared clocks on some Qualcomm
	Technologies, Inc. SoCs. It accepts requests from other hardware
	subsystems via QMP mailboxes.
	Say Y to support the clocks managed by AOP on platforms such as sdm845.

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

config MSM_VIDEOCC_KONA
	tristate "KONA Video Clock Controller"
	depends on COMMON_CLK_QCOM
	help
	  Support for the video clock controller on Qualcomm Technologies, Inc.
	  KONA devices.
	  Say Y if you want to support video devices and functionality such as
	  video encode/decode.

config MSM_DISPCC_KONA
	tristate "KONA Display Clock Controller"
	select SDM_GCC_KONA
	depends on COMMON_CLK_QCOM
	help
	  Support for the display clock controller on Qualcomm Technologies, Inc
	  Kona devices.
	  Say Y if you want to support display devices and functionality such as
	  splash screen.

config MSM_CAMCC_KONA
	tristate "KONA Camera Clock Controller"
	depends on COMMON_CLK_QCOM
	help
	  Support for the camera clock controller on Qualcomm Technologies, Inc.
	  KONA devices.
	  Say Y if you want to support camera devices and functionality such as
	  capturing pictures.

config MSM_GPUCC_KONA
	tristate "KONA Graphics Clock Controller"
	depends on COMMON_CLK_QCOM
	help
	  Support for the graphics clock controller on Qualcomm Technologies, Inc
	  KONA devices.
	  Say Y if you want to support graphics controller devices.

config MSM_DEBUGCC_KONA
	tristate "KONA Debug Clock Controller"
	depends on COMMON_CLK_QCOM
	help
	  Support for the debug clock controller on Qualcomm Technologies, Inc
	  KONA devices.
	  Say Y if you want to support the clock measurement functionality.

config MSM_NPUCC_KONA
	tristate "KONA NPU Clock Controller"
	depends on COMMON_CLK_QCOM
	select MSM_GCC_KONA
	help
	  Support for the NPU clock controller on Qualcomm Technologies, Inc.
	  KONA devices.
	  Say Y if you want to enable use of the Network Processing Unit in
	  order to speed up certain types of calculations.

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

config SM_VIDEOCC_LITO
	tristate "LITO Video Clock Controller"
	depends on COMMON_CLK_QCOM
	help
	  Support for the video clock controller on Qualcomm Technologies, Inc.
	  LITO devices.
	  Say Y if you want to support video devices and functionality such as
	  video encode/decode.

config SM_CAMCC_LITO
	tristate "LITO Camera Clock Controller"
	depends on COMMON_CLK_QCOM
	help
	  Support for the camera clock controller on Qualcomm Technologies, Inc.
	  LITO devices.
	  Say Y if you want to support camera devices and functionality such as
	  capturing pictures.

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

config SM_GPUCC_LITO
	tristate "LITO Graphics Clock Controller"
	depends on COMMON_CLK_QCOM
	help
	 Support for the graphics clock controller on Qualcomm Technologies, Inc.
	 LITO devices.
	 Say Y if you want to support graphics controller devices.

config SM_NPUCC_LITO
        tristate "LITO NPU Clock Controller"
        depends on COMMON_CLK_QCOM
        help
          Support for the NPU clock controller on Qualcomm Technologies, Inc.
          LITO devices.
          Say Y if you want to enable use of the Network Processing Unit in
          order to speed up certain types of calculations.

config SM_DEBUGCC_LITO
	tristate "LITO Debug Clock Controller"
	depends on COMMON_CLK_QCOM
	help
	  Support for the debug clock controller on Qualcomm Technologies, Inc
	  LITO devices.
	  Say Y if you want to support the clock measurement functionality.

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

config SM_GPUCC_BENGAL
	tristate "BENGAL Graphics Clock Controller"
	select SM_GCC_BENGAL
	help
	  Support for the graphics clock controller on Qualcomm Technologies, Inc
	  BENGAL devices.
	  Say Y if you want to support graphics controller devices.

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

config SM_DEBUGCC_BENGAL
	tristate "BENGAL Debug Clock Controller"
	select SM_GCC_BENGAL
	help
	  Support for the debug clock controller on Qualcomm Technologies, Inc
	  BENGAL devices.
	  Say Y if you want to support the clock measurement functionality.

config SDM_CAMCC_LAGOON
	tristate "LAGOON Camera Clock Controller"
	select SDM_GCC_LAGOON
	help
	  Support for the camera clock controller on Qualcomm Technologies, Inc.
	  LAGOON devices.
	  Say Y if you want to support camera devices and functionality such as
	  capturing pictures.

config SDM_DEBUGCC_LAGOON
	tristate "LAGOON Debug Clock Controller"
	select SDM_GCC_LAGOON
	help
	  Support for the debug clock controller on Qualcomm Technologies, Inc
	  LAGOON devices.
	  Say Y if you want to support the clock measurement functionality
	  of the clocks.

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

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

config SDM_GPUCC_LAGOON
	tristate "LAGOON Graphics Clock Controller"
	select SDM_GCC_LAGOON
	help
	 Support for the graphics clock controller on Qualcomm Technologies, Inc.
	 LAGOON devices.
	 Say Y if you want to support graphics controller devices
	 and it's functionalities.

config SDM_NPUCC_LAGOON
	tristate "LAGOON NPU Clock Controller"
	select SDM_GCC_LAGOON
	help
	  Support for the NPU clock controller on Qualcomm Technologies, Inc.
	  LAGOON devices.
	  Say Y if you want to enable use of the Network Processing Unit in
	  order to speed up certain types of calculations.

config SDM_VIDEOCC_LAGOON
	tristate "LAGOON Video Clock Controller"
	select SDM_GCC_LAGOON
	help
	  Support for the video clock controller on Qualcomm Technologies, Inc.
	  LAGOON devices.
	  Say Y if you want to support video devices and functionality such as
	  video encode/decode.

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

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

config QM_GPUCC_SCUBA
	tristate "SCUBA Graphics Clock Controller"
	select QM_GCC_SCUBA
	help
	  Support for the graphics clock controller on Qualcomm Technologies, Inc.
	  SCUBA devices.
	  Say Y if you want to support graphics controller devices
	  and it's functionalities.

config QM_DEBUGCC_SCUBA
	tristate "SCUBA Debug Clock Controller"
	depends on QM_GCC_SCUBA
	help
	  Support for the debug clock controller on Qualcomm Technologies, Inc
	  SCUBA devices.
	  Say Y if you want to support the clock measurement functionality.

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

config SDM_GPUCC_660
	tristate "SDM660 Graphics Clock Controller"
	select SDM_GCC_660
	depends on COMMON_CLK_QCOM
	help
	  Support for the graphics clock controller on Qualcomm Technologies, Inc
	  SDM660 devices.
	  Say Y if you want to support graphics controller devices which will
	  be required to enable those device.

config SDM_MMCC_660
	tristate "SDM660 Multimedia Clock Controller"
	select SDM_GCC_660
	depends on COMMON_CLK_QCOM
	help
	  Support for the multimedia clock controller on Qualcomm Technologies, Inc
	  SDM660 devices.
	  Say Y if you want to support multimedia devices such as display,
	  video encode/decode, camera, etc.

config CLOCK_CPU_OSM_660
	tristate "OSM CPU Clock Controller for SDM660"
	depends on COMMON_CLK_QCOM
	help
	 Support for the OSM clock controller for SDM660.
	 Operating State Manager (OSM) is a hardware engine used by some
	 Qualcomm Technologies, Inc. (QTI) SoCs to manage frequency and
	 voltage scaling in hardware. OSM is capable of controlling
	 frequency and voltage requests for multiple clusters via the
	 existence of multiple OSM domains.
	 Say Y if you want to support OSM clocks.

config SDM_GCC_429W
	tristate "SDM429w Global Clock Controller"
	depends on COMMON_CLK_QCOM
	help
	  Support for the global clock controller on SDM429w/QM215 devices.
	  Say Y if you want to use peripheral devices such as UART, SPI,
	  I2C, USB, UFS, SDCC, Display, Camera, Video etc.

config SDM_DEBUGCC_429W
	tristate "SDM429W Debug Clock Controller"
	depends on SDM_GCC_429W
	help
	  Support for the debug clock controller on Qualcomm Technologies, Inc
	  SDM429W/QM215 devices.
	  Say Y if you want to support the clock measurement functionality.

config CLOCK_CPU_SDM
	bool "CPU SDM Clock Controller"
	depends on COMMON_CLK_QCOM
	help
	 Support for the cpu clock controller on SDM based devices(e.g. QM215/SDM429).
	 Say Y if you want to support CPU clock scaling using
	 CPUfreq drivers for dynamic power management.

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

config SM_GPUCC_KHAJE
	tristate "KHAJE Graphics Clock Controller"
	select SM_GCC_KHAJE
	help
	 Support for the graphics clock controller on Qualcomm Technologies, Inc
	 KHAJE devices.
	 Say Y if you want to support graphics controller devices.

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

config SM_DEBUGCC_KHAJE
	tristate "KHAJE Debug Clock Controller"
	select SM_GCC_KHAJE
	help
	 Support for the debug clock controller on Qualcomm Technologies, Inc
	 KHAJE devices.
	 Say Y if you want to support the clock measurement functionality.

config SDM_DEBUGCC_439
	tristate "SDM439 SDM429 Debug Clock Controller"
	depends on SDM_GCC_429W
	help
	  Support for the debug clock controller on Qualcomm Technologies, Inc
	  SDM429/SDM439 devices.
	  Say Y if you want to support the clock measurement functionality.
