config ARCH_BCM
	bool "Broadcom SoC Support"
	depends on ARCH_MULTIPLATFORM
	help
	  This enables support for Broadcom ARM based SoC
          chips

if ARCH_BCM

menu "Broadcom SoC Selection"

config ARCH_BCM_MOBILE
	bool "Broadcom Mobile SoC" if ARCH_MULTI_V7
	depends on MMU
	select ARCH_REQUIRE_GPIOLIB
	select ARM_ERRATA_754322
	select ARM_ERRATA_764369 if SMP
	select ARM_GIC
	select CPU_V7
	select CLKSRC_OF
	select GENERIC_CLOCKEVENTS
	select GENERIC_TIME
	select GPIO_BCM_KONA
	select SPARSE_IRQ
	select TICK_ONESHOT
	select CACHE_L2X0
	select HAVE_ARM_ARCH_TIMER
	select PINCTRL
	help
	  This enables support for systems based on Broadcom mobile SoCs.
	  It currently supports the 'BCM281XX' family, which includes
	  BCM11130, BCM11140, BCM11351, BCM28145 and
	  BCM28155 variants.

config ARCH_BRCMSTB
	bool "Broadcom BCM7XXX based boards" if ARCH_MULTI_V7
	depends on MMU
	select ARM_GIC
	select MIGHT_HAVE_PCI
	select HAVE_SMP
	select HAVE_ARM_ARCH_TIMER
	select POWER_RESET_BRCMSTB
	select BRCMSTB
	select ARCH_HAS_OPP
	select ARCH_HAS_CPUFREQ
	select PM_OPP if PM
	select ARM_ERRATA_798181 if SMP
	select ARCH_DMA_ADDR_T_64BIT if ARM_LPAE
	select GENERIC_IRQ_CHIP
	select BRCMSTB_GISB_ARB
	select SOC_BRCMSTB
	select ARCH_WANT_OPTIONAL_GPIOLIB
	help
	  Say Y if you intend to run the kernel on a Broadcom ARM-based STB
	  chipset.

	  This enables support for Broadcom ARM-based set-top box chipsets,
	  including the 7445 family of chips.

endmenu

endif

choice
	prompt "Chipset selection"
	depends on BRCMSTB
	help
	  Select the Broadcom STB chipset you are building for.

config BCM3390A0
	bool "3390 Ax"
	select BCM7145
	select BRCM_HAS_NAND_MAJOR_7
	select BRCM_HAS_NAND_MINOR_1
	select BRCM_HAS_BSPI_V4
	select BRCM_HAS_MOCA_20_GEN23
	select BRCM_MSPI_64B_WORDS

config BCM7145B0
	bool "7145 Bx"
	select BCM7145
	select BRCM_HAS_NAND_MAJOR_7
	select BRCM_HAS_NAND_MINOR_1
	select BRCM_HAS_BSPI_V4
	select BRCM_HAS_MOCA_20_GEN23
	select BRCM_MSPI_64B_WORDS

config BCM7250B0
	bool "7250 Bx"
	select BCM7250
	select BRCM_HAS_NAND_MAJOR_7
	select BRCM_HAS_NAND_MINOR_1
	select BRCM_HAS_BSPI_V4
	select BRCM_MSPI_64B_WORDS
	select BRCMSTB_XPT_HASH if PM

config BCM7364A0
	bool "7364 Ax"
	select BCM7364
	select BRCM_GENET_V4
	select BRCM_HAS_NAND_MAJOR_7
	select BRCM_HAS_NAND_MINOR_1
	select BRCM_HAS_BSPI_V4
	select BRCM_HAS_MOCA_20_GEN23
	select BRCM_MSPI_64B_WORDS
	select BRCMSTB_XPT_HASH if PM

config BCM7366C0
	bool "7366 Cx"
	select BCM7366
	select BRCM_GENET_V4
	select BRCM_HAS_NAND_MAJOR_7
	select BRCM_HAS_NAND_MINOR_1
	select BRCM_HAS_BSPI_V4
	select BRCM_HAS_MOCA_20_GEN23
	select BRCM_MSPI_64B_WORDS
	select BRCMSTB_XPT_HASH if PM

config BCM74371A0
	bool "74371 Ax"
	select BCM74371
	select BRCM_GENET_V4
	select BRCM_HAS_NAND_MAJOR_7
	select BRCM_HAS_NAND_MINOR_0
	select BRCM_HAS_BSPI_V4
	select BRCM_HAS_MOCA_20_GEN23
	select BRCM_MSPI_64B_WORDS

config BCM7439B0
	bool "7439 Bx"
	select BCM7439
	select BRCM_GENET_V4
	select BRCM_HAS_NAND_MAJOR_7
	select BRCM_HAS_NAND_MINOR_1
	select BRCM_HAS_BSPI_V4
	select BRCM_HAS_MOCA_20_GEN23
	select BRCM_MSPI_64B_WORDS
	select BRCMSTB_XPT_HASH if PM

config BCM7445D0
	bool "7445 Dx"
	select BCM7445
	select BRCM_GENET_V4
	select BRCM_HAS_MOCA_20_GEN23
	select BRCM_HAS_NAND_MAJOR_7
	select BRCM_HAS_NAND_MINOR_1
	select BRCM_HAS_BSPI_V4
	select BRCM_MSPI_64B_WORDS
	select BRCMSTB_XPT_HASH if PM

endchoice

config SPI_BRCMSTB
	tristate "Broadcom HIF SPI controller support"
	default y
	depends on BRCMSTB
	help
	  Say Y to enable support for SPI (serial) flash devices.

config BCMGENET
	tristate "Broadcom STB 10/100/1000 MAC/PHY support"
	depends on ETHERNET && BRCMSTB
	default y
	select CRC32
	select MII
	select PHYLIB
	select FIXED_PHY
	select BCM7XXX_PHY
	select BCM531XX_PHY
	help
	  Say Y to support the internal 10/100/1000 GENET MAC/PHY on
	  Broadcom set-top chips.  This driver also supports the datapath
	  for the onchip MoCA transceiver.

	  If your chipset supports power management, disabling this driver
	  will keep the device permanently powered down.

config BRCM_MOCA
	tristate "Broadcom MoCA character driver"
	depends on BRCMSTB && (BRCM_HAS_GENET || BRCM_HAS_MOCA_20_GEN21 || \
		BRCM_HAS_MOCA_20_GEN22 || BRCM_HAS_MOCA_20_GEN23) && !BRCM_IKOS
	default y
	help
	  Say Y to build the MoCA control path driver.  This is a simple
	  character driver that allows the MoCA daemon (mocad) to
	  initialize and configure the MoCA interface.

	  If your chipset supports power management, disabling this driver
	  will keep the device permanently powered down.

config BRCM_USB
	tristate "Broadcom STB USB support"
	depends on BRCMSTB && USB
	select BRCM_USB_OHCI if USB_OHCI_HCD
	select BRCM_USB_EHCI if USB_EHCI_HCD
	select BRCM_USB_XHCI if USB_XHCI_HCD
	default y
	help
	  Say Y to enable the drivers for the onchip USB controllers.

	  If your chipset supports power management, disabling this driver
	  will keep the device permanently powered down.


config MTD_NAND_BRCMSTB
	tristate "Broadcom NAND controller support"
	default y
	depends on OF && OF_MTD
	select MTD_NAND
	help
	  Say Y to enable the onchip NAND controller.

config BRCM_SDIO
	tristate "Broadcom SDHCI (SDIO) support"
	depends on BRCMSTB && MMC_SDHCI
	default y
	select MMC_SDHCI_IO_ACCESSORS
	help
	  Say Y to enable the driver for the onchip SDIO controller.

	  If you do not plan on using this device, disabling CONFIG_MMC
	  will save about 75KB.

	  If unsure, say Y.

#####################################################################
# Hidden options
#####################################################################

config BRCMSTB
	bool

config BCM7145
	bool

config BCM7250
	bool

config BCM7364
	bool

config BCM7366
	bool

config BCM74371
	bool

config BCM7439
	bool

config BCM7445
	bool

config BRCM_GENET_V3
	bool

config BRCM_GENET_V4
	bool

config BRCM_GENET_VERSION
	int
	default 3 if BRCM_GENET_V3
	default 4 if BRCM_GENET_V4

# MoCA controller
config BRCM_HAS_MOCA
	bool

# Original MoCA 1.1 (gen1 firmware)
config BRCM_HAS_MOCA_11
	bool
	select BRCM_HAS_MOCA

# Cost-reduced MoCA 1.1 with limited TX RAM (gen1 firmware)
config BRCM_HAS_MOCA_11_LITE
	bool
	select BRCM_HAS_MOCA

# MoCA 1.1 with selected 2.0 features (gen2 firmware)
config BRCM_HAS_MOCA_11_PLUS
	bool
	select BRCM_HAS_MOCA

# MoCA 2.0 (gen3 firmware for 1.1, gen2x firmware for 2.0)
config BRCM_HAS_MOCA_20_GEN21
	bool
	select BRCM_HAS_MOCA

config BRCM_HAS_MOCA_20_GEN22
	bool
	select BRCM_HAS_MOCA

config BRCM_HAS_MOCA_20_GEN23
	bool
	select BRCM_HAS_MOCA

config BRCM_MOCA_VERS
	hex
	default 0x1100 if BRCM_HAS_MOCA_11
	default 0x1101 if BRCM_HAS_MOCA_11_LITE
	default 0x1102 if BRCM_HAS_MOCA_11_PLUS
	default 0x2001 if BRCM_HAS_MOCA_20_GEN21
	default 0x2002 if BRCM_HAS_MOCA_20_GEN22
	default 0x2003 if BRCM_HAS_MOCA_20_GEN23

# select for MoCA on GENET_0
config BRCM_MOCA_ON_GENET_0
	bool
	select BRCM_HAS_GENET_0

# select for MoCA on GENET_1
config BRCM_MOCA_ON_GENET_1
	bool
	select BRCM_HAS_GENET_1

# MoCA is MidRF (default is HighRF)
config BRCM_HAS_MOCA_MIDRF
	bool

config BRCM_HAS_NAND_MINOR_0
	bool

config BRCM_HAS_NAND_MINOR_1
	bool

config BRCM_HAS_NAND_MINOR_2
	bool

config BRCM_HAS_NAND_MINOR_3
	bool

config BRCM_HAS_NAND_MINOR_4
	bool

config BRCM_HAS_NAND_MAJOR_5
	bool
	select BRCM_HAS_NAND

config BRCM_HAS_NAND_MAJOR_6
	bool
	select BRCM_HAS_NAND

config BRCM_HAS_NAND_MAJOR_7
	bool
	select BRCM_HAS_NAND

config BRCMNAND_MAJOR_VERS
	int
	default "7" if BRCM_HAS_NAND_MAJOR_7
	default "6" if BRCM_HAS_NAND_MAJOR_6
	default "5" if BRCM_HAS_NAND_MAJOR_5

config BRCMNAND_MINOR_VERS
	int
	default "4" if BRCM_HAS_NAND_MINOR_4
	default "3" if BRCM_HAS_NAND_MINOR_3
	default "2" if BRCM_HAS_NAND_MINOR_2
	default "1" if BRCM_HAS_NAND_MINOR_1
	default "0" if BRCM_HAS_NAND_MINOR_0

config BRCM_HAS_BSPI_V4
	bool
	select BRCM_HAS_SPI

config BRCM_BSPI_MAJOR_VERS
	int
	default "4" if BRCM_HAS_BSPI_V4
	default "3" if BRCM_HAS_BSPI_V3
	default "2" if BRCM_HAS_BSPI_V2

# For MSPI prior to v1.5 (first version with a revision register)
config BRCM_MSPI_LEGACY
	bool

# MSPI can transfer either 64b or 8b per slot
config BRCM_MSPI_64B_WORDS
	bool

config BRCM_USB_OHCI
       tristate

config BRCM_USB_EHCI
       tristate

config BRCM_USB_XHCI
       tristate
