# SPDX-License-Identifier: GPL-2.0-only
config ARCH_HISI
	bool "Hisilicon SoC Support"
	depends on ARCH_MULTI_V7 || (ARCH_MULTI_V5 && CPU_LITTLE_ENDIAN)
	select ARM_AMBA
	select ARM_GIC if ARCH_MULTI_V7
	select ARM_TIMER_SP804
	select POWER_RESET
	select POWER_RESET_HISI
	select POWER_SUPPLY

if ARCH_HISI

menu "Hisilicon platform type"

config ARCH_HI3xxx
	bool "Hisilicon Hi36xx family"
	depends on ARCH_MULTI_V7
	select CACHE_L2X0
	select HAVE_ARM_SCU if SMP
	select HAVE_ARM_TWD if SMP
	select PINCTRL
	select PINCTRL_SINGLE
	help
	  Support for Hisilicon Hi36xx SoC family

config ARCH_HIP01
	bool "Hisilicon HIP01 family"
	depends on ARCH_MULTI_V7
	select HAVE_ARM_SCU if SMP
	select HAVE_ARM_TWD if SMP
	select ARM_GLOBAL_TIMER
	help
	  Support for Hisilicon HIP01 SoC family

config ARCH_HIP04
	bool "Hisilicon HiP04 Cortex A15 family"
	depends on ARCH_MULTI_V7
	select ARM_ERRATA_798181 if SMP
	select HAVE_ARM_ARCH_TIMER
	select MCPM if SMP
	select MCPM_QUAD_CLUSTER if SMP
	select GENERIC_IRQ_EFFECTIVE_AFF_MASK if SMP
	help
	  Support for Hisilicon HiP04 SoC family

config ARCH_HIX5HD2
	bool "Hisilicon X5HD2 family"
	depends on ARCH_MULTI_V7
	select CACHE_L2X0
	select HAVE_ARM_SCU if SMP
	select HAVE_ARM_TWD if SMP
	select PINCTRL
	select PINCTRL_SINGLE
	help
	  Support for Hisilicon HIX5HD2 SoC family

config ARCH_SD5203
	bool "Hisilicon SD5203 family"
	depends on ARCH_MULTI_V5
	select DW_APB_ICTL
	help
	  Support for Hisilicon SD5203 SoC family

endmenu

endif
