# SPDX-License-Identifier: GPL-2.0
#
# Makefile for drivers/platform/x86/amd
# AMD x86 Platform-Specific Drivers
#

amd-pmc-y			:= pmc.o
obj-$(CONFIG_AMD_PMC)		+= amd-pmc.o
amd_hsmp-y			:= hsmp.o
obj-$(CONFIG_AMD_HSMP)		+= amd_hsmp.o
