# SPDX-License-Identifier: GPL-2.0-only
menuconfig ARCH_MMP
	bool "Marvell PXA168/910/MMP2/MMP3"
	depends on (CPU_LITTLE_ENDIAN && ARCH_MULTI_V5) || ARCH_MULTI_V7
	select GPIO_PXA
	select GPIOLIB
	select PINCTRL
	select PLAT_PXA
	help
	  Support for Marvell's PXA168/PXA910(MMP), MMP2, and MMP3 processor lines.

if ARCH_MMP

menu "Marvell PXA168/910/MMP2 Implementations"

config MACH_MMP_DT
	bool "Support MMP (ARMv5) platforms from device tree"
	depends on ARCH_MULTI_V5
	select PINCTRL
	select PINCTRL_SINGLE
	select ARCH_HAS_RESET_CONTROLLER
	select CPU_MOHAWK
	help
	  Include support for Marvell MMP2 based platforms using
	  the device tree. Needn't select any other machine while
	  MACH_MMP_DT is enabled.

config MACH_MMP2_DT
	bool "Support MMP2 (ARMv7) platforms from device tree"
	depends on ARCH_MULTI_V7
	select PINCTRL
	select PINCTRL_SINGLE
	select ARCH_HAS_RESET_CONTROLLER
	select CPU_PJ4
	select PM_GENERIC_DOMAINS if PM
	select PM_GENERIC_DOMAINS_OF if PM && OF
	help
	  Include support for Marvell MMP2 based platforms using
	  the device tree.

config MACH_MMP3_DT
	bool "Support MMP3 (ARMv7) platforms"
	depends on ARCH_MULTI_V7
	select ARM_GIC
	select HAVE_ARM_SCU if SMP
	select HAVE_ARM_TWD if SMP
	select CACHE_L2X0
	select PINCTRL
	select PINCTRL_SINGLE
	select ARCH_HAS_RESET_CONTROLLER
	select CPU_PJ4B
	select PM_GENERIC_DOMAINS if PM
	select PM_GENERIC_DOMAINS_OF if PM && OF
	help
	  Say 'Y' here if you want to include support for platforms
	  with Marvell MMP3 processor, also known as PXA2128 or
	  Armada 620.

endmenu

config CPU_PXA168
	bool
	select CPU_MOHAWK
	help
	  Select code specific to PXA168

config CPU_PXA910
	bool
	select CPU_MOHAWK
	help
	  Select code specific to PXA910

config CPU_MMP2
	bool
	select CPU_PJ4
	help
	  Select code specific to MMP2. MMP2 is ARMv7 compatible.

endif
