blob: d1dbabe165779a5b2d3c3a512d00fcc105734a81 [file] [log] [blame]
menuconfig ARCH_BCM
bool "Broadcom SoC Support" if ARCH_MULTI_V6_V7
help
This enables support for Broadcom ARM based SoC chips
if ARCH_BCM
comment "IPROC architected SoCs"
config ARCH_BCM_IPROC
bool
select ARM_GIC
select CACHE_L2X0
select HAVE_ARM_SCU if SMP
select HAVE_ARM_TWD if SMP
select ARM_GLOBAL_TIMER
select CLKSRC_MMIO
select ARCH_REQUIRE_GPIOLIB
select ARM_AMBA
select PINCTRL
help
This enables support for systems based on Broadcom IPROC architected SoCs.
The IPROC complex contains one or more ARM CPUs along with common
core periperals. Application specific SoCs are created by adding a
uArchitecture containing peripherals outside of the IPROC complex.
Currently supported SoCs are Cygnus.
config ARCH_BCM_CYGNUS
bool "Broadcom Cygnus Support" if ARCH_MULTI_V7
select ARCH_BCM_IPROC
help
Enable support for the Cygnus family,
which includes the following variants:
BCM11300, BCM11320, BCM11350, BCM11360,
BCM58300, BCM58302, BCM58303, BCM58305.
config ARCH_BCM_5301X
bool "Broadcom BCM470X / BCM5301X ARM SoC" if ARCH_MULTI_V7
select ARCH_BCM_IPROC
help
Support for Broadcom BCM470X and BCM5301X SoCs with ARM CPU cores.
This is a network SoC line mostly used in home routers and
wifi access points, it's internal name is Northstar.
This inclused the following SoC: BCM53010, BCM53011, BCM53012,
BCM53014, BCM53015, BCM53016, BCM53017, BCM53018, BCM4707,
BCM4708 and BCM4709.
Do not confuse this with the BCM4760 which is a totally
different SoC or with the older BCM47XX and BCM53XX based
network SoC using a MIPS CPU, they are supported by arch/mips/bcm47xx
comment "KONA architected SoCs"
config ARCH_BCM_MOBILE
bool
select ARCH_REQUIRE_GPIOLIB
select ARM_ERRATA_754322
select ARM_ERRATA_775420
select ARM_GIC
select GPIO_BCM_KONA
select TICK_ONESHOT
select HAVE_ARM_ARCH_TIMER
select PINCTRL
select ARCH_BCM_MOBILE_SMP if SMP
help
This enables support for systems based on Broadcom mobile SoCs.
config ARCH_BCM_281XX
bool "Broadcom BCM281XX SoC family" if ARCH_MULTI_V7
select ARCH_BCM_MOBILE
select HAVE_SMP
help
Enable support for the BCM281XX family, which includes
BCM11130, BCM11140, BCM11351, BCM28145 and BCM28155
variants.
config ARCH_BCM_21664
bool "Broadcom BCM21664 SoC family" if ARCH_MULTI_V7
select ARCH_BCM_MOBILE
select HAVE_SMP
help
Enable support for the BCM21664 family, which includes
BCM21663 and BCM21664 variants.
config ARCH_BCM_MOBILE_L2_CACHE
bool "Broadcom mobile SoC level 2 cache support"
depends on ARCH_BCM_MOBILE
default y
select CACHE_L2X0
select ARCH_BCM_MOBILE_SMC
config ARCH_BCM_MOBILE_SMC
bool
depends on ARCH_BCM_MOBILE
config ARCH_BCM_MOBILE_SMP
bool
depends on ARCH_BCM_MOBILE
select HAVE_ARM_SCU
select ARM_ERRATA_764369
help
SMP support for the BCM281XX and BCM21664 SoC families.
Provided as an option so SMP support for SoCs of this type
can be disabled for an SMP-enabled kernel.
comment "Other Architectures"
config ARCH_BCM2835
bool "Broadcom BCM2835 family" if ARCH_MULTI_V6
select ARCH_REQUIRE_GPIOLIB
select ARM_AMBA
select ARM_ERRATA_411920
select ARM_TIMER_SP804
select CLKSRC_OF
select PINCTRL
select PINCTRL_BCM2835
help
This enables support for the Broadcom BCM2835 SoC. This SoC is
used in the Raspberry Pi and Roku 2 devices.
config ARCH_BCM_63XX
bool "Broadcom BCM63xx DSL SoC" if ARCH_MULTI_V7
depends on MMU
select ARM_ERRATA_754322
select ARM_ERRATA_764369 if SMP
select ARM_GIC
select ARM_GLOBAL_TIMER
select CACHE_L2X0
select HAVE_ARM_ARCH_TIMER
select HAVE_ARM_TWD if SMP
select HAVE_ARM_SCU if SMP
select HAVE_SMP
help
This enables support for systems based on Broadcom DSL SoCs.
It currently supports the 'BCM63XX' ARM-based family, which includes
the BCM63138 variant.
config ARCH_BRCMSTB
bool "Broadcom BCM7XXX based boards" if ARCH_MULTI_V7
select ARM_GIC
select ARM_ERRATA_798181 if SMP
select HAVE_ARM_ARCH_TIMER
select BRCMSTB_GISB_ARB
select BRCMSTB_L2_IRQ
select ARCH_DMA_ADDR_T_64BIT if ARM_LPAE
select ARCH_WANT_OPTIONAL_GPIOLIB
select SOC_BRCMSTB
select BRCMSTB
select PCI_DOMAINS if PCI
select BCM7120_L2_IRQ
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.
endif
choice
prompt "Chipset selection"
depends on ARCH_BRCMSTB
help
Select the Broadcom STB chipset you are building for.
config BCM3390A0
bool "3390 Ax"
select BRCM_HAS_BSPI_V4
select BRCM_MSPI_64B_WORDS
config BCM3390B0
bool "3390 Bx"
select BRCM_HAS_BSPI_V4
select BRCM_MSPI_64B_WORDS
config BCM7250B0
bool "7250 Bx"
select BCM7250
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_HAS_BSPI_V4
select BRCM_MSPI_64B_WORDS
select BRCMSTB_XPT_HASH if PM
config BCM7366C0
bool "7366 Cx"
select BCM7366
select BRCM_HAS_BSPI_V4
select BRCM_MSPI_64B_WORDS
select BRCMSTB_XPT_HASH if PM
config BCM74371A0
bool "74371 Ax"
select BCM74371
select BRCM_HAS_BSPI_V4
select BRCM_MSPI_64B_WORDS
config BCM7439B0
bool "7439 Bx"
select BCM7439
select BRCM_HAS_BSPI_V4
select BRCM_MSPI_64B_WORDS
select BRCMSTB_XPT_HASH if PM
config BCM7445D0
bool "7445 Dx"
select BCM7445
select BRCM_HAS_BSPI_V4
select BRCM_MSPI_64B_WORDS
select BRCMSTB_XPT_HASH if PM
config BCM7271A0
bool "7271 Ax"
select BCM7271
select BRCM_HAS_BSPI_V4
endchoice
#####################################################################
# Hidden options
#####################################################################
config BCM7250
bool
config BCM7364
bool
config BCM7366
bool
config BCM74371
bool
config BCM7439
bool
config BCM7445
bool
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