[PATCH 17/22] ARM: Add Texas Instruments K3 architecture
Sascha Hauer
s.hauer at pengutronix.de
Thu Aug 3 03:49:58 PDT 2023
This adds the Kconfig snippets for supporting the Texas Instruments K3
architecure. This also enables deep probe support on a SoC basis as all
new boards should work with deep probe enabled. Likewise we need PM
domain support for the initially supported AM62x SoC, so enable that
for this SoC as well.
Signed-off-by: Sascha Hauer <s.hauer at pengutronix.de>
---
arch/arm/Kconfig | 14 ++++++++++++++
arch/arm/Makefile | 1 +
arch/arm/mach-k3/Kconfig | 6 ++++++
arch/arm/mach-k3/Makefile | 1 +
arch/arm/mach-k3/common.c | 24 ++++++++++++++++++++++++
5 files changed, 46 insertions(+)
create mode 100644 arch/arm/mach-k3/Kconfig
create mode 100644 arch/arm/mach-k3/Makefile
create mode 100644 arch/arm/mach-k3/common.c
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index e76ee0f6df..5e0907e3ea 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -232,6 +232,19 @@ config ARCH_IMX
select HAVE_PBL_MULTI_IMAGES
select RELOCATABLE
+config ARCH_K3
+ bool "Texas Instruments Inc. K3 multicore SoC architecture"
+ depends on 64BIT
+ select CPU_V8
+ select GPIOLIB
+ select COMMON_CLK
+ select CLKDEV_LOOKUP
+ select HAVE_PBL_MULTI_IMAGES
+ select HAS_DEBUG_LL
+ select HAVE_CLK
+ select COMMON_CLK_OF_PROVIDER
+ select PM_GENERIC_DOMAINS
+
config ARCH_OMAP_MULTI
bool "TI OMAP"
depends on 32BIT
@@ -327,6 +340,7 @@ source "arch/arm/mach-layerscape/Kconfig"
source "arch/arm/mach-mxs/Kconfig"
source "arch/arm/mach-mvebu/Kconfig"
source "arch/arm/mach-nomadik/Kconfig"
+source "arch/arm/mach-k3/Kconfig"
source "arch/arm/mach-omap/Kconfig"
source "arch/arm/mach-pxa/Kconfig"
source "arch/arm/mach-rockchip/Kconfig"
diff --git a/arch/arm/Makefile b/arch/arm/Makefile
index 337b7e9095..17c9b4068a 100644
--- a/arch/arm/Makefile
+++ b/arch/arm/Makefile
@@ -89,6 +89,7 @@ machine-$(CONFIG_ARCH_DAVINCI) += davinci
machine-$(CONFIG_ARCH_DIGIC) += digic
machine-$(CONFIG_ARCH_EP93XX) += ep93xx
machine-$(CONFIG_ARCH_IMX) += imx
+machine-$(CONFIG_ARCH_K3) += k3
machine-$(CONFIG_ARCH_LAYERSCAPE) += layerscape
machine-$(CONFIG_ARCH_MXS) += mxs
machine-$(CONFIG_ARCH_MVEBU) += mvebu
diff --git a/arch/arm/mach-k3/Kconfig b/arch/arm/mach-k3/Kconfig
new file mode 100644
index 0000000000..b2954493c4
--- /dev/null
+++ b/arch/arm/mach-k3/Kconfig
@@ -0,0 +1,6 @@
+# SPDX-License-Identifier: GPL-2.0-or-later
+
+menu "K3 boards"
+ depends on ARCH_K3
+
+endmenu
diff --git a/arch/arm/mach-k3/Makefile b/arch/arm/mach-k3/Makefile
new file mode 100644
index 0000000000..f95691b59a
--- /dev/null
+++ b/arch/arm/mach-k3/Makefile
@@ -0,0 +1 @@
+obj-y += common.o
diff --git a/arch/arm/mach-k3/common.c b/arch/arm/mach-k3/common.c
new file mode 100644
index 0000000000..7c2375d3ec
--- /dev/null
+++ b/arch/arm/mach-k3/common.c
@@ -0,0 +1,24 @@
+// SPDX-License-Identifier: GPL-2.0-only
+#include <of.h>
+#include <deep-probe.h>
+#include <init.h>
+#include <pm_domain.h>
+
+static const struct of_device_id k3_of_match[] = {
+ {
+ .compatible = "ti,am625",
+ },
+ { /* sentinel */ },
+};
+BAREBOX_DEEP_PROBE_ENABLE(k3_of_match);
+
+static int am625_init(void)
+{
+ if (!of_machine_is_compatible("ti,am625"))
+ return 0;
+
+ genpd_activate();
+
+ return 0;
+}
+postcore_initcall(am625_init);
--
2.39.2
More information about the barebox
mailing list