# SPDX-License-Identifier: GPL-2.0-only
#
# ARM CPU Frequency scaling drivers
#

config ARM_ALLWINNER_SUN50I_CPUFREQ_NVMEM
	tristate "Allwinner nvmem based SUN50I CPUFreq driver"
	depends on ARCH_SUNXI || COMPILE_TEST
	depends on NVMEM_SUNXI_SID
	select PM_OPP
	help
	  This adds the nvmem based CPUFreq driver for Allwinner
	  h6 SoC.

	  To compile this driver as a module, choose M here: the
	  module will be called sun50i-cpufreq-nvmem.

config ARM_AIROHA_SOC_CPUFREQ
	tristate "Airoha EN7581 SoC CPUFreq support"
	depends on ARCH_AIROHA || COMPILE_TEST
	depends on OF
	select PM_OPP
	default ARCH_AIROHA
	help
	  This adds the CPUFreq driver for Airoha EN7581 SoCs.

config ARM_APPLE_SOC_CPUFREQ
	tristate "Apple Silicon SoC CPUFreq support"
	depends on ARCH_APPLE || (COMPILE_TEST && 64BIT)
	select PM_OPP
	help
	  This adds the CPUFreq driver for Apple Silicon machines
	  (e.g. Apple M1).

config ARM_ARMADA_37XX_CPUFREQ
	tristate "Armada 37xx CPUFreq support"
	depends on ARCH_MVEBU || COMPILE_TEST
	depends on CPUFREQ_DT
	help
	  This adds the CPUFreq driver support for Marvell Armada 37xx SoCs.
	  The Armada 37xx PMU supports 4 frequency and VDD levels.

config ARM_ARMADA_8K_CPUFREQ
	tristate "Armada 8K CPUFreq driver"
	depends on ARCH_MVEBU || COMPILE_TEST
	depends on CPUFREQ_DT
	select ARMADA_AP_CPU_CLK if COMMON_CLK
	help
	  This enables the CPUFreq driver support for Marvell
	  Armada8k SOCs.
	  Armada8K device has the AP806 which supports scaling
	  to any full integer divider.

	  If in doubt, say N.

config ARM_SCPI_CPUFREQ
	tristate "SCPI based CPUfreq driver"
	depends on ARM_SCPI_PROTOCOL && COMMON_CLK_SCPI
	help
	  This adds the CPUfreq driver support for ARM platforms using SCPI
	  protocol for CPU power management.

	  This driver uses SCPI Message Protocol driver to interact with the
	  firmware providing the CPU DVFS functionality.

config ARM_VEXPRESS_SPC_CPUFREQ
	tristate "Versatile Express SPC based CPUfreq driver"
	depends on ARM_CPU_TOPOLOGY && HAVE_CLK
	depends on ARCH_VEXPRESS_SPC || COMPILE_TEST
	select PM_OPP
	help
	  This add the CPUfreq driver support for Versatile Express
	  big.LITTLE platforms using SPC for power management.

config ARM_BRCMSTB_AVS_CPUFREQ
	tristate "Broadcom STB AVS CPUfreq driver"
	depends on (ARCH_BRCMSTB && !ARM_SCMI_CPUFREQ) || COMPILE_TEST
	default y if ARCH_BRCMSTB && !ARM_SCMI_CPUFREQ
	help
	  Some Broadcom STB SoCs use a co-processor running proprietary firmware
	  ("AVS") to handle voltage and frequency scaling. This driver provides
	  a standard CPUfreq interface to the firmware.

	  Say Y, if you have a Broadcom SoC with AVS support for DFS or DVFS.

config ARM_HIGHBANK_CPUFREQ
	tristate "Calxeda Highbank-based"
	depends on ARCH_HIGHBANK || COMPILE_TEST
	depends on CPUFREQ_DT && REGULATOR && PL320_MBOX
	default m if ARCH_HIGHBANK
	help
	  This adds the CPUFreq driver for Calxeda Highbank SoC
	  based boards.

	  If in doubt, say N.

config ARM_IMX6Q_CPUFREQ
	tristate "Freescale i.MX6 cpufreq support"
	depends on ARCH_MXC
	depends on REGULATOR_ANATOP
	depends on NVMEM_IMX_OCOTP || COMPILE_TEST
	select PM_OPP
	help
	  This adds cpufreq driver support for Freescale i.MX6 series SoCs.

	  If in doubt, say N.

config ARM_IMX_CPUFREQ_DT
	tristate "Freescale i.MX8M cpufreq support"
	depends on CPUFREQ_DT
	depends on ARCH_MXC || COMPILE_TEST
	help
	  This adds cpufreq driver support for Freescale i.MX7/i.MX8M
	  series SoCs, based on cpufreq-dt.

	  If in doubt, say N.

config ARM_KIRKWOOD_CPUFREQ
	def_bool MACH_KIRKWOOD
	help
	  This adds the CPUFreq driver for Marvell Kirkwood
	  SoCs.

config ARM_MEDIATEK_CPUFREQ
	tristate "CPU Frequency scaling support for MediaTek SoCs"
	depends on ARCH_MEDIATEK || COMPILE_TEST
	depends on REGULATOR
	select PM_OPP
	help
	  This adds the CPUFreq driver support for MediaTek SoCs.

config ARM_MEDIATEK_CPUFREQ_HW
	tristate "MediaTek CPUFreq HW driver"
	depends on ARCH_MEDIATEK || COMPILE_TEST
	default m if ARCH_MEDIATEK
	help
	  Support for the CPUFreq HW driver.
	  Some MediaTek chipsets have a HW engine to offload the steps
	  necessary for changing the frequency of the CPUs. Firmware loaded
	  in this engine exposes a programming interface to the OS.
	  The driver implements the cpufreq interface for this HW engine.
	  Say Y if you want to support CPUFreq HW.

config ARM_QCOM_CPUFREQ_NVMEM
	tristate "Qualcomm nvmem based CPUFreq"
	depends on ARCH_QCOM || COMPILE_TEST
	depends on NVMEM_QCOM_QFPROM
	depends on QCOM_SMEM
	select PM_OPP
	help
	  This adds the CPUFreq driver for Qualcomm Kryo SoC based boards.

	  If in doubt, say N.

config ARM_QCOM_CPUFREQ_HW
	tristate "QCOM CPUFreq HW driver"
	depends on ARCH_QCOM || COMPILE_TEST
	depends on COMMON_CLK
	help
	  Support for the CPUFreq HW driver.
	  Some QCOM chipsets have a HW engine to offload the steps
	  necessary for changing the frequency of the CPUs. Firmware loaded
	  in this engine exposes a programming interface to the OS.
	  The driver implements the cpufreq interface for this HW engine.
	  Say Y if you want to support CPUFreq HW.

config ARM_RASPBERRYPI_CPUFREQ
	tristate "Raspberry Pi cpufreq support"
	depends on CLK_RASPBERRYPI || COMPILE_TEST
	help
	  This adds the CPUFreq driver for Raspberry Pi

	  If in doubt, say N.

config ARM_S3C64XX_CPUFREQ
	bool "Samsung S3C64XX"
	depends on CPU_S3C6410 || COMPILE_TEST
	default CPU_S3C6410
	help
	  This adds the CPUFreq driver for Samsung S3C6410 SoC.

	  If in doubt, say N.

config ARM_S5PV210_CPUFREQ
	bool "Samsung S5PV210 and S5PC110"
	depends on CPU_S5PV210 || COMPILE_TEST
	default CPU_S5PV210
	help
	  This adds the CPUFreq driver for Samsung S5PV210 and
	  S5PC110 SoCs.

	  If in doubt, say N.

config ARM_SA1110_CPUFREQ
	bool

config ARM_SCMI_CPUFREQ
	tristate "SCMI based CPUfreq driver"
	depends on ARM_SCMI_PROTOCOL || COMPILE_TEST
	select PM_OPP
	help
	  This adds the CPUfreq driver support for ARM platforms using SCMI
	  protocol for CPU power management.

	  This driver uses SCMI Message Protocol driver to interact with the
	  firmware providing the CPU DVFS functionality.

config ARM_SPEAR_CPUFREQ
	bool "SPEAr CPUFreq support"
	depends on PLAT_SPEAR || COMPILE_TEST
	default PLAT_SPEAR
	help
	  This adds the CPUFreq driver support for SPEAr SOCs.

config ARM_STI_CPUFREQ
	tristate "STi CPUFreq support"
	depends on CPUFREQ_DT
	depends on SOC_STIH407 || COMPILE_TEST
	help
	  This driver uses the generic OPP framework to match the running
	  platform with a predefined set of suitable values.  If not provided
	  we will fall-back so safe-values contained in Device Tree.  Enable
	  this config option if you wish to add CPUFreq support for STi based
	  SoCs.

config ARM_TEGRA20_CPUFREQ
	tristate "Tegra20/30 CPUFreq support"
	depends on ARCH_TEGRA || COMPILE_TEST
	depends on CPUFREQ_DT
	default ARCH_TEGRA
	help
	  This adds the CPUFreq driver support for Tegra20/30 SOCs.

config ARM_TEGRA124_CPUFREQ
	tristate "Tegra124 CPUFreq support"
	depends on ARCH_TEGRA || COMPILE_TEST
	depends on CPUFREQ_DT
	default ARCH_TEGRA
	help
	  This adds the CPUFreq driver support for Tegra124 SOCs.

config ARM_TEGRA186_CPUFREQ
	tristate "Tegra186 CPUFreq support"
	depends on ARCH_TEGRA || COMPILE_TEST
	depends on TEGRA_BPMP
	help
	  This adds the CPUFreq driver support for Tegra186 SOCs.

config ARM_TEGRA194_CPUFREQ
	tristate "Tegra194 CPUFreq support"
	depends on ARCH_TEGRA_194_SOC || ARCH_TEGRA_234_SOC || (64BIT && COMPILE_TEST)
	depends on TEGRA_BPMP
	default ARCH_TEGRA_194_SOC || ARCH_TEGRA_234_SOC
	help
	  This adds CPU frequency driver support for Tegra194 SOCs.

config ARM_TI_CPUFREQ
	bool "Texas Instruments CPUFreq support"
	depends on ARCH_OMAP2PLUS || ARCH_K3 || COMPILE_TEST
	default ARCH_OMAP2PLUS || ARCH_K3
	help
	  This driver enables valid OPPs on the running platform based on
	  values contained within the SoC in use. Enable this in order to
	  use the cpufreq-dt driver on all Texas Instruments platforms that
	  provide dt based operating-points-v2 tables with opp-supported-hw
	  data provided. Required for cpufreq support on AM335x, AM437x,
	  DRA7x, and AM57x platforms.

config ARM_PXA2xx_CPUFREQ
	tristate "Intel PXA2xx CPUfreq driver"
	depends on PXA27x || PXA25x || COMPILE_TEST
	help
	  This add the CPUFreq driver support for Intel PXA2xx SOCs.

	  If in doubt, say N.
