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@xxxxxxxxxxxxxx> --- 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