# SPDX-License-Identifier: GPL-2.0-only
#
# QCOM DCVS drivers
#
config QCOM_PMU_LIB
	tristate "QCOM PMU Driver"
	depends on ARCH_QCOM
	default n
	help
	  This enables the QCOM PMU driver which manages and maintains
	  per-CPU performance counters that are available on some
	  Qualcomm Technologies, Inc. (QTI) chipsets. This includes
	  preserving them across CPU idle and hotplug events.

config QCOM_DCVS_FP
	tristate "Enable QCOM DCVS Fast Path Interface"
	depends on ARCH_QCOM && QCOM_RPMH
	default n
	help
	  This enables the QCOM DCVS FP (Fast Path) driver which relies on
	  certain "fast path" APIs from QCOM_RPMH to vote for various DCVS HW
	  blocks in a faster scheme than standard voting paths. This requires a
	  Qualcomm Technologies, Inc. (QTI) chipset that supports this feature.

config QCOM_DCVS
	tristate "QCOM DCVS Driver"
	select QCOM_DCVS_FP
	select INTERCONNECT
	default n
	help
	  This enables the main QCOM DCVS framework which supports various
	  DCVS HW blocks and voting interfaces that are supported on some
	  Qualcomm Technologies, Inc. (QTI) chipsets. This includes voting
	  interfaces from both QCOM_DCVS_FP and INTERCONNECT.

config QCOM_MEMLAT
	tristate "QCOM Memlat Driver"
	depends on QCOM_DCVS && QCOM_PMU_LIB
	default n
	help
	  This enables the QCOM Memlat driver which monitors CPU performance
	  counters to identify memory latency bound workloads and vote for
	  DCVS HW (memory) frequencies through the QCOM DCVS framework.

config QCOM_BWMON
	tristate "QCOM BWMON Driver"
	depends on QCOM_DCVS
	default n
	help
	  This enables the QCOM BWMON driver which monitors bandwidth counters
	  to identify memory bandwidth bound workloads and vote for DCVS HW
	  (memory) frequencies through the QCOM DCVS framework.

config QCOM_BWPROF
	tristate "QCOM BWPROF Driver"
	depends on ARCH_QCOM
	default n
	help
	  This enables the QCOM BWPROF driver which monitors bandwidth counters
	  and provides them to userspace clients at modest time intervals for
	  the intention of bandwidth profiling and DDR frequency monitoring. The
	  purpose of the driver is to enable the monitoring of the bandwidth usage
	  at regular intervals, providing the userspace clients with a detailed
	  view of the current state of the system.

config QCOM_BWPROF_SCMI
	tristate "QCOM BWPROF SCMI Driver"
	depends on ARCH_QCOM
	default n
	help
	  This enables the QCOM BWPROF driver which monitors bandwidth counters
	  and provides them to userspace clients at different time intervals for
	  the intention of bandwidth profiling and DDR and LLCC frequency
	  monitoring. The purpose of the driver is to enable the monitoring of
	  the bandwidth usage at regular intervals, providing the userspace clients
	  with a detailed view of the current state of the system.

config QTI_HW_BWPROF_SCMI_CLIENT
	tristate "Qualcomm Technologies Inc. SCMI client driver for BWPROF PROFILING"
	depends on QCOM_BWPROF_SCMI && QTI_SCMI_BWPROF_PROTOCOL
	default n
	help
	  SCMI client driver registers itself with SCMI framework for bandwidth
	  vendor protocol, and also registers with the bandwidth interface driver
	  This driver delivers the bandwidth vendor protocol handle to interface
	  driver, and interface driver will use this handle to communicate with
	  bandwidth profiling.

config QCOM_BUS_LAT
	tristate "QCOM BUS_latency Driver"
	depends on ARCH_QCOM
	default n
	help
	  This enables the QCOM Bus latency driver which exposes bus latency stats
	  to userspace clients at modest time intervals for the intention of
	  profiling. The purpose of the driver is to enable the monitoring of the
	  memory latency at regular intervals, providing the userspace clients with
	  a detailed view of the current state of the system.

config QTI_HW_MEMLAT_SCMI_CLIENT
	tristate "Qualcomm Technologies Inc. SCMI client driver for HW MEMLAT"
	depends on QCOM_MEMLAT && QTI_SCMI_MEMLAT_PROTOCOL
	default n
	help
	  SCMI client driver registers itself with SCMI framework for memlat
	  vendor protocol, and also registers with the memlat interface
	  driver.

	  This driver delivers the memlat vendor protocol handle to interface
	  driver, and interface driver will use this handle to communicate with
	  memlat HW.

config QCOM_LLCC_MISS
	tristate "Qualcomm Technologies Inc. LLCC_MISS_STATS Driver"
	depends on ARCH_QCOM && QCOM_BUS_PROF
	default n
	help
	  This enables the QCOM LLCC miss stats driver which exposes LLCC miss
	  stats to user space clients at modest time intervals for the intention
	  of profiling.

	  The purpose of the driver is to enable the monitoring of LLCC misses
	  at regular intervals and providing the miss rate data to the user
	  space clients upon read.

config QCOM_BUS_PROF
	tristate "Qualcomm Technologies Inc. BUS_PROF Driver"
	depends on ARCH_QCOM
	default n
	help
	  This enables the QCOM bus profiling common framework and ftraces,
	  which provide support for a variety of features. These features
	  include memory latency, LLCC miss, and LLCC occupancy, all of
	  which are supported on certain Qualcomm Technologies, Inc.
	  (QTI) chipsets.

config QCOM_LLCC_OCCUPANCY
	tristate "QCOM LLCC_OCCUPANCY Driver"
	depends on ARCH_QCOM && QCOM_LLCC && QCOM_BUS_PROF
	default n
	help
	  This enables the QCOM LLCC occupancy driver which exposes LLCC occupancy stats
	  to userspace clients at modest time intervals for the intention of
	  profiling. The purpose of the driver is to enable the monitoring of the
	  LLCC occupancy at regular intervals, providing the userspace clients with
	  a detailed view of the current state of the system.

config QTI_PMU_SCMI_CLIENT
	tristate "Qualcomm Technologies Inc. SCMI client driver for PMU"
	depends on QTI_SCMI_PMU_PROTOCOL && QCOM_PMU_LIB
	default n
	help
	  SCMI client driver registers itself with SCMI framework for pmu
	  vendor protocol.

	  This driver delivers the pmu vendor protocol handle to interface
	  driver, and interface driver will use this handle to communicate with
	  rimps.

config QTI_C1DCVS_SCMI_CLIENT
	tristate "Qualcomm Technologies Inc. SCMI client driver for cpudcvs"
	depends on QTI_SCMI_C1DCVS_PROTOCOL
	default n
	help
	  SCMI client driver registers itself with SCMI framework for c1dcvs
	  vendor protocol.

	  This driver delivers the cpudcvs protocol handle to interface
	  driver, and interface driver will use this handle to communicate with
	  cpucp.

config QTI_CPUFREQ_STATS_SCMI_CLIENT
	tristate "Qualcomm Technologies Inc. SCMI client driver for cpufreq stats"
	depends on QTI_SCMI_CPUFREQ_STATS_PROTOCOL
	default n
	help
	  SCMI client driver registers itself with SCMI framework for cpufreq stats
	  vendor protocol.

	  This driver delivers the cpufreq stats protocol handle to interface
	  driver, and interface driver will use this handle to communicate with
	  cpucp.
