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
204# ARMv6 CPU without K extensions, but does have the new exclusive ops
205config MACH_REALVIEW_PB1176
206	bool "Support RealView(R) Platform Baseboard for ARM1176JZF-S"
207	depends on ARCH_MULTI_V6
208	select CPU_V6
209	select HAVE_TCM
210	help
211	  Include support for the ARM(R) RealView(R) Platform Baseboard for
212	  ARM1176JZF-S.
213
214config MACH_REALVIEW_PBA8
215	bool "Support RealView(R) Platform Baseboard for Cortex(tm)-A8 platform"
216	depends on ARCH_MULTI_V7
217	help
218	  Include support for the ARM(R) RealView Platform Baseboard for
219	  Cortex(tm)-A8.  This platform has an on-board Cortex-A8 and has
220	  support for PCI-E and Compact Flash.
221
222config MACH_REALVIEW_PBX
223	bool "Support RealView(R) Platform Baseboard Explore for Cortex-A9"
224	depends on ARCH_MULTI_V7
225	select ZONE_DMA
226	help
227	  Include support for the ARM(R) RealView(R) Platform Baseboard
228	  Explore.
229
230endif
231
232menuconfig ARCH_VEXPRESS
233	bool "ARM Ltd. Versatile Express family"
234	depends on ARCH_MULTI_V7
235	select ARM_AMBA
236	select ARM_GIC
237	select ARM_GLOBAL_TIMER
238	select ARM_TIMER_SP804
239	select GPIOLIB
240	select HAVE_ARM_SCU if SMP
241	select HAVE_ARM_TWD if SMP
242	select CLK_ICST
243	select NO_IOPORT_MAP
244	select PLAT_VERSATILE
245	select POWER_RESET
246	select POWER_RESET_VEXPRESS
247	select POWER_SUPPLY
248	select REGULATOR if MMC_ARMMMCI
249	select REGULATOR_FIXED_VOLTAGE if REGULATOR
250	select VEXPRESS_CONFIG
251	help
252	  This option enables support for systems using Cortex processor based
253	  ARM core and logic (FPGA) tiles on the Versatile Express motherboard,
254	  for example:
255
256	  - CoreTile Express A5x2 (V2P-CA5s)
257	  - CoreTile Express A9x4 (V2P-CA9)
258	  - CoreTile Express A15x2 (V2P-CA15)
259	  - LogicTile Express 13MG (V2F-2XV6) with A5, A7, A9 or A15 SMMs
260	    (Soft Macrocell Models)
261	  - Versatile Express RTSMs (Models)
262
263	  You must boot using a Flattened Device Tree in order to use these
264	  platforms. The traditional (ATAGs) boot method is not usable on
265	  these boards with this option.
266
267if ARCH_VEXPRESS
268
269config ARCH_VEXPRESS_CORTEX_A5_A9_ERRATA
270	bool "Enable A5 and A9 only errata work-arounds"
271	default y
272	select ARM_ERRATA_643719 if SMP
273	select ARM_ERRATA_720789
274	select PL310_ERRATA_753970 if CACHE_L2X0
275	help
276	  Provides common dependencies for Versatile Express platforms
277	  based on Cortex-A5 and Cortex-A9 processors. In order to
278	  build a working kernel, you must also enable relevant core
279	  tile support or Flattened Device Tree based support options.
280
281config ARCH_VEXPRESS_DCSCB
282	bool "Dual Cluster System Control Block (DCSCB) support"
283	depends on MCPM
284	select ARM_CCI400_PORT_CTRL
285	help
286	  Support for the Dual Cluster System Configuration Block (DCSCB).
287	  This is needed to provide CPU and cluster power management
288	  on RTSM implementing big.LITTLE.
289
290config ARCH_VEXPRESS_SPC
291	bool "Versatile Express Serial Power Controller (SPC)"
292	select PM_OPP
293	help
294	  The TC2 (A15x2 A7x3) versatile express core tile integrates a logic
295	  block called Serial Power Controller (SPC) that provides the interface
296	  between the dual cluster test-chip and the M3 microcontroller that
297	  carries out power management.
298
299config ARCH_VEXPRESS_TC2_PM
300	bool "Versatile Express TC2 power management"
301	depends on MCPM
302	select ARM_CCI400_PORT_CTRL
303	select ARCH_VEXPRESS_SPC
304	select ARM_CPU_SUSPEND
305	help
306	  Support for CPU and cluster power management on Versatile Express
307	  with a TC2 (A15x2 A7x3) big.LITTLE core tile.
308
309endif
310