config SOC_BRCMSTB
	bool

menu "Broadcom STB SoC drivers"
	depends on SOC_BRCMSTB

config BRCMSTB_IRQ0_STUB
	bool "Enable stub IRQ0 driver"
	default y
	depends on !BCM7120_L2_IRQ
	help
	  This enables the stub IRQ0 driver, for configuring the IRQ0
	  forwarding mask to enable the UARTs, but not do anything else with
	  the IRQ0 block. This driver is really a hack, and it exists solely
	  because Nexus wants to share the IRQ0 registers without telling
	  Linux.

	  It is highly recommended to either enable this or BCM7120_L2_IRQ.

config BRCMSTB_BMEM
	bool "Enable BMEM reserved A/V memory"
	depends on HAVE_MEMBLOCK && ARCH_BRCMSTB && BRCMSTB_MEMORY_API
	help
	  The A/V peripherals (managed by the PI/Nexus middleware) require
	  large, contiguous memory regions to be set aside at boot time.  This
	  option sets those up in a default config that reserves most of
	  memory.  Also allows the user to manually define region sizes and
	  locations using the 'bmem' command line param.  Allows for O_DIRECT
	  I/O using these regions, mmap() from user programs, and
	  ioremap() from kernel drivers.

	  If you are planning to use Broadcom middleware, choose Y here.

config BRCMSTB_CMA
	bool "Broadcom STB CMA"
	depends on ARCH_BRCMSTB && ARM && CMA && BRCMSTB_MEMORY_API
	help
	  This driver provides the ioctls for manipulating with the reserved
	  areas used by Broadcom middleware, as well as the functions for the
	  kernel interface.  It also provides register and reserve functions
	  for setting up the CMA regions it uses at early boot.

	  If you are planning to use Broadcom middleware, choose Y here.

config BRCMSTB_MEMORY_API
	bool "Enable BRCMSTB memory API"
	depends on HAVE_MEMBLOCK && ARCH_BRCMSTB
	select LIBFDT
	help
	  This provides information on how system memory is arranged so that
	  Broadcom STB middleware can determine how to set up its memory heaps.

	  If you are planning to use Broadcom middleware, choose Y here.

config BRCMSTB_PM
	bool "Support suspend/resume for STB platforms"
	default y
	depends on PM
	depends on ARM && ARCH_BRCMSTB

config BRCMSTB_SRPD
	tristate "Support enabling DDR self-refresh modes"
	help
	  Provides a sysfs interface for setting the self-refresh timeout
	  value on Broadcom STB memory controllers.

config BRCMSTB_WKTMR
	tristate "Support wake-up timer"

# Perform memory hashing before entering S3, using XPT DMA
config BRCMSTB_XPT_HASH
	bool

endmenu
