162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0
262306a36Sopenharmony_ciconfig ARCH_VERSATILE
362306a36Sopenharmony_ci	bool "ARM Ltd. Versatile family"
462306a36Sopenharmony_ci	depends on ARCH_MULTI_V5
562306a36Sopenharmony_ci	depends on CPU_LITTLE_ENDIAN
662306a36Sopenharmony_ci	select ARM_AMBA
762306a36Sopenharmony_ci	select ARM_TIMER_SP804
862306a36Sopenharmony_ci	select ARM_VIC
962306a36Sopenharmony_ci	select CLKSRC_VERSATILE
1062306a36Sopenharmony_ci	select CPU_ARM926T
1162306a36Sopenharmony_ci	select CLK_ICST
1262306a36Sopenharmony_ci	select MFD_SYSCON
1362306a36Sopenharmony_ci	select PLAT_VERSATILE
1462306a36Sopenharmony_ci	select POWER_RESET
1562306a36Sopenharmony_ci	select POWER_RESET_VERSATILE
1662306a36Sopenharmony_ci	select VERSATILE_FPGA_IRQ
1762306a36Sopenharmony_ci	help
1862306a36Sopenharmony_ci	  This enables support for ARM Ltd Versatile board.
1962306a36Sopenharmony_ci
2062306a36Sopenharmony_cimenuconfig ARCH_INTEGRATOR
2162306a36Sopenharmony_ci	bool "ARM Ltd. Integrator family"
2262306a36Sopenharmony_ci	depends on ARCH_MULTI_V4T || ARCH_MULTI_V5 || ARCH_MULTI_V6
2362306a36Sopenharmony_ci	depends on CPU_LITTLE_ENDIAN || ARCH_MULTI_V6
2462306a36Sopenharmony_ci	select ARM_AMBA
2562306a36Sopenharmony_ci	select CMA
2662306a36Sopenharmony_ci	select DMA_CMA
2762306a36Sopenharmony_ci	select HAVE_TCM
2862306a36Sopenharmony_ci	select CLK_ICST
2962306a36Sopenharmony_ci	select MFD_SYSCON
3062306a36Sopenharmony_ci	select PLAT_VERSATILE
3162306a36Sopenharmony_ci	select POWER_RESET
3262306a36Sopenharmony_ci	select POWER_RESET_VERSATILE
3362306a36Sopenharmony_ci	select POWER_SUPPLY
3462306a36Sopenharmony_ci	select SOC_INTEGRATOR_CM
3562306a36Sopenharmony_ci	select VERSATILE_FPGA_IRQ
3662306a36Sopenharmony_ci	help
3762306a36Sopenharmony_ci	  Support for ARM's Integrator platform.
3862306a36Sopenharmony_ci
3962306a36Sopenharmony_ciif ARCH_INTEGRATOR
4062306a36Sopenharmony_ci
4162306a36Sopenharmony_ciconfig ARCH_INTEGRATOR_AP
4262306a36Sopenharmony_ci	bool "Support Integrator/AP and Integrator/PP2 platforms"
4362306a36Sopenharmony_ci	select INTEGRATOR_AP_TIMER
4462306a36Sopenharmony_ci	select SERIAL_AMBA_PL010 if TTY
4562306a36Sopenharmony_ci	select SERIAL_AMBA_PL010_CONSOLE if TTY
4662306a36Sopenharmony_ci	select SOC_BUS
4762306a36Sopenharmony_ci	help
4862306a36Sopenharmony_ci	  Include support for the ARM(R) Integrator/AP and
4962306a36Sopenharmony_ci	  Integrator/PP2 platforms.
5062306a36Sopenharmony_ci
5162306a36Sopenharmony_ciconfig INTEGRATOR_IMPD1
5262306a36Sopenharmony_ci	bool "Include support for Integrator/IM-PD1"
5362306a36Sopenharmony_ci	depends on ARCH_INTEGRATOR_AP
5462306a36Sopenharmony_ci	select ARM_VIC
5562306a36Sopenharmony_ci	select GPIO_PL061
5662306a36Sopenharmony_ci	select GPIOLIB
5762306a36Sopenharmony_ci	select REGULATOR
5862306a36Sopenharmony_ci	select REGULATOR_FIXED_VOLTAGE
5962306a36Sopenharmony_ci	help
6062306a36Sopenharmony_ci	  The IM-PD1 is an add-on logic module for the Integrator which
6162306a36Sopenharmony_ci	  allows ARM(R) Ltd PrimeCells to be developed and evaluated.
6262306a36Sopenharmony_ci	  The IM-PD1 can be found on the Integrator/PP2 platform.
6362306a36Sopenharmony_ci
6462306a36Sopenharmony_ciconfig INTEGRATOR_CM720T
6562306a36Sopenharmony_ci	bool "Integrator/CM720T core module"
6662306a36Sopenharmony_ci	depends on ARCH_INTEGRATOR_AP
6762306a36Sopenharmony_ci	depends on ARCH_MULTI_V4T
6862306a36Sopenharmony_ci	select CPU_ARM720T
6962306a36Sopenharmony_ci
7062306a36Sopenharmony_ciconfig INTEGRATOR_CM920T
7162306a36Sopenharmony_ci	bool "Integrator/CM920T core module"
7262306a36Sopenharmony_ci	depends on ARCH_INTEGRATOR_AP
7362306a36Sopenharmony_ci	depends on ARCH_MULTI_V4T
7462306a36Sopenharmony_ci	select CPU_ARM920T
7562306a36Sopenharmony_ci
7662306a36Sopenharmony_ciconfig INTEGRATOR_CM922T_XA10
7762306a36Sopenharmony_ci	bool "Integrator/CM922T-XA10 core module"
7862306a36Sopenharmony_ci	depends on ARCH_MULTI_V4T
7962306a36Sopenharmony_ci	depends on ARCH_INTEGRATOR_AP
8062306a36Sopenharmony_ci	select CPU_ARM922T
8162306a36Sopenharmony_ci
8262306a36Sopenharmony_ciconfig INTEGRATOR_CM926EJS
8362306a36Sopenharmony_ci	bool "Integrator/CM926EJ-S core module"
8462306a36Sopenharmony_ci	depends on ARCH_INTEGRATOR_AP
8562306a36Sopenharmony_ci	depends on ARCH_MULTI_V5
8662306a36Sopenharmony_ci	select CPU_ARM926T
8762306a36Sopenharmony_ci
8862306a36Sopenharmony_ciconfig INTEGRATOR_CM10200E_REV0
8962306a36Sopenharmony_ci	bool "Integrator/CM10200E rev.0 core module"
9062306a36Sopenharmony_ci	depends on ARCH_INTEGRATOR_AP && n
9162306a36Sopenharmony_ci	depends on ARCH_MULTI_V5
9262306a36Sopenharmony_ci	select CPU_ARM1020
9362306a36Sopenharmony_ci
9462306a36Sopenharmony_ciconfig INTEGRATOR_CM10200E
9562306a36Sopenharmony_ci	bool "Integrator/CM10200E core module"
9662306a36Sopenharmony_ci	depends on ARCH_INTEGRATOR_AP && n
9762306a36Sopenharmony_ci	depends on ARCH_MULTI_V5
9862306a36Sopenharmony_ci	select CPU_ARM1020E
9962306a36Sopenharmony_ci
10062306a36Sopenharmony_ciconfig INTEGRATOR_CM10220E
10162306a36Sopenharmony_ci	bool "Integrator/CM10220E core module"
10262306a36Sopenharmony_ci	depends on ARCH_INTEGRATOR_AP
10362306a36Sopenharmony_ci	depends on ARCH_MULTI_V5
10462306a36Sopenharmony_ci	select CPU_ARM1022
10562306a36Sopenharmony_ci
10662306a36Sopenharmony_ciconfig INTEGRATOR_CM1026EJS
10762306a36Sopenharmony_ci	bool "Integrator/CM1026EJ-S core module"
10862306a36Sopenharmony_ci	depends on ARCH_INTEGRATOR_AP
10962306a36Sopenharmony_ci	depends on ARCH_MULTI_V5
11062306a36Sopenharmony_ci	select CPU_ARM1026
11162306a36Sopenharmony_ci
11262306a36Sopenharmony_ciconfig INTEGRATOR_CM1136JFS
11362306a36Sopenharmony_ci	bool "Integrator/CM1136JF-S core module"
11462306a36Sopenharmony_ci	depends on ARCH_INTEGRATOR_AP
11562306a36Sopenharmony_ci	depends on ARCH_MULTI_V6
11662306a36Sopenharmony_ci	select CPU_V6
11762306a36Sopenharmony_ci
11862306a36Sopenharmony_ciconfig ARCH_INTEGRATOR_CP
11962306a36Sopenharmony_ci	bool "Support Integrator/CP platform"
12062306a36Sopenharmony_ci	depends on ARCH_MULTI_V5 || ARCH_MULTI_V6
12162306a36Sopenharmony_ci	select ARM_TIMER_SP804
12262306a36Sopenharmony_ci	select SERIAL_AMBA_PL011 if TTY
12362306a36Sopenharmony_ci	select SERIAL_AMBA_PL011_CONSOLE if TTY
12462306a36Sopenharmony_ci	select SOC_BUS
12562306a36Sopenharmony_ci	help
12662306a36Sopenharmony_ci	  Include support for the ARM(R) Integrator CP platform.
12762306a36Sopenharmony_ci
12862306a36Sopenharmony_ciconfig INTEGRATOR_CT926
12962306a36Sopenharmony_ci	bool "Integrator/CT926 (ARM926EJ-S) core tile"
13062306a36Sopenharmony_ci	depends on ARCH_INTEGRATOR_CP
13162306a36Sopenharmony_ci	depends on ARCH_MULTI_V5
13262306a36Sopenharmony_ci	select CPU_ARM926T
13362306a36Sopenharmony_ci
13462306a36Sopenharmony_ciconfig INTEGRATOR_CTB36
13562306a36Sopenharmony_ci	bool "Integrator/CTB36 (ARM1136JF-S) core tile"
13662306a36Sopenharmony_ci	depends on ARCH_INTEGRATOR_CP
13762306a36Sopenharmony_ci	depends on ARCH_MULTI_V6
13862306a36Sopenharmony_ci	select CPU_V6
13962306a36Sopenharmony_ci
14062306a36Sopenharmony_ciconfig ARCH_CINTEGRATOR
14162306a36Sopenharmony_ci	depends on ARCH_INTEGRATOR_CP
14262306a36Sopenharmony_ci	def_bool y
14362306a36Sopenharmony_ci
14462306a36Sopenharmony_ciendif
14562306a36Sopenharmony_ci
14662306a36Sopenharmony_cimenuconfig ARCH_REALVIEW
14762306a36Sopenharmony_ci	bool "ARM Ltd. RealView family"
14862306a36Sopenharmony_ci	depends on (CPU_LITTLE_ENDIAN && ARCH_MULTI_V5) || ARCH_MULTI_V6 || ARCH_MULTI_V7
14962306a36Sopenharmony_ci	select ARM_AMBA
15062306a36Sopenharmony_ci	select ARM_GIC
15162306a36Sopenharmony_ci	select ARM_TIMER_SP804
15262306a36Sopenharmony_ci	select CLK_SP810
15362306a36Sopenharmony_ci	select GPIO_PL061 if GPIOLIB
15462306a36Sopenharmony_ci	select HAVE_ARM_SCU if SMP
15562306a36Sopenharmony_ci	select HAVE_ARM_TWD if SMP
15662306a36Sopenharmony_ci	select HAVE_PATA_PLATFORM
15762306a36Sopenharmony_ci	select HAVE_TCM
15862306a36Sopenharmony_ci	select CLK_ICST
15962306a36Sopenharmony_ci	select MACH_REALVIEW_EB if ARCH_MULTI_V5
16062306a36Sopenharmony_ci	select MFD_SYSCON
16162306a36Sopenharmony_ci	select PLAT_VERSATILE
16262306a36Sopenharmony_ci	select POWER_RESET
16362306a36Sopenharmony_ci	select POWER_RESET_VERSATILE
16462306a36Sopenharmony_ci	select POWER_SUPPLY
16562306a36Sopenharmony_ci	select SOC_REALVIEW
16662306a36Sopenharmony_ci	help
16762306a36Sopenharmony_ci	  This enables support for ARM Ltd RealView boards.
16862306a36Sopenharmony_ci
16962306a36Sopenharmony_ciif ARCH_REALVIEW
17062306a36Sopenharmony_ci
17162306a36Sopenharmony_ciconfig MACH_REALVIEW_EB
17262306a36Sopenharmony_ci	bool "Support RealView(R) Emulation Baseboard"
17362306a36Sopenharmony_ci	select ARM_GIC
17462306a36Sopenharmony_ci	select CPU_ARM926T if ARCH_MULTI_V5
17562306a36Sopenharmony_ci	help
17662306a36Sopenharmony_ci	  Include support for the ARM(R) RealView(R) Emulation Baseboard
17762306a36Sopenharmony_ci	  platform. On an ARMv5 kernel, this will include support for
17862306a36Sopenharmony_ci	  the ARM926EJ-S core tile, while on an ARMv6/v7 kernel, at least
17962306a36Sopenharmony_ci	  one of the ARM1136, ARM1176, ARM11MPCore or Cortex-A9MPCore
18062306a36Sopenharmony_ci	  core tile options should be enabled.
18162306a36Sopenharmony_ci
18262306a36Sopenharmony_ciconfig REALVIEW_EB_ARM1136
18362306a36Sopenharmony_ci	bool "Support ARM1136J(F)-S Tile"
18462306a36Sopenharmony_ci	depends on MACH_REALVIEW_EB && ARCH_MULTI_V6
18562306a36Sopenharmony_ci	select CPU_V6
18662306a36Sopenharmony_ci	help
18762306a36Sopenharmony_ci	  Enable support for the ARM1136 tile fitted to the
18862306a36Sopenharmony_ci	  Realview(R) Emulation Baseboard platform.
18962306a36Sopenharmony_ci
19062306a36Sopenharmony_ciconfig REALVIEW_EB_ARM1176
19162306a36Sopenharmony_ci	bool "Support ARM1176JZ(F)-S Tile"
19262306a36Sopenharmony_ci	depends on MACH_REALVIEW_EB && ARCH_MULTI_V6
19362306a36Sopenharmony_ci	help
19462306a36Sopenharmony_ci	  Enable support for the ARM1176 tile fitted to the
19562306a36Sopenharmony_ci	  Realview(R) Emulation Baseboard platform.
19662306a36Sopenharmony_ci
19762306a36Sopenharmony_ciconfig REALVIEW_EB_A9MP
19862306a36Sopenharmony_ci	bool "Support Multicore Cortex-A9 Tile"
19962306a36Sopenharmony_ci	depends on MACH_REALVIEW_EB && ARCH_MULTI_V7
20062306a36Sopenharmony_ci	help
20162306a36Sopenharmony_ci	  Enable support for the Cortex-A9MPCore tile fitted to the
20262306a36Sopenharmony_ci	  Realview(R) Emulation Baseboard platform.
20362306a36Sopenharmony_ci
20462306a36Sopenharmony_ciconfig REALVIEW_EB_ARM11MP
20562306a36Sopenharmony_ci	bool "Support ARM11MPCore Tile"
20662306a36Sopenharmony_ci	depends on MACH_REALVIEW_EB && ARCH_MULTI_V6
20762306a36Sopenharmony_ci	select HAVE_SMP
20862306a36Sopenharmony_ci	help
20962306a36Sopenharmony_ci	  Enable support for the ARM11MPCore tile fitted to the Realview(R)
21062306a36Sopenharmony_ci	  Emulation Baseboard platform.
21162306a36Sopenharmony_ci
21262306a36Sopenharmony_ciconfig MACH_REALVIEW_PB11MP
21362306a36Sopenharmony_ci	bool "Support RealView(R) Platform Baseboard for ARM11MPCore"
21462306a36Sopenharmony_ci	depends on ARCH_MULTI_V6
21562306a36Sopenharmony_ci	select HAVE_SMP
21662306a36Sopenharmony_ci	help
21762306a36Sopenharmony_ci	  Include support for the ARM(R) RealView(R) Platform Baseboard for
21862306a36Sopenharmony_ci	  the ARM11MPCore.  This platform has an on-board ARM11MPCore and has
21962306a36Sopenharmony_ci	  support for PCI-E and Compact Flash.
22062306a36Sopenharmony_ci
22162306a36Sopenharmony_ci# ARMv6 CPU without K extensions, but does have the new exclusive ops
22262306a36Sopenharmony_ciconfig MACH_REALVIEW_PB1176
22362306a36Sopenharmony_ci	bool "Support RealView(R) Platform Baseboard for ARM1176JZF-S"
22462306a36Sopenharmony_ci	depends on ARCH_MULTI_V6
22562306a36Sopenharmony_ci	select CPU_V6
22662306a36Sopenharmony_ci	select HAVE_TCM
22762306a36Sopenharmony_ci	help
22862306a36Sopenharmony_ci	  Include support for the ARM(R) RealView(R) Platform Baseboard for
22962306a36Sopenharmony_ci	  ARM1176JZF-S.
23062306a36Sopenharmony_ci
23162306a36Sopenharmony_ciconfig MACH_REALVIEW_PBA8
23262306a36Sopenharmony_ci	bool "Support RealView(R) Platform Baseboard for Cortex(tm)-A8 platform"
23362306a36Sopenharmony_ci	depends on ARCH_MULTI_V7
23462306a36Sopenharmony_ci	help
23562306a36Sopenharmony_ci	  Include support for the ARM(R) RealView Platform Baseboard for
23662306a36Sopenharmony_ci	  Cortex(tm)-A8.  This platform has an on-board Cortex-A8 and has
23762306a36Sopenharmony_ci	  support for PCI-E and Compact Flash.
23862306a36Sopenharmony_ci
23962306a36Sopenharmony_ciconfig MACH_REALVIEW_PBX
24062306a36Sopenharmony_ci	bool "Support RealView(R) Platform Baseboard Explore for Cortex-A9"
24162306a36Sopenharmony_ci	depends on ARCH_MULTI_V7
24262306a36Sopenharmony_ci	select ZONE_DMA
24362306a36Sopenharmony_ci	help
24462306a36Sopenharmony_ci	  Include support for the ARM(R) RealView(R) Platform Baseboard
24562306a36Sopenharmony_ci	  Explore.
24662306a36Sopenharmony_ci
24762306a36Sopenharmony_ciendif
24862306a36Sopenharmony_ci
24962306a36Sopenharmony_cimenuconfig ARCH_VEXPRESS
25062306a36Sopenharmony_ci	bool "ARM Ltd. Versatile Express family"
25162306a36Sopenharmony_ci	depends on ARCH_MULTI_V7
25262306a36Sopenharmony_ci	select ARM_AMBA
25362306a36Sopenharmony_ci	select ARM_GIC
25462306a36Sopenharmony_ci	select ARM_GLOBAL_TIMER
25562306a36Sopenharmony_ci	select ARM_TIMER_SP804
25662306a36Sopenharmony_ci	select GPIOLIB
25762306a36Sopenharmony_ci	select HAVE_ARM_SCU if SMP
25862306a36Sopenharmony_ci	select HAVE_ARM_TWD if SMP
25962306a36Sopenharmony_ci	select CLK_ICST
26062306a36Sopenharmony_ci	select NO_IOPORT_MAP
26162306a36Sopenharmony_ci	select PLAT_VERSATILE
26262306a36Sopenharmony_ci	select POWER_RESET
26362306a36Sopenharmony_ci	select POWER_RESET_VEXPRESS
26462306a36Sopenharmony_ci	select POWER_SUPPLY
26562306a36Sopenharmony_ci	select REGULATOR if MMC_ARMMMCI
26662306a36Sopenharmony_ci	select REGULATOR_FIXED_VOLTAGE if REGULATOR
26762306a36Sopenharmony_ci	select VEXPRESS_CONFIG
26862306a36Sopenharmony_ci	help
26962306a36Sopenharmony_ci	  This option enables support for systems using Cortex processor based
27062306a36Sopenharmony_ci	  ARM core and logic (FPGA) tiles on the Versatile Express motherboard,
27162306a36Sopenharmony_ci	  for example:
27262306a36Sopenharmony_ci
27362306a36Sopenharmony_ci	  - CoreTile Express A5x2 (V2P-CA5s)
27462306a36Sopenharmony_ci	  - CoreTile Express A9x4 (V2P-CA9)
27562306a36Sopenharmony_ci	  - CoreTile Express A15x2 (V2P-CA15)
27662306a36Sopenharmony_ci	  - LogicTile Express 13MG (V2F-2XV6) with A5, A7, A9 or A15 SMMs
27762306a36Sopenharmony_ci	    (Soft Macrocell Models)
27862306a36Sopenharmony_ci	  - Versatile Express RTSMs (Models)
27962306a36Sopenharmony_ci
28062306a36Sopenharmony_ci	  You must boot using a Flattened Device Tree in order to use these
28162306a36Sopenharmony_ci	  platforms. The traditional (ATAGs) boot method is not usable on
28262306a36Sopenharmony_ci	  these boards with this option.
28362306a36Sopenharmony_ci
28462306a36Sopenharmony_ciif ARCH_VEXPRESS
28562306a36Sopenharmony_ci
28662306a36Sopenharmony_ciconfig ARCH_VEXPRESS_CORTEX_A5_A9_ERRATA
28762306a36Sopenharmony_ci	bool "Enable A5 and A9 only errata work-arounds"
28862306a36Sopenharmony_ci	default y
28962306a36Sopenharmony_ci	select ARM_ERRATA_643719 if SMP
29062306a36Sopenharmony_ci	select ARM_ERRATA_720789
29162306a36Sopenharmony_ci	select PL310_ERRATA_753970 if CACHE_L2X0
29262306a36Sopenharmony_ci	help
29362306a36Sopenharmony_ci	  Provides common dependencies for Versatile Express platforms
29462306a36Sopenharmony_ci	  based on Cortex-A5 and Cortex-A9 processors. In order to
29562306a36Sopenharmony_ci	  build a working kernel, you must also enable relevant core
29662306a36Sopenharmony_ci	  tile support or Flattened Device Tree based support options.
29762306a36Sopenharmony_ci
29862306a36Sopenharmony_ciconfig ARCH_VEXPRESS_DCSCB
29962306a36Sopenharmony_ci	bool "Dual Cluster System Control Block (DCSCB) support"
30062306a36Sopenharmony_ci	depends on MCPM
30162306a36Sopenharmony_ci	select ARM_CCI400_PORT_CTRL
30262306a36Sopenharmony_ci	help
30362306a36Sopenharmony_ci	  Support for the Dual Cluster System Configuration Block (DCSCB).
30462306a36Sopenharmony_ci	  This is needed to provide CPU and cluster power management
30562306a36Sopenharmony_ci	  on RTSM implementing big.LITTLE.
30662306a36Sopenharmony_ci
30762306a36Sopenharmony_ciconfig ARCH_VEXPRESS_SPC
30862306a36Sopenharmony_ci	bool "Versatile Express Serial Power Controller (SPC)"
30962306a36Sopenharmony_ci	select PM_OPP
31062306a36Sopenharmony_ci	help
31162306a36Sopenharmony_ci	  The TC2 (A15x2 A7x3) versatile express core tile integrates a logic
31262306a36Sopenharmony_ci	  block called Serial Power Controller (SPC) that provides the interface
31362306a36Sopenharmony_ci	  between the dual cluster test-chip and the M3 microcontroller that
31462306a36Sopenharmony_ci	  carries out power management.
31562306a36Sopenharmony_ci
31662306a36Sopenharmony_ciconfig ARCH_VEXPRESS_TC2_PM
31762306a36Sopenharmony_ci	bool "Versatile Express TC2 power management"
31862306a36Sopenharmony_ci	depends on MCPM
31962306a36Sopenharmony_ci	select ARM_CCI400_PORT_CTRL
32062306a36Sopenharmony_ci	select ARCH_VEXPRESS_SPC
32162306a36Sopenharmony_ci	select ARM_CPU_SUSPEND
32262306a36Sopenharmony_ci	help
32362306a36Sopenharmony_ci	  Support for CPU and cluster power management on Versatile Express
32462306a36Sopenharmony_ci	  with a TC2 (A15x2 A7x3) big.LITTLE core tile.
32562306a36Sopenharmony_ci
32662306a36Sopenharmony_ciendif
327