summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlice Guo <[email protected]>2026-03-02 13:20:08 +0800
committerFabio Estevam <[email protected]>2026-03-16 18:44:00 -0300
commit9b3797dde79af942033d08f5daa7c193c8e32d3c (patch)
tree361bccc75b8c7e86f3a30e57613f00f8b797114a
parentb65ac8c001f9a0eb362cf5a7cdcc406efbc09354 (diff)
arm: imx9: Add i.MX952 SoC support
Add basic SoC support for i.MX952: - Add CONFIG_IMX952 Kconfig option - Include i.MX952 clock and power headers - Set CPU speed grade to 1.7GHz for i.MX952 Signed-off-by: Alice Guo <[email protected]> Reviewed-by: Peng Fan <[email protected]> Reviewed-by: David Zang <[email protected]>
-rw-r--r--arch/arm/mach-imx/imx9/Kconfig9
-rw-r--r--arch/arm/mach-imx/imx9/scmi/common.h10
-rw-r--r--arch/arm/mach-imx/imx9/scmi/soc.c2
3 files changed, 21 insertions, 0 deletions
diff --git a/arch/arm/mach-imx/imx9/Kconfig b/arch/arm/mach-imx/imx9/Kconfig
index d9f97e4328c..716940930a6 100644
--- a/arch/arm/mach-imx/imx9/Kconfig
+++ b/arch/arm/mach-imx/imx9/Kconfig
@@ -47,6 +47,15 @@ config IMX94
select SCMI_FIRMWARE
select SPL_IMX_CONTAINER_USE_TRAMPOLINE
+config IMX952
+ bool
+ select ARMV8_SPL_EXCEPTION_VECTORS
+ select DM_MAILBOX
+ select IMX9
+ select IMX_PQC_SUPPORT
+ select SCMI_FIRMWARE
+ select SPL_IMX_CONTAINER_USE_TRAMPOLINE
+
config SYS_SOC
default "imx9"
diff --git a/arch/arm/mach-imx/imx9/scmi/common.h b/arch/arm/mach-imx/imx9/scmi/common.h
index dd4675402c7..c3610127dce 100644
--- a/arch/arm/mach-imx/imx9/scmi/common.h
+++ b/arch/arm/mach-imx/imx9/scmi/common.h
@@ -21,6 +21,16 @@
#define IMX95_PD_M70 IMX95_PD_M7
#endif
+#ifdef CONFIG_IMX952
+#define IMX_PLAT 952
+#include <imx952-clock.h>
+#include <imx952-power.h>
+
+#define IMX952_CLK_SEL_A55C0 IMX952_CLK_GPR_SEL_A55C0
+#define IMX952_PD_M70 IMX952_PD_M7
+#define IMX952_CLK_FLEXSPI1 IMX952_CLK_XSPI1
+#define IMX952_CLK_24M IMX952_CLK_OSC24M
+#endif
#define IMX_PLAT_STR__(plat) # plat
#define IMX_PLAT_STR_(IMX_PLAT) IMX_PLAT_STR__(IMX_PLAT)
diff --git a/arch/arm/mach-imx/imx9/scmi/soc.c b/arch/arm/mach-imx/imx9/scmi/soc.c
index 29232f3b391..d426206215d 100644
--- a/arch/arm/mach-imx/imx9/scmi/soc.c
+++ b/arch/arm/mach-imx/imx9/scmi/soc.c
@@ -153,6 +153,8 @@ u32 get_cpu_speed_grade_hz(void)
if (is_imx95())
max_speed = 2000000000;
+ if (is_imx952())
+ max_speed = 1700000000;
/* In case the fuse of speed grade not programmed */
if (speed > max_speed)