2019-05-19 15:07:45 +03:00
# SPDX-License-Identifier: GPL-2.0-only
2015-07-15 14:10:21 +03:00
menu "Platform selection"
2017-02-15 00:22:09 +03:00
config ARCH_ACTIONS
bool "Actions Semi Platforms"
select OWL_TIMER
2018-04-04 20:22:51 +03:00
select PINCTRL
2017-02-15 00:22:09 +03:00
help
This enables support for the Actions Semiconductor S900 SoC family.
2015-12-22 15:27:47 +03:00
config ARCH_SUNXI
bool "Allwinner sunxi 64-bit SoC Family"
2017-04-18 16:55:51 +03:00
select ARCH_HAS_RESET_CONTROLLER
2016-05-10 01:37:35 +03:00
select GENERIC_IRQ_CHIP
irqchip/sun6i-r: Use a stacked irqchip driver
The R_INTC in the A31 and newer sun8i/sun50i SoCs is more similar to the
original sun4i interrupt controller than the sun7i/sun9i NMI controller.
It is used for two distinct purposes:
- To control the trigger, latch, and mask for the NMI input pin
- To provide the interrupt input for the ARISC coprocessor
As this interrupt controller is not documented, information about it
comes from vendor-provided firmware blobs and from experimentation.
Differences from the sun4i interrupt controller appear to be:
- It only has one or two registers of each kind (max 32 or 64 IRQs)
- Multiplexing logic is added to support additional inputs
- There is no FIQ-related logic
- There is no interrupt priority logic
In order to fulfill its two purposes, this hardware block combines four
types of IRQs. First, the NMI pin is routed to the "IRQ 0" input on this
chip, with a trigger type controlled by the NMI_CTRL_REG. The "IRQ 0
pending" output from this chip, if enabled, is then routed to a SPI IRQ
input on the GIC. In other words, bit 0 of IRQ_ENABLE_REG *does* affect
the NMI IRQ seen at the GIC.
The NMI is followed by a contiguous block of 15 "direct" (my name for
them) IRQ inputs that are connected in parallel to both R_INTC and the
GIC. Or in other words, these bits of IRQ_ENABLE_REG *do not* affect the
IRQs seen at the GIC.
Following the direct IRQs are the ARISC's copy of banked IRQs for shared
peripherals. These are not relevant to Linux. The remaining IRQs are
connected to a multiplexer and provide access to the first (up to) 128
SPIs from the ARISC. This range of SPIs overlaps with the direct IRQs.
Because of the 1:1 correspondence between R_INTC and GIC inputs, this is
a perfect scenario for using a stacked irqchip driver. We want to hook
into setting the NMI trigger type, but not actually handle any IRQ here.
To allow access to all multiplexed IRQs, this driver requires a new
binding where the interrupt number matches the GIC interrupt number.
(This moves the NMI from number 0 to 32 or 96, depending on the SoC.)
For simplicity, copy the three-cell GIC binding; this disambiguates
interrupt 0 in the old binding (the NMI) from interrupt 0 in the new
binding (SPI 0) by the number of cells.
Since R_INTC is in the always-on power domain, and its output is visible
to the power management coprocessor, a stacked irqchip driver provides a
simple way to add wakeup support to any of its IRQs. That is the next
patch; for now, just the NMI is moved over.
This commit mostly reverts commit 173bda53b340 ("irqchip/sunxi-nmi:
Support sun6i-a31-r-intc compatible").
Acked-by: Maxime Ripard <mripard@kernel.org>
Signed-off-by: Samuel Holland <samuel@sholland.org>
Signed-off-by: Marc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/r/20210118055040.21910-4-samuel@sholland.org
2021-01-18 08:50:33 +03:00
select IRQ_DOMAIN_HIERARCHY
select IRQ_FASTEOI_HIERARCHY_HANDLERS
2016-08-08 20:21:43 +03:00
select PINCTRL
2017-04-18 16:55:51 +03:00
select RESET_CONTROLLER
2021-03-22 07:47:07 +03:00
select SUN4I_TIMER
2015-12-22 15:27:47 +03:00
help
This enables support for Allwinner sunxi based SoCs like the A64.
2016-02-25 13:14:51 +03:00
config ARCH_ALPINE
bool "Annapurna Labs Alpine platform"
2016-08-03 17:29:33 +03:00
select ALPINE_MSI if PCI
2016-02-25 13:14:51 +03:00
help
This enables support for the Annapurna Labs Alpine
Soc family.
2021-01-20 10:51:23 +03:00
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.
2016-06-03 09:18:23 +03:00
config ARCH_BCM2835
bool "Broadcom BCM2835 family"
2017-05-26 20:34:11 +03:00
select TIMER_OF
2016-04-19 12:08:07 +03:00
select GPIOLIB
2019-03-09 00:02:16 +03:00
select MFD_CORE
2016-06-03 09:18:23 +03:00
select PINCTRL
select PINCTRL_BCM2835
select ARM_AMBA
2019-09-30 21:29:12 +03:00
select ARM_GIC
2016-06-03 09:18:23 +03:00
select ARM_TIMER_SP804
2021-01-11 17:22:55 +03:00
select BRCMSTB_L2_IRQ
2016-06-03 09:18:23 +03:00
help
2019-09-30 21:29:12 +03:00
This enables support for the Broadcom BCM2837 and BCM2711 SoC.
These SoCs are used in the Raspberry Pi 3 and 4 devices.
2016-06-03 09:18:23 +03:00
2020-11-12 18:08:30 +03:00
config ARCH_BCM4908
bool "Broadcom BCM4908 family"
select GPIOLIB
help
This enables support for the Broadcom BCM4906, BCM4908 and
BCM49408 SoCs. These SoCs use Brahma-B53 cores and can be
found in home routers.
2015-07-28 01:42:20 +03:00
config ARCH_BCM_IPROC
bool "Broadcom iProc SoC Family"
2016-02-10 09:10:46 +03:00
select COMMON_CLK_IPROC
2016-04-19 12:08:07 +03:00
select GPIOLIB
2016-02-10 09:10:46 +03:00
select PINCTRL
2015-07-28 01:42:20 +03:00
help
This enables support for Broadcom iProc based SoCs
2015-08-03 22:24:45 +03:00
config ARCH_BERLIN
bool "Marvell Berlin SoC Family"
select DW_APB_ICTL
2020-10-09 10:08:31 +03:00
select DW_APB_TIMER_OF
2016-04-19 12:08:07 +03:00
select GPIOLIB
2015-10-16 10:37:09 +03:00
select PINCTRL
2015-08-03 22:24:45 +03:00
help
This enables support for Marvell Berlin SoC Family
2019-01-25 19:35:43 +03:00
config ARCH_BITMAIN
bool "Bitmain SoC Platforms"
help
This enables support for the Bitmain SoC Family.
2016-06-29 22:49:34 +03:00
config ARCH_BRCMSTB
bool "Broadcom Set-Top-Box SoCs"
2019-05-31 20:22:03 +03:00
select ARCH_HAS_RESET_CONTROLLER
2019-05-31 01:55:46 +03:00
select BCM7038_L1_IRQ
2016-06-29 22:49:34 +03:00
select BRCMSTB_L2_IRQ
select GENERIC_IRQ_CHIP
2019-05-31 20:34:38 +03:00
select PINCTRL
2016-06-29 22:49:34 +03:00
help
This enables support for Broadcom's ARMv8 Set Top Box SoCs
2015-07-15 14:10:21 +03:00
config ARCH_EXYNOS
2015-11-16 04:09:13 +03:00
bool "ARMv8 based Samsung Exynos SoC family"
2015-07-15 14:10:21 +03:00
select COMMON_CLK_SAMSUNG
2019-09-04 20:50:02 +03:00
select EXYNOS_CHIPID
2017-03-14 20:10:28 +03:00
select EXYNOS_PM_DOMAINS if PM_GENERIC_DOMAINS
select EXYNOS_PMU
2015-07-15 14:10:21 +03:00
select HAVE_S3C_RTC if RTC_CLASS
select PINCTRL
select PINCTRL_EXYNOS
2018-10-10 21:25:58 +03:00
select PM_GENERIC_DOMAINS if PM
2016-05-10 17:30:54 +03:00
select SOC_SAMSUNG
2015-07-15 14:10:21 +03:00
help
2015-11-16 04:09:13 +03:00
This enables support for ARMv8 based Samsung Exynos SoC family.
2015-07-15 14:10:21 +03:00
2020-06-15 16:32:34 +03:00
config ARCH_SPARX5
bool "ARMv8 based 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).
2018-06-26 19:26:12 +03:00
config ARCH_K3
bool "Texas Instruments Inc. K3 multicore SoC architecture"
select PM_GENERIC_DOMAINS if PM
2019-04-30 13:12:30 +03:00
select MAILBOX
2019-05-10 06:52:55 +03:00
select SOC_TI
2019-04-30 13:12:30 +03:00
select TI_MESSAGE_MANAGER
select TI_SCI_PROTOCOL
select TI_SCI_INTR_IRQCHIP
select TI_SCI_INTA_IRQCHIP
2020-06-19 19:25:27 +03:00
select TI_K3_SOCINFO
2018-06-26 19:26:12 +03:00
help
This enables support for Texas Instruments' K3 multicore SoC
architecture.
2015-10-23 22:31:50 +03:00
config ARCH_LAYERSCAPE
bool "ARMv8 based Freescale Layerscape SoC family"
2016-08-24 01:14:03 +03:00
select EDAC_SUPPORT
2015-07-15 14:10:21 +03:00
help
2015-10-23 22:31:50 +03:00
This enables support for the Freescale Layerscape SoC family.
2015-07-15 14:10:21 +03:00
2016-04-11 14:54:44 +03:00
config ARCH_LG1K
bool "LG Electronics LG1K SoC Family"
help
This enables support for LG Electronics LG1K SoC Family
2015-07-15 14:10:21 +03:00
config ARCH_HISI
bool "Hisilicon SoC Family"
2016-01-21 13:53:48 +03:00
select ARM_TIMER_SP804
2016-08-03 17:29:34 +03:00
select HISILICON_IRQ_MBIGEN if PCI
2016-08-23 01:45:30 +03:00
select PINCTRL
2015-07-15 14:10:21 +03:00
help
This enables support for Hisilicon ARMv8 SoC family
2020-07-17 12:04:10 +03:00
config ARCH_KEEMBAY
bool "Keem Bay SoC"
help
This enables support for Intel Movidius SoC code-named Keem Bay.
2015-07-15 14:10:21 +03:00
config ARCH_MEDIATEK
2017-10-19 12:52:54 +03:00
bool "MediaTek SoC Family"
2015-07-15 14:10:21 +03:00
select ARM_GIC
select PINCTRL
2015-10-02 18:05:18 +03:00
select MTK_TIMER
2015-07-15 14:10:21 +03:00
help
2017-10-19 12:52:54 +03:00
This enables support for MediaTek MT27xx, MT65xx, MT76xx
& MT81xx ARMv8 SoCs
2015-07-15 14:10:21 +03:00
2016-03-02 05:34:56 +03:00
config ARCH_MESON
bool "Amlogic Platforms"
2021-04-29 11:38:23 +03:00
select COMMON_CLK
2017-10-19 15:01:40 +03:00
select MESON_IRQ_GPIO
2016-03-02 05:34:56 +03:00
help
2019-02-08 13:14:04 +03:00
This enables support for the arm64 based Amlogic SoCs
such as the s905, S905X/D, S912, A113X/D or S905X/D2
2016-03-02 05:34:56 +03:00
2016-02-02 20:12:37 +03:00
config ARCH_MVEBU
bool "Marvell EBU SoC Family"
2016-04-26 10:58:29 +03:00
select ARMADA_AP806_SYSCON
select ARMADA_CP110_SYSCON
2016-06-10 16:23:29 +03:00
select ARMADA_37XX_CLK
2017-04-05 18:18:03 +03:00
select GPIOLIB
select GPIOLIB_IRQCHIP
2017-06-21 16:29:16 +03:00
select MVEBU_GICP
select MVEBU_ICU
2016-02-18 19:20:29 +03:00
select MVEBU_ODMI
2016-08-05 17:55:20 +03:00
select MVEBU_PIC
2018-10-01 17:13:52 +03:00
select MVEBU_SEI
2017-04-05 18:18:03 +03:00
select OF_GPIO
select PINCTRL
select PINCTRL_ARMADA_37XX
2017-06-12 18:34:55 +03:00
select PINCTRL_ARMADA_AP806
select PINCTRL_ARMADA_CP110
2016-02-02 20:12:37 +03:00
help
2016-02-18 19:20:29 +03:00
This enables support for Marvell EBU familly, including:
- Armada 3700 SoC Family
- Armada 7K SoC Family
- Armada 8K SoC Family
2016-02-02 20:12:37 +03:00
2018-12-09 17:26:06 +03:00
config ARCH_MXC
bool "ARMv8 based NXP i.MX SoC family"
select ARM64_ERRATUM_843419
2019-01-15 22:18:39 +03:00
select ARM64_ERRATUM_845719 if COMPAT
2019-01-25 19:20:34 +03:00
select IMX_GPCV2
2019-01-25 19:24:37 +03:00
select IMX_GPCV2_PM_DOMAINS
select PM
select PM_GENERIC_DOMAINS
2019-04-24 12:15:17 +03:00
select SOC_BUS
2019-06-21 10:07:17 +03:00
select TIMER_IMX_SYS_CTR
2018-12-09 17:26:06 +03:00
help
This enables support for the ARMv8 based SoCs in the
NXP i.MX family.
2015-07-15 14:10:21 +03:00
config ARCH_QCOM
bool "Qualcomm Platforms"
2016-10-21 20:56:08 +03:00
select GPIOLIB
2015-07-15 14:10:21 +03:00
select PINCTRL
help
This enables support for the ARMv8 based Qualcomm chipsets.
2017-02-13 21:45:05 +03:00
config ARCH_REALTEK
bool "Realtek Platforms"
2019-10-20 17:42:41 +03:00
select RESET_CONTROLLER
2017-02-13 21:45:05 +03:00
help
This enables support for the ARMv8 based Realtek chipsets,
like the RTD1295.
2015-11-16 20:42:32 +03:00
config ARCH_RENESAS
bool "Renesas SoC Platforms"
2018-11-15 12:46:49 +03:00
select GPIOLIB
2015-11-16 20:42:32 +03:00
select PINCTRL
2016-11-14 21:37:08 +03:00
select SOC_BUS
2015-11-16 20:42:32 +03:00
help
This enables support for the ARMv8 based Renesas SoCs.
2018-08-28 18:10:11 +03:00
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.
2019-10-16 15:48:24 +03:00
config ARCH_S32
bool "NXP S32 SoC Family"
help
This enables support for the NXP S32 family of processors.
2018-08-28 18:10:11 +03:00
config ARCH_SEATTLE
bool "AMD Seattle SoC Family"
help
This enables support for AMD Seattle SOC Family
2021-03-11 18:25:32 +03:00
config ARCH_INTEL_SOCFPGA
2021-03-11 18:25:38 +03:00
bool "Intel's SoCFPGA ARMv8 Families"
help
This enables support for Intel's SoCFPGA ARMv8 families:
Stratix 10 (ex. Altera), Agilex and eASIC N5X.
2021-03-11 18:25:32 +03:00
2018-08-28 18:10:11 +03:00
config ARCH_SYNQUACER
bool "Socionext SynQuacer SoC Family"
2015-07-15 14:10:21 +03:00
config ARCH_TEGRA
bool "NVIDIA Tegra SoC Family"
select ARCH_HAS_RESET_CONTROLLER
2019-03-22 15:13:03 +03:00
select ARM_GIC_PM
2015-07-15 14:10:21 +03:00
select CLKSRC_MMIO
2017-05-26 20:34:11 +03:00
select TIMER_OF
2016-04-19 12:08:07 +03:00
select GPIOLIB
2015-07-15 14:10:21 +03:00
select PINCTRL
2016-03-30 12:15:16 +03:00
select PM
select PM_GENERIC_DOMAINS
2015-07-15 14:10:21 +03:00
select RESET_CONTROLLER
help
This enables support for the NVIDIA Tegra SoC family.
config ARCH_SPRD
2020-04-07 17:21:46 +03:00
bool "Spreadtrum SoC platform"
2015-07-15 14:10:21 +03:00
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.
2017-02-05 03:57:02 +03:00
config ARCH_THUNDER2
bool "Cavium ThunderX2 Server Processors"
select GPIOLIB
help
This enables support for Cavium's ThunderX2 CN99XX family of
server processors.
2015-11-24 12:08:28 +03:00
config ARCH_UNIPHIER
bool "Socionext UniPhier SoC Family"
2016-10-08 05:25:34 +03:00
select ARCH_HAS_RESET_CONTROLLER
2015-11-24 12:08:28 +03:00
select PINCTRL
2018-06-25 06:34:45 +03:00
select RESET_CONTROLLER
2015-11-24 12:08:28 +03:00
help
This enables support for Socionext UniPhier SoC family.
2015-07-15 14:10:21 +03:00
config ARCH_VEXPRESS
bool "ARMv8 software model (Versatile Express)"
2016-04-19 12:08:07 +03:00
select GPIOLIB
2016-06-20 17:56:09 +03:00
select PM
select PM_GENERIC_DOMAINS
2015-07-15 14:10:21 +03:00
help
This enables support for the ARMv8 software model (Versatile
Express).
2020-04-27 23:58:48 +03:00
config ARCH_VISCONTI
bool "Toshiba Visconti SoC Family"
select PINCTRL
select PINCTRL_VISCONTI
help
This enables support for Toshiba Visconti SoCs Family.
2016-02-20 17:19:20 +03:00
config ARCH_VULCAN
2017-05-22 10:36:04 +03:00
def_bool n
2016-02-20 17:19:20 +03:00
2015-07-15 14:10:21 +03:00
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