1# SPDX-License-Identifier: GPL-2.0
2config ARCH_VERSATILE
3	bool "ARM Ltd. Versatile family"
4	depends on ARCH_MULTI_V5
5	depends on CPU_LITTLE_ENDIAN
6	select ARM_AMBA
7	select ARM_TIMER_SP804
8	select ARM_VIC
9	select CLKSRC_VERSATILE
10	select CPU_ARM926T
11	select CLK_ICST
12	select MFD_SYSCON
13	select PLAT_VERSATILE
14	select POWER_RESET
15	select POWER_RESET_VERSATILE
16	select VERSATILE_FPGA_IRQ
17	help
18	  This enables support for ARM Ltd Versatile board.
19
20menuconfig ARCH_INTEGRATOR
21	bool "ARM Ltd. Integrator family"
22	depends on ARCH_MULTI_V4T || ARCH_MULTI_V5 || ARCH_MULTI_V6
23	depends on CPU_LITTLE_ENDIAN || ARCH_MULTI_V6
24	select ARM_AMBA
25	select CMA
26	select DMA_CMA
27	select HAVE_TCM
28	select CLK_ICST
29	select MFD_SYSCON
30	select PLAT_VERSATILE
31	select POWER_RESET
32	select POWER_RESET_VERSATILE
33	select POWER_SUPPLY
34	select SOC_INTEGRATOR_CM
35	select VERSATILE_FPGA_IRQ
36	help
37	  Support for ARM's Integrator platform.
38
39if ARCH_INTEGRATOR
40
41config ARCH_INTEGRATOR_AP
42	bool "Support Integrator/AP and Integrator/PP2 platforms"
43	select INTEGRATOR_AP_TIMER
44	select SERIAL_AMBA_PL010 if TTY
45	select SERIAL_AMBA_PL010_CONSOLE if TTY
46	select SOC_BUS
47	help
48	  Include support for the ARM(R) Integrator/AP and
49	  Integrator/PP2 platforms.
50
51config INTEGRATOR_IMPD1
52	bool "Include support for Integrator/IM-PD1"
53	depends on ARCH_INTEGRATOR_AP
54	select ARM_VIC
55	select GPIO_PL061
56	select GPIOLIB
57	select REGULATOR
58	select REGULATOR_FIXED_VOLTAGE
59	help
60	  The IM-PD1 is an add-on logic module for the Integrator which
61	  allows ARM(R) Ltd PrimeCells to be developed and evaluated.
62	  The IM-PD1 can be found on the Integrator/PP2 platform.
63
64config INTEGRATOR_CM720T
65	bool "Integrator/CM720T core module"
66	depends on ARCH_INTEGRATOR_AP
67	depends on ARCH_MULTI_V4T
68	select CPU_ARM720T
69
70config INTEGRATOR_CM920T
71	bool "Integrator/CM920T core module"
72	depends on ARCH_INTEGRATOR_AP
73	depends on ARCH_MULTI_V4T
74	select CPU_ARM920T
75
76config INTEGRATOR_CM922T_XA10
77	bool "Integrator/CM922T-XA10 core module"
78	depends on ARCH_MULTI_V4T
79	depends on ARCH_INTEGRATOR_AP
80	select CPU_ARM922T
81
82config INTEGRATOR_CM926EJS
83	bool "Integrator/CM926EJ-S core module"
84	depends on ARCH_INTEGRATOR_AP
85	depends on ARCH_MULTI_V5
86	select CPU_ARM926T
87
88config INTEGRATOR_CM10200E_REV0
89	bool "Integrator/CM10200E rev.0 core module"
90	depends on ARCH_INTEGRATOR_AP && n
91	depends on ARCH_MULTI_V5
92	select CPU_ARM1020
93
94config INTEGRATOR_CM10200E
95	bool "Integrator/CM10200E core module"
96	depends on ARCH_INTEGRATOR_AP && n
97	depends on ARCH_MULTI_V5
98	select CPU_ARM1020E
99
100config INTEGRATOR_CM10220E
101	bool "Integrator/CM10220E core module"
102	depends on ARCH_INTEGRATOR_AP
103	depends on ARCH_MULTI_V5
104	select CPU_ARM1022
105
106config INTEGRATOR_CM1026EJS
107	bool "Integrator/CM1026EJ-S core module"
108	depends on ARCH_INTEGRATOR_AP
109	depends on ARCH_MULTI_V5
110	select CPU_ARM1026
111
112config INTEGRATOR_CM1136JFS
113	bool "Integrator/CM1136JF-S core module"
114	depends on ARCH_INTEGRATOR_AP
115	depends on ARCH_MULTI_V6
116	select CPU_V6
117
118config ARCH_INTEGRATOR_CP
119	bool "Support Integrator/CP platform"
120	depends on ARCH_MULTI_V5 || ARCH_MULTI_V6
121	select ARM_TIMER_SP804
122	select SERIAL_AMBA_PL011 if TTY
123	select SERIAL_AMBA_PL011_CONSOLE if TTY
124	select SOC_BUS
125	help
126	  Include support for the ARM(R) Integrator CP platform.
127
128config INTEGRATOR_CT926
129	bool "Integrator/CT926 (ARM926EJ-S) core tile"
130	depends on ARCH_INTEGRATOR_CP
131	depends on ARCH_MULTI_V5
132	select CPU_ARM926T
133
134config INTEGRATOR_CTB36
135	bool "Integrator/CTB36 (ARM1136JF-S) core tile"
136	depends on ARCH_INTEGRATOR_CP
137	depends on ARCH_MULTI_V6
138	select CPU_V6
139
140config ARCH_CINTEGRATOR
141	depends on ARCH_INTEGRATOR_CP
142	def_bool y
143
144endif
145
146menuconfig ARCH_REALVIEW
147	bool "ARM Ltd. RealView family"
148	depends on (CPU_LITTLE_ENDIAN && ARCH_MULTI_V5) || ARCH_MULTI_V6 || ARCH_MULTI_V7
149	select ARM_AMBA
150	select ARM_GIC
151	select ARM_TIMER_SP804
152	select CLK_SP810
153	select GPIO_PL061 if GPIOLIB
154	select HAVE_ARM_SCU if SMP
155	select HAVE_ARM_TWD if SMP
156	select HAVE_PATA_PLATFORM
157	select HAVE_TCM
158	select CLK_ICST
159	select MACH_REALVIEW_EB if ARCH_MULTI_V5
160	select MFD_SYSCON
161	select PLAT_VERSATILE
162	select POWER_RESET
163	select POWER_RESET_VERSATILE
164	select POWER_SUPPLY
165	select SOC_REALVIEW
166	help
167	  This enables support for ARM Ltd RealView boards.
168
169if ARCH_REALVIEW
170
171config MACH_REALVIEW_EB
172	bool "Support RealView(R) Emulation Baseboard"
173	select ARM_GIC
174	select CPU_ARM926T if ARCH_MULTI_V5
175	help
176	  Include support for the ARM(R) RealView(R) Emulation Baseboard
177	  platform. On an ARMv5 kernel, this will include support for
178	  the ARM926EJ-S core tile, while on an ARMv6/v7 kernel, at least
179	  one of the ARM1136, ARM1176, ARM11MPCore or Cortex-A9MPCore
180	  core tile options should be enabled.
181
182config REALVIEW_EB_ARM1136
183	bool "Support ARM1136J(F)-S Tile"
184	depends on MACH_REALVIEW_EB && ARCH_MULTI_V6
185	select CPU_V6
186	help
187	  Enable support for the ARM1136 tile fitted to the
188	  Realview(R) Emulation Baseboard platform.
189
190config REALVIEW_EB_ARM1176
191	bool "Support ARM1176JZ(F)-S Tile"
192	depends on MACH_REALVIEW_EB && ARCH_MULTI_V6
193	help
194	  Enable support for the ARM1176 tile fitted to the
195	  Realview(R) Emulation Baseboard platform.
196
197config REALVIEW_EB_A9MP
198	bool "Support Multicore Cortex-A9 Tile"
199	depends on MACH_REALVIEW_EB && ARCH_MULTI_V7
200	help
201	  Enable support for the Cortex-A9MPCore tile fitted to the
202	  Realview(R) Emulation Baseboard platform.
203
204config REALVIEW_EB_ARM11MP
205	bool "Support ARM11MPCore Tile"
206	depends on MACH_REALVIEW_EB && ARCH_MULTI_V6
207	select HAVE_SMP
208	help
209	  Enable support for the ARM11MPCore tile fitted to the Realview(R)
210	  Emulation Baseboard platform.
211
212config MACH_REALVIEW_PB11MP
213	bool "Support RealView(R) Platform Baseboard for ARM11MPCore"
214	depends on ARCH_MULTI_V6
215	select HAVE_SMP
216	help
217	  Include support for the ARM(R) RealView(R) Platform Baseboard for
218	  the ARM11MPCore.  This platform has an on-board ARM11MPCore and has
219	  support for PCI-E and Compact Flash.
220
221# ARMv6 CPU without K extensions, but does have the new exclusive ops
222config MACH_REALVIEW_PB1176
223	bool "Support RealView(R) Platform Baseboard for ARM1176JZF-S"
224	depends on ARCH_MULTI_V6
225	select CPU_V6
226	select HAVE_TCM
227	help
228	  Include support for the ARM(R) RealView(R) Platform Baseboard for
229	  ARM1176JZF-S.
230
231config MACH_REALVIEW_PBA8
232	bool "Support RealView(R) Platform Baseboard for Cortex(tm)-A8 platform"
233	depends on ARCH_MULTI_V7
234	help
235	  Include support for the ARM(R) RealView Platform Baseboard for
236	  Cortex(tm)-A8.  This platform has an on-board Cortex-A8 and has
237	  support for PCI-E and Compact Flash.
238
239config MACH_REALVIEW_PBX
240	bool "Support RealView(R) Platform Baseboard Explore for Cortex-A9"
241	depends on ARCH_MULTI_V7
242	select ZONE_DMA
243	help
244	  Include support for the ARM(R) RealView(R) Platform Baseboard
245	  Explore.
246
247endif
248
249menuconfig ARCH_VEXPRESS
250	bool "ARM Ltd. Versatile Express family"
251	depends on ARCH_MULTI_V7
252	select ARM_AMBA
253	select ARM_GIC
254	select ARM_GLOBAL_TIMER
255	select ARM_TIMER_SP804
256	select GPIOLIB
257	select HAVE_ARM_SCU if SMP
258	select HAVE_ARM_TWD if SMP
259	select CLK_ICST
260	select NO_IOPORT_MAP
261	select PLAT_VERSATILE
262	select POWER_RESET
263	select POWER_RESET_VEXPRESS
264	select POWER_SUPPLY
265	select REGULATOR if MMC_ARMMMCI
266	select REGULATOR_FIXED_VOLTAGE if REGULATOR
267	select VEXPRESS_CONFIG
268	help
269	  This option enables support for systems using Cortex processor based
270	  ARM core and logic (FPGA) tiles on the Versatile Express motherboard,
271	  for example:
272
273	  - CoreTile Express A5x2 (V2P-CA5s)
274	  - CoreTile Express A9x4 (V2P-CA9)
275	  - CoreTile Express A15x2 (V2P-CA15)
276	  - LogicTile Express 13MG (V2F-2XV6) with A5, A7, A9 or A15 SMMs
277	    (Soft Macrocell Models)
278	  - Versatile Express RTSMs (Models)
279
280	  You must boot using a Flattened Device Tree in order to use these
281	  platforms. The traditional (ATAGs) boot method is not usable on
282	  these boards with this option.
283
284if ARCH_VEXPRESS
285
286config ARCH_VEXPRESS_CORTEX_A5_A9_ERRATA
287	bool "Enable A5 and A9 only errata work-arounds"
288	default y
289	select ARM_ERRATA_643719 if SMP
290	select ARM_ERRATA_720789
291	select PL310_ERRATA_753970 if CACHE_L2X0
292	help
293	  Provides common dependencies for Versatile Express platforms
294	  based on Cortex-A5 and Cortex-A9 processors. In order to
295	  build a working kernel, you must also enable relevant core
296	  tile support or Flattened Device Tree based support options.
297
298config ARCH_VEXPRESS_DCSCB
299	bool "Dual Cluster System Control Block (DCSCB) support"
300	depends on MCPM
301	select ARM_CCI400_PORT_CTRL
302	help
303	  Support for the Dual Cluster System Configuration Block (DCSCB).
304	  This is needed to provide CPU and cluster power management
305	  on RTSM implementing big.LITTLE.
306
307config ARCH_VEXPRESS_SPC
308	bool "Versatile Express Serial Power Controller (SPC)"
309	select PM_OPP
310	help
311	  The TC2 (A15x2 A7x3) versatile express core tile integrates a logic
312	  block called Serial Power Controller (SPC) that provides the interface
313	  between the dual cluster test-chip and the M3 microcontroller that
314	  carries out power management.
315
316config ARCH_VEXPRESS_TC2_PM
317	bool "Versatile Express TC2 power management"
318	depends on MCPM
319	select ARM_CCI400_PORT_CTRL
320	select ARCH_VEXPRESS_SPC
321	select ARM_CPU_SUSPEND
322	help
323	  Support for CPU and cluster power management on Versatile Express
324	  with a TC2 (A15x2 A7x3) big.LITTLE core tile.
325
326endif
327