1menuconfig ARCH_BCM
2	bool "Broadcom SoC Support" if ARCH_MULTI_V6_V7
3	help
4	  This enables support for Broadcom ARM based SoC chips
5
6if ARCH_BCM
7
8comment "IPROC architected SoCs"
9
10config ARCH_BCM_IPROC
11	bool
12	select ARM_GIC
13	select CACHE_L2X0
14	select HAVE_ARM_SCU if SMP
15	select HAVE_ARM_TWD if SMP
16	select ARM_GLOBAL_TIMER
17
18	select CLKSRC_MMIO
19	select ARCH_REQUIRE_GPIOLIB
20	select ARM_AMBA
21	select PINCTRL
22	help
23	  This enables support for systems based on Broadcom IPROC architected SoCs.
24	  The IPROC complex contains one or more ARM CPUs along with common
25	  core periperals. Application specific SoCs are created by adding a
26	  uArchitecture containing peripherals outside of the IPROC complex.
27	  Currently supported SoCs are Cygnus.
28
29config ARCH_BCM_CYGNUS
30	bool "Broadcom Cygnus Support" if ARCH_MULTI_V7
31	select ARCH_BCM_IPROC
32	help
33	  Enable support for the Cygnus family,
34	  which includes the following variants:
35	  BCM11300, BCM11320, BCM11350, BCM11360,
36	  BCM58300, BCM58302, BCM58303, BCM58305.
37
38config ARCH_BCM_5301X
39	bool "Broadcom BCM470X / BCM5301X ARM SoC" if ARCH_MULTI_V7
40	select ARCH_BCM_IPROC
41	help
42	  Support for Broadcom BCM470X and BCM5301X SoCs with ARM CPU cores.
43
44	  This is a network SoC line mostly used in home routers and
45	  wifi access points, it's internal name is Northstar.
46	  This inclused the following SoC: BCM53010, BCM53011, BCM53012,
47	  BCM53014, BCM53015, BCM53016, BCM53017, BCM53018, BCM4707,
48	  BCM4708 and BCM4709.
49
50	  Do not confuse this with the BCM4760 which is a totally
51	  different SoC or with the older BCM47XX and BCM53XX based
52	  network SoC using a MIPS CPU, they are supported by arch/mips/bcm47xx
53
54comment "KONA architected SoCs"
55
56config ARCH_BCM_MOBILE
57	bool
58	select ARCH_REQUIRE_GPIOLIB
59	select ARM_ERRATA_754322
60	select ARM_ERRATA_775420
61	select ARM_GIC
62	select GPIO_BCM_KONA
63	select TICK_ONESHOT
64	select HAVE_ARM_ARCH_TIMER
65	select PINCTRL
66	select ARCH_BCM_MOBILE_SMP if SMP
67	help
68	  This enables support for systems based on Broadcom mobile SoCs.
69
70config ARCH_BCM_281XX
71	bool "Broadcom BCM281XX SoC family" if ARCH_MULTI_V7
72	select ARCH_BCM_MOBILE
73	select HAVE_SMP
74	help
75	  Enable support for the BCM281XX family, which includes
76	  BCM11130, BCM11140, BCM11351, BCM28145 and BCM28155
77	  variants.
78
79config ARCH_BCM_21664
80	bool "Broadcom BCM21664 SoC family" if ARCH_MULTI_V7
81	select ARCH_BCM_MOBILE
82	select HAVE_SMP
83	help
84	  Enable support for the BCM21664 family, which includes
85	  BCM21663 and BCM21664 variants.
86
87config ARCH_BCM_MOBILE_L2_CACHE
88	bool "Broadcom mobile SoC level 2 cache support"
89	depends on ARCH_BCM_MOBILE
90	default y
91	select CACHE_L2X0
92	select ARCH_BCM_MOBILE_SMC
93
94config ARCH_BCM_MOBILE_SMC
95	bool
96	depends on ARCH_BCM_MOBILE
97
98config ARCH_BCM_MOBILE_SMP
99	bool
100	depends on ARCH_BCM_MOBILE
101	select HAVE_ARM_SCU
102	select ARM_ERRATA_764369
103	help
104	  SMP support for the BCM281XX and BCM21664 SoC families.
105	  Provided as an option so SMP support for SoCs of this type
106	  can be disabled for an SMP-enabled kernel.
107
108comment "Other Architectures"
109
110config ARCH_BCM2835
111	bool "Broadcom BCM2835 family" if ARCH_MULTI_V6
112	select ARCH_REQUIRE_GPIOLIB
113	select ARM_AMBA
114	select ARM_ERRATA_411920
115	select ARM_TIMER_SP804
116	select CLKSRC_OF
117	select PINCTRL
118	select PINCTRL_BCM2835
119	help
120	  This enables support for the Broadcom BCM2835 SoC. This SoC is
121	  used in the Raspberry Pi and Roku 2 devices.
122
123config ARCH_BCM_63XX
124	bool "Broadcom BCM63xx DSL SoC" if ARCH_MULTI_V7
125	depends on MMU
126	select ARM_ERRATA_754322
127	select ARM_ERRATA_764369 if SMP
128	select ARM_GIC
129	select ARM_GLOBAL_TIMER
130	select CACHE_L2X0
131	select HAVE_ARM_ARCH_TIMER
132	select HAVE_ARM_TWD if SMP
133	select HAVE_ARM_SCU if SMP
134	select HAVE_SMP
135	help
136	  This enables support for systems based on Broadcom DSL SoCs.
137	  It currently supports the 'BCM63XX' ARM-based family, which includes
138	  the BCM63138 variant.
139
140config ARCH_BRCMSTB
141	bool "Broadcom BCM7XXX based boards" if ARCH_MULTI_V7
142	select ARM_GIC
143	select HAVE_ARM_ARCH_TIMER
144	select BRCMSTB_GISB_ARB
145	select BRCMSTB_L2_IRQ
146	select BCM7120_L2_IRQ
147	help
148	  Say Y if you intend to run the kernel on a Broadcom ARM-based STB
149	  chipset.
150
151	  This enables support for Broadcom ARM-based set-top box chipsets,
152	  including the 7445 family of chips.
153
154endif
155