if ARCH_SNAPDRAGON || ARCH_IPQ40XX

config CLK_QCOM
	bool
	depends on CLK && DM_RESET && POWER_DOMAIN
	def_bool n

menu "Qualcomm clock drivers"

config CLK_QCOM_APQ8016
	bool "Qualcomm APQ8016 GCC"
	select CLK_QCOM
	help
	  Say Y here to enable support for the Global Clock Controller
	  on the Snapdragon APQ8016 SoC. This driver supports the clocks
	  and resets exposed by the GCC hardware block.

config CLK_QCOM_APQ8096
	bool "Qualcomm APQ8096 GCC"
	select CLK_QCOM
	help
	  Say Y here to enable support for the Global Clock Controller
	  on the Snapdragon APQ8096 SoC. This driver supports the clocks
	  and resets exposed by the GCC hardware block.

config CLK_QCOM_IPQ4019
	bool "Qualcomm IPQ4019 GCC"
	select CLK_QCOM
	help
	  Say Y here to enable support for the Global Clock Controller
	  on the Snapdragon IPQ4019 SoC. This driver supports the clocks
	  and resets exposed by the GCC hardware block.

config CLK_QCOM_QCM2290
	bool "Qualcomm QCM2290 GCC"
	select CLK_QCOM
	help
	  Say Y here to enable support for the Global Clock Controller
	  on the Snapdragon QCM2290 SoC. This driver supports the clocks
	  and resets exposed by the GCC hardware block.

config CLK_QCOM_QCS404
	bool "Qualcomm QCS404 GCC"
	select CLK_QCOM
	help
	  Say Y here to enable support for the Global Clock Controller
	  on the Snapdragon QCS404 SoC. This driver supports the clocks
	  and resets exposed by the GCC hardware block.

config CLK_QCOM_SDM845
	bool "Qualcomm SDM845 GCC"
	select CLK_QCOM
	help
	  Say Y here to enable support for the Global Clock Controller
	  on the Snapdragon 845 SoC. This driver supports the clocks
	  and resets exposed by the GCC hardware block.

config CLK_QCOM_SM6115
	bool "Qualcomm SM6115 GCC"
	select CLK_QCOM
	help
	  Say Y here to enable support for the Global Clock Controller
	  on the Snapdragon SM6115 SoC. This driver supports the clocks
	  and resets exposed by the GCC hardware block.

endmenu

endif
