# SPDX-License-Identifier: GPL-2.0-only
menu "Platform selection"

config ARCH_ACTIONS
	bool "Actions Semi Platforms"
	select OWL_TIMER
	select PINCTRL
	help
	  This enables support for the Actions Semiconductor S900 SoC family.

config ARCH_SUNXI
	bool "Allwinner sunxi 64-bit SoC Family"
	select ARCH_HAS_RESET_CONTROLLER
	select PINCTRL
	select RESET_CONTROLLER
	select SUN4I_TIMER
	select SUN6I_R_INTC
	select SUNXI_NMI_INTC
	help
	  This enables support for Allwinner sunxi based SoCs like the A64.

config ARCH_ALPINE
	bool "Annapurna Labs Alpine platform"
	select ALPINE_MSI if PCI
	help
	  This enables support for the Annapurna Labs Alpine
	  Soc family.

config ARCH_APPLE
	bool "Apple Silicon SoC family"
	select APPLE_AIC
	help
	  This enables support for Apple's in-house ARM SoC family, starting
	  with the Apple M1.

menuconfig ARCH_BCM
	bool "Broadcom SoC Support"

if ARCH_BCM

config ARCH_BCM2835
	bool "Broadcom BCM2835 family"
	select TIMER_OF
	select GPIOLIB
	select MFD_CORE
	select PINCTRL
	select PINCTRL_BCM2835
	select ARM_AMBA
	select ARM_GIC
	select ARM_TIMER_SP804
	help
	  This enables support for the Broadcom BCM2837 and BCM2711 SoC.
	  These SoCs are used in the Raspberry Pi 3 and 4 devices.

config ARCH_BCM_IPROC
	bool "Broadcom iProc SoC Family"
	select COMMON_CLK_IPROC
	select GPIOLIB
	select PINCTRL
	help
	  This enables support for Broadcom iProc based SoCs

config ARCH_BCMBCA
	bool "Broadcom Broadband Carrier Access (BCA) origin SoC"
	select GPIOLIB
	help
	  Say Y if you intend to run the kernel on a Broadcom Broadband ARM-based
	  BCA chipset.

	  This enables support for Broadcom BCA ARM-based broadband chipsets,
	  including the DSL, PON and Wireless family of chips.

config ARCH_BRCMSTB
	bool "Broadcom Set-Top-Box SoCs"
	select ARCH_HAS_RESET_CONTROLLER
	select GENERIC_IRQ_CHIP
	select PINCTRL
	help
	  This enables support for Broadcom's ARMv8 Set Top Box SoCs

endif

config ARCH_BERLIN
	bool "Marvell Berlin SoC Family"
	select DW_APB_ICTL
	select DW_APB_TIMER_OF
	select GPIOLIB
	select PINCTRL
	help
	  This enables support for Marvell Berlin SoC Family

config ARCH_BITMAIN
	bool "Bitmain SoC Platforms"
	help
	  This enables support for the Bitmain SoC Family.

config ARCH_EXYNOS
	bool "Samsung Exynos SoC family"
	select COMMON_CLK_SAMSUNG
	select CLKSRC_EXYNOS_MCT
	select EXYNOS_PM_DOMAINS if PM_GENERIC_DOMAINS
	select EXYNOS_PMU
	select PINCTRL
	select PINCTRL_EXYNOS
	select PM_GENERIC_DOMAINS if PM
	select SOC_SAMSUNG
	help
	  This enables support for ARMv8 based Samsung Exynos SoC family.

config ARCH_SPARX5
	bool "Microchip Sparx5 SoC family"
	select PINCTRL
	select DW_APB_TIMER_OF
	help
	  This enables support for the Microchip Sparx5 ARMv8-based
	  SoC family of TSN-capable gigabit switches.

	  The SparX-5 Ethernet switch family provides a rich set of
	  switching features such as advanced TCAM-based VLAN and QoS
	  processing enabling delivery of differentiated services, and
	  security through TCAM-based frame processing using versatile
	  content aware processor (VCAP).

config ARCH_K3
	bool "Texas Instruments Inc. K3 multicore SoC architecture"
	select PM_GENERIC_DOMAINS if PM
	select MAILBOX
	select SOC_TI
	select TI_MESSAGE_MANAGER
	select TI_SCI_PROTOCOL
	select TI_SCI_INTR_IRQCHIP
	select TI_SCI_INTA_IRQCHIP
	select TI_K3_SOCINFO
	help
	  This enables support for Texas Instruments' K3 multicore SoC
	  architecture.

config ARCH_LG1K
	bool "LG Electronics LG1K SoC Family"
	help
	  This enables support for LG Electronics LG1K SoC Family

config ARCH_HISI
	bool "Hisilicon SoC Family"
	select ARM_TIMER_SP804
	select HISILICON_IRQ_MBIGEN if PCI
	select PINCTRL
	help
	  This enables support for Hisilicon ARMv8 SoC family

config ARCH_KEEMBAY
	bool "Keem Bay SoC"
	help
	  This enables support for Intel Movidius SoC code-named Keem Bay.

config ARCH_MEDIATEK
	bool "MediaTek SoC Family"
	select ARM_GIC
	select PINCTRL
	select MTK_TIMER
	help
	  This enables support for MediaTek MT27xx, MT65xx, MT76xx
	  & MT81xx ARMv8 SoCs

config ARCH_MESON
	bool "Amlogic Platforms"
	help
	  This enables support for the arm64 based Amlogic SoCs
	  such as the s905, S905X/D, S912, A113X/D or S905X/D2

config ARCH_MVEBU
	bool "Marvell EBU SoC Family"
	select ARMADA_AP806_SYSCON
	select ARMADA_CP110_SYSCON
	select ARMADA_37XX_CLK
	select GPIOLIB
	select GPIOLIB_IRQCHIP
	select MVEBU_GICP
	select MVEBU_ICU
	select MVEBU_ODMI
	select MVEBU_PIC
	select MVEBU_SEI
	select OF_GPIO
	select PINCTRL
	select PINCTRL_ARMADA_37XX
	select PINCTRL_ARMADA_AP806
	select PINCTRL_ARMADA_CP110
	select PINCTRL_AC5
	help
	  This enables support for Marvell EBU family, including:
	   - Armada 3700 SoC Family
	   - Armada 7K SoC Family
	   - Armada 8K SoC Family
	   - 98DX2530 SoC Family

menuconfig ARCH_NXP
	bool "NXP SoC support"

if ARCH_NXP

config ARCH_LAYERSCAPE
	bool "Freescale Layerscape SoC family"
	select EDAC_SUPPORT
	help
	  This enables support for the Freescale Layerscape SoC family.

config ARCH_MXC
	bool "NXP i.MX SoC family"
	select ARM64_ERRATUM_843419
	select ARM64_ERRATUM_845719 if COMPAT
	select IMX_GPCV2
	select IMX_GPCV2_PM_DOMAINS
	select PM
	select PM_GENERIC_DOMAINS
	select SOC_BUS
	select TIMER_IMX_SYS_CTR
	help
	  This enables support for the ARMv8 based SoCs in the
	  NXP i.MX family.

config ARCH_S32
	bool "NXP S32 SoC Family"
	help
	  This enables support for the NXP S32 family of processors.

endif

config ARCH_MA35
	bool "Nuvoton MA35 Architecture"
	select GPIOLIB
	select PINCTRL
	select RESET_CONTROLLER
	help
	  This enables support for the ARMv8 based Nuvoton MA35 series SoCs.

config ARCH_NPCM
	bool "Nuvoton NPCM Architecture"
	select PINCTRL
	select GPIOLIB
	select NPCM7XX_TIMER
	select RESET_CONTROLLER
	select MFD_SYSCON
	help
	  General support for NPCM8xx BMC (Arbel).
	  Nuvoton NPCM8xx BMC based on the Cortex A35.

config ARCH_QCOM
	bool "Qualcomm Platforms"
	select GPIOLIB
	select PINCTRL
	help
	  This enables support for the ARMv8 based Qualcomm chipsets.

config ARCH_REALTEK
	bool "Realtek Platforms"
	select RESET_CONTROLLER
	help
	  This enables support for the ARMv8 based Realtek chipsets,
	  like the RTD1295.

config ARCH_RENESAS
	bool "Renesas SoC Platforms"
	help
	  This enables support for the ARMv8 based Renesas SoCs.

config ARCH_ROCKCHIP
	bool "Rockchip Platforms"
	select ARCH_HAS_RESET_CONTROLLER
	select PINCTRL
	select PM
	select ROCKCHIP_TIMER
	help
	  This enables support for the ARMv8 based Rockchip chipsets,
	  like the RK3368.

config ARCH_SEATTLE
	bool "AMD Seattle SoC Family"
	help
	  This enables support for AMD Seattle SOC Family

config ARCH_INTEL_SOCFPGA
	bool "Intel's SoCFPGA ARMv8 Families"
	help
	  This enables support for Intel's SoCFPGA ARMv8 families:
	  Stratix 10 (ex. Altera), Stratix10 Software Virtual Platform,
	  Agilex and eASIC N5X.

config ARCH_STM32
	bool "STMicroelectronics STM32 SoC Family"
	select GPIOLIB
	select PINCTRL
	select PINCTRL_STM32MP257
	select ARM_SMC_MBOX
	select ARM_SCMI_PROTOCOL
	select COMMON_CLK_SCMI
	help
	  This enables support for ARMv8 based STMicroelectronics
	  STM32 family, including:
		- STM32MP25:
			- STM32MP251, STM32MP253, STM32MP255 and STM32MP257.

config ARCH_SYNQUACER
	bool "Socionext SynQuacer SoC Family"
	select IRQ_FASTEOI_HIERARCHY_HANDLERS

config ARCH_TEGRA
	bool "NVIDIA Tegra SoC Family"
	select ARCH_HAS_RESET_CONTROLLER
	select ARM_GIC_PM
	select CLKSRC_MMIO
	select TIMER_OF
	select GPIOLIB
	select PINCTRL
	select PM
	select PM_GENERIC_DOMAINS
	select RESET_CONTROLLER
	help
	  This enables support for the NVIDIA Tegra SoC family.

config ARCH_TESLA_FSD
	bool "Tesla platform"
	depends on ARCH_EXYNOS
	help
	  Support for ARMv8 based Tesla platforms.

config ARCH_SPRD
	bool "Spreadtrum SoC platform"
	help
	  Support for Spreadtrum ARM based SoCs

config ARCH_THUNDER
	bool "Cavium Inc. Thunder SoC Family"
	help
	  This enables support for Cavium's Thunder Family of SoCs.

config ARCH_THUNDER2
	bool "Cavium ThunderX2 Server Processors"
	select GPIOLIB
	help
	  This enables support for Cavium's ThunderX2 CN99XX family of
	  server processors.

config ARCH_UNIPHIER
	bool "Socionext UniPhier SoC Family"
	select ARCH_HAS_RESET_CONTROLLER
	select PINCTRL
	select RESET_CONTROLLER
	help
	  This enables support for Socionext UniPhier SoC family.

config ARCH_VEXPRESS
	bool "ARMv8 software model (Versatile Express)"
	select GPIOLIB
	select PM
	select PM_GENERIC_DOMAINS
	help
	  This enables support for the ARMv8 software model (Versatile
	  Express).

config ARCH_VISCONTI
	bool "Toshiba Visconti SoC Family"
	select PINCTRL
	select PINCTRL_VISCONTI
	help
	  This enables support for Toshiba Visconti SoCs Family.

config ARCH_XGENE
	bool "AppliedMicro X-Gene SOC Family"
	help
	  This enables support for AppliedMicro X-Gene SOC Family

config ARCH_ZYNQMP
	bool "Xilinx ZynqMP Family"
	help
	  This enables support for Xilinx ZynqMP Family

endmenu # "Platform selection"