]> www.infradead.org Git - linux.git/commitdiff
ARM: sunplus: Add initial support for Sunplus SP7021 SoC
authorQin Jian <qinjian@cqplus1.com>
Tue, 28 Jun 2022 06:26:49 +0000 (14:26 +0800)
committerArnd Bergmann <arnd@arndb.de>
Fri, 8 Jul 2022 12:24:14 +0000 (14:24 +0200)
This patch aims to add an initial support for Sunplus SP7021 SoC.

Signed-off-by: Qin Jian <qinjian@cqplus1.com>
Reviewed-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
MAINTAINERS
arch/arm/Kconfig
arch/arm/Makefile
arch/arm/mach-sunplus/Kconfig [new file with mode: 0644]
arch/arm/mach-sunplus/Makefile [new file with mode: 0644]
arch/arm/mach-sunplus/sp7021.c [new file with mode: 0644]

index e817e39715071b565685377c9594deb9152e6634..c0056e4c63b828d8685eb8fb9a5a63ed39fccc0d 100644 (file)
@@ -2834,6 +2834,7 @@ F:        Documentation/devicetree/bindings/arm/sunplus,sp7021.yaml
 F:     Documentation/devicetree/bindings/clock/sunplus,sp7021-clkc.yaml
 F:     Documentation/devicetree/bindings/interrupt-controller/sunplus,sp7021-intc.yaml
 F:     Documentation/devicetree/bindings/reset/sunplus,reset.yaml
+F:     arch/arm/mach-sunplus/
 F:     drivers/irqchip/irq-sp7021-intc.c
 F:     drivers/reset/reset-sunplus.c
 F:     include/dt-bindings/clock/sunplus,sp7021-clkc.h
index 7630ba9cb6ccc30cd75672c57e0aa248f5a298c9..cb37b17226e519ab925a02b7b1e4a50b7b0560c7 100644 (file)
@@ -588,6 +588,8 @@ source "arch/arm/mach-sti/Kconfig"
 
 source "arch/arm/mach-stm32/Kconfig"
 
+source "arch/arm/mach-sunplus/Kconfig"
+
 source "arch/arm/mach-sunxi/Kconfig"
 
 source "arch/arm/mach-tegra/Kconfig"
index c8e3633f5434f6fd3edc2c66797462b26eabb20f..56f655deebb14c38beddacfa713b27933c4c7b8c 100644 (file)
@@ -215,6 +215,7 @@ machine-$(CONFIG_ARCH_RENESAS)              += shmobile
 machine-$(CONFIG_ARCH_INTEL_SOCFPGA)   += socfpga
 machine-$(CONFIG_ARCH_STI)             += sti
 machine-$(CONFIG_ARCH_STM32)           += stm32
+machine-$(CONFIG_ARCH_SUNPLUS)         += sunplus
 machine-$(CONFIG_ARCH_SUNXI)           += sunxi
 machine-$(CONFIG_ARCH_TEGRA)           += tegra
 machine-$(CONFIG_ARCH_U8500)           += ux500
diff --git a/arch/arm/mach-sunplus/Kconfig b/arch/arm/mach-sunplus/Kconfig
new file mode 100644 (file)
index 0000000..926cde5
--- /dev/null
@@ -0,0 +1,27 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+
+menuconfig ARCH_SUNPLUS
+       bool "Sunplus SoCs"
+       depends on ARCH_MULTI_V7
+       help
+         Support for Sunplus SoC family: SP7021 and succeeding SoC-based systems,
+         such as the Banana Pi BPI-F2S development board (and derivatives).
+         (<http://www.sinovoip.com.cn/ecp_view.asp?id=586>)
+         (<https://tibbo.com/store/plus1.html>)
+
+config SOC_SP7021
+       bool "Sunplus SP7021 SoC support"
+       depends on ARCH_SUNPLUS
+       default ARCH_SUNPLUS
+       select HAVE_ARM_ARCH_TIMER
+       select ARM_GIC
+       select ARM_PSCI
+       select PINCTRL
+       select PINCTRL_SPPCTL
+       select SERIAL_SUNPLUS
+       select SERIAL_SUNPLUS_CONSOLE
+       help
+         Support for Sunplus SP7021 SoC. It is based on ARM 4-core
+         Cortex-A7 with various peripherals (e.g.: I2C, SPI, SDIO,
+         Ethernet, etc.), FPGA interface,  chip-to-chip bus.
+         It is designed for industrial control.
diff --git a/arch/arm/mach-sunplus/Makefile b/arch/arm/mach-sunplus/Makefile
new file mode 100644 (file)
index 0000000..d211de6
--- /dev/null
@@ -0,0 +1,8 @@
+# SPDX-License-Identifier: GPL-2.0
+#
+# Makefile for the linux kernel.
+#
+
+# Object file lists.
+
+obj-$(CONFIG_SOC_SP7021)       += sp7021.o
diff --git a/arch/arm/mach-sunplus/sp7021.c b/arch/arm/mach-sunplus/sp7021.c
new file mode 100644 (file)
index 0000000..774d0a5
--- /dev/null
@@ -0,0 +1,16 @@
+// SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+/*
+ * Copyright (C) Sunplus Technology Co., Ltd.
+ *       All rights reserved.
+ */
+#include <linux/kernel.h>
+#include <asm/mach/arch.h>
+
+static const char *sp7021_compat[] __initconst = {
+       "sunplus,sp7021",
+       NULL
+};
+
+DT_MACHINE_START(SP7021_DT, "SP7021")
+       .dt_compat      = sp7021_compat,
+MACHINE_END