# SPDX-License-Identifier: GPL-2.0-only

config SENSORS_PECI_CPUTEMP
	tristate "PECI CPU temperature monitoring client"
	depends on PECI
	select SENSORS_PECI
	select PECI_CPU
	help
	  If you say yes here you get support for the generic Intel PECI
	  cputemp driver which provides Digital Thermal Sensor (DTS) thermal
	  readings of the CPU package and CPU cores that are accessible via
	  the processor PECI interface.

	  This driver can also be built as a module. If so, the module
	  will be called peci-cputemp.

config SENSORS_PECI_DIMMTEMP
	tristate "PECI DIMM temperature monitoring client"
	depends on PECI
	select SENSORS_PECI
	select PECI_CPU
	help
	  If you say yes here you get support for the generic Intel PECI hwmon
	  driver which provides Temperature Sensor on DIMM readings that are
	  accessible via the processor PECI interface.

	  This driver can also be built as a module. If so, the module
	  will be called peci-dimmtemp.

config SENSORS_PECI
	tristate
