# SPDX-License-Identifier: GPL-2.0-only
#
# AMD x86 Platform Specific Drivers
#

source "drivers/platform/x86/amd/pmf/Kconfig"
source "drivers/platform/x86/amd/pmc/Kconfig"

config AMD_HSMP
	tristate "AMD HSMP Driver"
	depends on AMD_NB && X86_64
	help
	  The driver provides a way for user space tools to monitor and manage
	  system management functionality on EPYC server CPUs from AMD.

	  Host System Management Port (HSMP) interface is a mailbox interface
	  between the x86 core and the System Management Unit (SMU) firmware.

	  If you choose to compile this driver as a module the module will be
	  called amd_hsmp.

config AMD_WBRF
	bool "AMD Wifi RF Band mitigations (WBRF)"
	depends on ACPI
	help
	  WBRF(Wifi Band RFI mitigation) mechanism allows Wifi drivers
	  to notify the frequencies they are using so that other hardware
	  can be reconfigured to avoid harmonic conflicts.

	  AMD provides an ACPI based mechanism to support WBRF on platform with
	  appropriate underlying support.

	  This mechanism will only be activated on platforms that advertise a
	  need for it.
