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

config PPC4xx_PCI_EXPRESS
	bool
	depends on PCI && 4xx

config PPC4xx_HSTA_MSI
	bool
	depends on PCI_MSI
	depends on PCI && 4xx

config PPC4xx_MSI
	bool
	depends on PCI_MSI
	depends on PCI && 4xx

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

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

config PPC_SCOM
	bool

config SCOM_DEBUGFS
	bool "Expose SCOM controllers via debugfs"
	depends on PPC_SCOM && DEBUG_FS

config GE_FPGA
	bool

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