# SPDX-License-Identifier: GPL-2.0-only
config INTEL_POWERCLAMP
	tristate "Intel PowerClamp idle injection driver"
	depends on X86
	depends on CPU_SUP_INTEL
	depends on CPU_IDLE
	select POWERCAP
	select IDLE_INJECT
	help
	  Enable this to enable Intel PowerClamp idle injection driver. This
	  enforce idle time which results in more package C-state residency. The
	  user interface is exposed via generic thermal framework.

config X86_THERMAL_VECTOR
	def_bool y
	depends on X86 && CPU_SUP_INTEL && X86_LOCAL_APIC

config INTEL_TCC
	bool
	depends on X86

config X86_PKG_TEMP_THERMAL
	tristate "X86 package temperature thermal driver"
	depends on X86_THERMAL_VECTOR
	select THERMAL_GOV_USER_SPACE
	select THERMAL_WRITABLE_TRIPS
	select INTEL_TCC
	default m
	help
	  Enable this to register CPU digital sensor for package temperature as
	  thermal zone. Each package will have its own thermal zone. There are
	  two trip points which can be set by user to get notifications via thermal
	  notification methods.

config INTEL_SOC_DTS_IOSF_CORE
	tristate
	depends on X86 && PCI
	select IOSF_MBI
	select INTEL_TCC
	help
	  This is becoming a common feature for Intel SoCs to expose the additional
	  digital temperature sensors (DTSs) using side band interface (IOSF). This
	  implements the common set of helper functions to register, get temperature
	  and get/set thresholds on DTSs.

config INTEL_SOC_DTS_THERMAL
	tristate "Intel SoCs DTS thermal driver"
	depends on X86 && PCI && ACPI
	select INTEL_SOC_DTS_IOSF_CORE
	select THERMAL_WRITABLE_TRIPS
	help
	  Enable this to register Intel SoCs (e.g. Bay Trail) platform digital
	  temperature sensor (DTS). These SoCs have two additional DTSs in
	  addition to DTSs on CPU cores. Each DTS will be registered as a
	  thermal zone. There are two trip points. One of the trip point can
	  be set by user mode programs to get notifications via Linux thermal
	  notification methods.The other trip is a critical trip point, which
	  was set by the driver based on the TJ MAX temperature.

config INTEL_QUARK_DTS_THERMAL
	tristate "Intel Quark DTS thermal driver"
	depends on X86_INTEL_QUARK
	help
	  Enable this to register Intel Quark SoC (e.g. X1000) platform digital
	  temperature sensor (DTS). For X1000 SoC, it has one on-die DTS.
	  The DTS will be registered as a thermal zone. There are two trip points:
	  hot & critical. The critical trip point default value is set by
	  underlying BIOS/Firmware.

menu "ACPI INT340X thermal drivers"
source "drivers/thermal/intel/int340x_thermal/Kconfig"
endmenu

config INTEL_BXT_PMIC_THERMAL
	tristate "Intel Broxton PMIC thermal driver"
	depends on X86 && INTEL_SOC_PMIC_BXTWC
	select REGMAP
	help
	  Select this driver for Intel Broxton PMIC with ADC channels monitoring
	  system temperature measurements and alerts.
	  This driver is used for monitoring the ADC channels of PMIC and handles
	  the alert trip point interrupts and notifies the thermal framework with
	  the trip point and temperature details of the zone.

config INTEL_PCH_THERMAL
	tristate "Intel PCH Thermal Reporting Driver"
	depends on X86 && PCI
	select THERMAL_ACPI if ACPI
	help
	  Enable this to support thermal reporting on certain intel PCHs.
	  Thermal reporting device will provide temperature reading,
	  programmable trip points and other information.

config INTEL_TCC_COOLING
	tristate "Intel TCC offset cooling Driver"
	depends on X86
	select INTEL_TCC
	help
	  Enable this to support system cooling by adjusting the effective TCC
	  activation temperature via the TCC Offset register, which is widely
	  supported on modern Intel platforms.
	  Note that, on different platforms, the behavior might be different
	  on how fast the setting takes effect, and how much the CPU frequency
	  is reduced.

config INTEL_HFI_THERMAL
	bool "Intel Hardware Feedback Interface"
	depends on NET
	depends on CPU_SUP_INTEL
	depends on X86_THERMAL_VECTOR
	select THERMAL_NETLINK
	help
	  Select this option to enable the Hardware Feedback Interface. If
	  selected, hardware provides guidance to the operating system on
	  the performance and energy efficiency capabilities of each CPU.
	  These capabilities may change as a result of changes in the operating
	  conditions of the system such power and thermal limits. If selected,
	  the kernel relays updates in CPUs' capabilities to userspace.