#
# Makefile for the Linux kernel EDAC drivers.
#
# Copyright 02 Jul 2003, Linux Networx (http://lnxi.com)
# This file may be distributed under the terms of the
# GNU General Public License.
#

obj-$(CONFIG_EDAC)			:= edac_core.o

edac_core-y	:= edac_mc.o edac_device.o edac_mc_sysfs.o
edac_core-y	+= edac_module.o edac_device_sysfs.o wq.o

edac_core-$(CONFIG_EDAC_DEBUG)		+= debugfs.o
edac_core-$(CONFIG_EDAC_SCRUB)		+= scrub.o
edac_core-$(CONFIG_EDAC_ECS)		+= ecs.o
edac_core-$(CONFIG_EDAC_MEM_REPAIR)	+= mem_repair.o

ifdef CONFIG_PCI
edac_core-y	+= edac_pci.o edac_pci_sysfs.o
endif

obj-$(CONFIG_EDAC_GHES)			+= ghes_edac.o

edac_mce_amd-y				:= mce_amd.o
obj-$(CONFIG_EDAC_DECODE_MCE)		+= edac_mce_amd.o

obj-$(CONFIG_EDAC_AL_MC)		+= al_mc_edac.o
obj-$(CONFIG_EDAC_AMD76X)		+= amd76x_edac.o
obj-$(CONFIG_EDAC_CPC925)		+= cpc925_edac.o
obj-$(CONFIG_EDAC_I5000)		+= i5000_edac.o
obj-$(CONFIG_EDAC_I5100)		+= i5100_edac.o
obj-$(CONFIG_EDAC_I5400)		+= i5400_edac.o
obj-$(CONFIG_EDAC_I7300)		+= i7300_edac.o
obj-$(CONFIG_EDAC_I7CORE)		+= i7core_edac.o
obj-$(CONFIG_EDAC_SBRIDGE)		+= sb_edac.o
obj-$(CONFIG_EDAC_PND2)			+= pnd2_edac.o
obj-$(CONFIG_EDAC_IGEN6)			+= igen6_edac.o
obj-$(CONFIG_EDAC_E7XXX)		+= e7xxx_edac.o
obj-$(CONFIG_EDAC_E752X)		+= e752x_edac.o
obj-$(CONFIG_EDAC_I82875P)		+= i82875p_edac.o
obj-$(CONFIG_EDAC_I82975X)		+= i82975x_edac.o
obj-$(CONFIG_EDAC_I3000)		+= i3000_edac.o
obj-$(CONFIG_EDAC_I3200)		+= i3200_edac.o
obj-$(CONFIG_EDAC_IE31200)		+= ie31200_edac.o
obj-$(CONFIG_EDAC_X38)			+= x38_edac.o
obj-$(CONFIG_EDAC_I82860)		+= i82860_edac.o
obj-$(CONFIG_EDAC_AMD64)		+= amd64_edac.o

obj-$(CONFIG_EDAC_PASEMI)		+= pasemi_edac.o

mpc85xx_edac_mod-y			:= fsl_ddr_edac.o mpc85xx_edac.o
obj-$(CONFIG_EDAC_MPC85XX)		+= mpc85xx_edac_mod.o

layerscape_edac_mod-y			:= fsl_ddr_edac.o layerscape_edac.o
obj-$(CONFIG_EDAC_LAYERSCAPE)		+= layerscape_edac_mod.o

skx_edac_common-y			:= skx_common.o

skx_edac-y				:= skx_base.o
obj-$(CONFIG_EDAC_SKX)			+= skx_edac.o skx_edac_common.o

i10nm_edac-y				:= i10nm_base.o
obj-$(CONFIG_EDAC_I10NM)		+= i10nm_edac.o skx_edac_common.o

imh_edac-y				:= imh_base.o
obj-$(CONFIG_EDAC_IMH)			+= imh_edac.o skx_edac_common.o

obj-$(CONFIG_EDAC_HIGHBANK_MC)		+= highbank_mc_edac.o
obj-$(CONFIG_EDAC_HIGHBANK_L2)		+= highbank_l2_edac.o

obj-$(CONFIG_EDAC_OCTEON_PC)		+= octeon_edac-pc.o
obj-$(CONFIG_EDAC_OCTEON_L2C)		+= octeon_edac-l2c.o
obj-$(CONFIG_EDAC_OCTEON_LMC)		+= octeon_edac-lmc.o
obj-$(CONFIG_EDAC_OCTEON_PCI)		+= octeon_edac-pci.o
obj-$(CONFIG_EDAC_THUNDERX)		+= thunderx_edac.o

obj-$(CONFIG_EDAC_ALTERA)		+= altera_edac.o
obj-$(CONFIG_EDAC_SIFIVE)		+= sifive_edac.o
obj-$(CONFIG_EDAC_ARMADA_XP)		+= armada_xp_edac.o
obj-$(CONFIG_EDAC_SYNOPSYS)		+= synopsys_edac.o
obj-$(CONFIG_EDAC_XGENE)		+= xgene_edac.o
obj-$(CONFIG_EDAC_TI)			+= ti_edac.o
obj-$(CONFIG_EDAC_QCOM)			+= qcom_edac.o
obj-$(CONFIG_EDAC_ASPEED)		+= aspeed_edac.o
obj-$(CONFIG_EDAC_BLUEFIELD)		+= bluefield_edac.o
obj-$(CONFIG_EDAC_DMC520)		+= dmc520_edac.o
obj-$(CONFIG_EDAC_NPCM)			+= npcm_edac.o
obj-$(CONFIG_EDAC_ZYNQMP)		+= zynqmp_edac.o
obj-$(CONFIG_EDAC_VERSAL)		+= versal_edac.o
obj-$(CONFIG_EDAC_LOONGSON)		+= loongson_edac.o
obj-$(CONFIG_EDAC_VERSALNET)		+= versalnet_edac.o
obj-$(CONFIG_EDAC_CORTEX_A72)		+= a72_edac.o
