config BCMA_POSSIBLE
	bool
	depends on HAS_IOMEM && HAS_DMA && PCI
	default y

menu "Broadcom specific AMBA"
	depends on BCMA_POSSIBLE

config BCMA
	tristate "BCMA support"
	depends on BCMA_POSSIBLE
	help
	  Bus driver for Broadcom specific Advanced Microcontroller Bus
	  Architecture.

# Support for Block-I/O. SELECT this from the driver that needs it.
config BCMA_BLOCKIO
	bool
	depends on BCMA

config BCMA_HOST_PCI_POSSIBLE
	bool
	depends on BCMA && PCI = y
	default y

config BCMA_HOST_PCI
	bool "Support for BCMA on PCI-host bus"
	depends on BCMA_HOST_PCI_POSSIBLE
	select BCMA_DRIVER_PCI
	default y

config BCMA_DRIVER_PCI_HOSTMODE
	bool "Driver for PCI core working in hostmode"
	depends on BCMA && MIPS && BCMA_HOST_PCI
	help
	  PCI core hostmode operation (external PCI bus).

config BCMA_HOST_SOC
	bool "Support for BCMA in a SoC"
	depends on BCMA
	help
	  Host interface for a Broadcom AIX bus directly mapped into
	  the memory. This only works with the Broadcom SoCs from the
	  BCM47XX line.

	  If unsure, say N

# TODO: make it depend on PCI when ready
config BCMA_DRIVER_PCI
	bool
	default y
	help
	  BCMA bus may have many versions of PCIe core. This driver
	  supports:
	  1) PCIe core working in clientmode
	  2) PCIe Gen 2 clientmode core

	  In general PCIe (Gen 2) clientmode core is required on PCIe
	  hosted buses. It's responsible for initialization and basic
	  hardware management.
	  This driver is also prerequisite for a hostmode PCIe core
	  support.

config BCMA_DRIVER_MIPS
	bool "BCMA Broadcom MIPS core driver"
	depends on BCMA && MIPS
	help
	  Driver for the Broadcom MIPS core attached to Broadcom specific
	  Advanced Microcontroller Bus.

	  If unsure, say N

config BCMA_SFLASH
	bool
	depends on BCMA_DRIVER_MIPS
	default y

config BCMA_NFLASH
	bool
	depends on BCMA_DRIVER_MIPS
	default y

config BCMA_DRIVER_GMAC_CMN
	bool "BCMA Broadcom GBIT MAC COMMON core driver"
	depends on BCMA
	help
	  Driver for the Broadcom GBIT MAC COMMON core attached to Broadcom
	  specific Advanced Microcontroller Bus.

	  If unsure, say N

config BCMA_DRIVER_GPIO
	bool "BCMA GPIO driver"
	depends on BCMA && GPIOLIB
	select IRQ_DOMAIN if BCMA_HOST_SOC
	help
	  Driver to provide access to the GPIO pins of the bcma bus.

	  If unsure, say N

config BCMA_DEBUG
	bool "BCMA debugging"
	depends on BCMA
	help
	  This turns on additional debugging messages.

	  If unsure, say N

endmenu
