# SPDX-License-Identifier: GPL-2.0-only
menuconfig PM_DEVFREQ_EVENT
	bool "DEVFREQ-Event device Support"
	help
	  The devfreq-event device provide the raw data and events which
	  indicate the current state of devfreq-event device. The provided
	  data from devfreq-event device is used to monitor the state of
	  device and determine the suitable size of resource to reduce the
	  wasted resource.

	  The devfreq-event device can support the various type of events
	  (e.g., raw data, utilization, latency, bandwidth). The events
	  may be used by devfreq governor and other subsystem.

if PM_DEVFREQ_EVENT

config DEVFREQ_EVENT_EXYNOS_NOCP
	tristate "Exynos NoC (Network On Chip) Probe DEVFREQ event Driver"
	depends on ARCH_EXYNOS || COMPILE_TEST
	select PM_OPP
	select REGMAP_MMIO
	help
	  This add the devfreq-event driver for Exynos SoC. It provides NoC
	  (Network on Chip) Probe counters to measure the bandwidth of AXI bus.

config DEVFREQ_EVENT_EXYNOS_PPMU
	tristate "Exynos PPMU (Platform Performance Monitoring Unit) DEVFREQ event Driver"
	depends on ARCH_EXYNOS || COMPILE_TEST
	select PM_OPP
	help
	  This add the devfreq-event driver for Exynos SoC. It provides PPMU
	  (Platform Performance Monitoring Unit) counters to estimate the
	  utilization of each module.

config DEVFREQ_EVENT_ROCKCHIP_DFI
	tristate "ROCKCHIP DFI DEVFREQ event Driver"
	depends on ARCH_ROCKCHIP || COMPILE_TEST
	help
	  This add the devfreq-event driver for Rockchip SoC. It provides DFI
	  (DDR Monitor Module) driver to count ddr load.

endif # PM_DEVFREQ_EVENT
