# SPDX-License-Identifier: GPL-2.0
# For a description of the syntax of this configuration file,
# see Documentation/kbuild/kconfig-language.rst.
#

config PPC4xx_PCI_EXPRESS
	bool
	depends on PCI && 44x

config PPC4xx_HSTA_MSI
	bool
	depends on PCI_MSI
	depends on PCI && 44x

config PPC_MSI_BITMAP
	bool
	depends on PCI_MSI
	default y if MPIC
	default y if FSL_PCI
	default y if PPC_POWERNV

source "arch/powerpc/sysdev/xics/Kconfig"
source "arch/powerpc/sysdev/xive/Kconfig"

config GE_FPGA
	bool

config FSL_CORENET_RCPM
	bool
	help
	  This option enables support for RCPM (Run Control/Power Management).
