]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
ARM: IMXRT: introduce is_imxrt*() macros and get_cpu_rev()
authorGiulio Benetti <giulio.benetti@benettiengineering.com>
Thu, 20 May 2021 14:10:13 +0000 (16:10 +0200)
committerStefano Babic <sbabic@denx.de>
Wed, 9 Jun 2021 11:03:33 +0000 (13:03 +0200)
We need those macros to instruct drivers on how to behave for SoC specific
quirks, so let's add it as done for other i.MX SoCs.

Signed-off-by: Giulio Benetti <giulio.benetti@benettiengineering.com>
arch/arm/include/asm/arch-imx/cpu.h
arch/arm/include/asm/mach-imx/sys_proto.h
arch/arm/mach-imx/imxrt/soc.c

index bb13e07b66fb65411f438303253241faddd5def7..267a094e5a743b44f31815324f37d10913042c06 100644 (file)
@@ -50,6 +50,8 @@
 #define MXC_CPU_IMX8QXP_A0     0x90 /* dummy ID */
 #define MXC_CPU_IMX8QM         0x91 /* dummy ID */
 #define MXC_CPU_IMX8QXP                0x92 /* dummy ID */
+#define MXC_CPU_IMXRT1020      0xB4 /* dummy ID */
+#define MXC_CPU_IMXRT1050      0xB6 /* dummy ID */
 #define MXC_CPU_MX7ULP         0xE1 /* Temporally hard code */
 #define MXC_CPU_VF610          0xF6 /* dummy ID */
 
@@ -57,6 +59,7 @@
 #define MXC_SOC_MX7            0x70
 #define MXC_SOC_IMX8M          0x80
 #define MXC_SOC_IMX8           0x90 /* dummy */
+#define MXC_SOC_IMXRT          0xB0 /* dummy */
 #define MXC_SOC_MX7ULP         0xE0 /* dummy */
 
 #define CHIP_REV_1_0            0x10
index c7668ffc4d89c8264a00059aff2db8e3013726cf..b6121898498eb5654df9c22fa25b5560aa95558f 100644 (file)
@@ -31,6 +31,7 @@ struct bd_info;
 #define is_mx7() (is_soc_type(MXC_SOC_MX7))
 #define is_imx8m() (is_soc_type(MXC_SOC_IMX8M))
 #define is_imx8() (is_soc_type(MXC_SOC_IMX8))
+#define is_imxrt() (is_soc_type(MXC_SOC_IMXRT))
 
 #define is_mx6dqp() (is_cpu_type(MXC_CPU_MX6QP) || is_cpu_type(MXC_CPU_MX6DP))
 #define is_mx6dq() (is_cpu_type(MXC_CPU_MX6Q) || is_cpu_type(MXC_CPU_MX6D))
@@ -78,6 +79,9 @@ struct bd_info;
 
 #define is_imx8qxp() (is_cpu_type(MXC_CPU_IMX8QXP))
 
+#define is_imxrt1020() (is_cpu_type(MXC_CPU_IMXRT1020))
+#define is_imxrt1050() (is_cpu_type(MXC_CPU_IMXRT1050))
+
 #ifdef CONFIG_MX6
 #define IMX6_SRC_GPR10_BMODE                   BIT(28)
 #define IMX6_SRC_GPR10_PERSIST_SECONDARY_BOOT  BIT(30)
index c533f3554ae845847102cf8e9f851ae252bc1d9a..ba015992ee5737556fd01e6677f6d56bfe77692f 100644 (file)
@@ -8,6 +8,7 @@
 #include <init.h>
 #include <asm/io.h>
 #include <asm/armv7_mpu.h>
+#include <asm/mach-imx/sys_proto.h>
 #include <linux/bitops.h>
 
 int arch_cpu_init(void)
@@ -35,3 +36,14 @@ int arch_cpu_init(void)
 
        return 0;
 }
+
+u32 get_cpu_rev(void)
+{
+#if defined(CONFIG_IMXRT1020)
+       return MXC_CPU_IMXRT1020 << 12;
+#elif defined(CONFIG_IMXRT1050)
+       return MXC_CPU_IMXRT1050 << 12;
+#else
+#error This IMXRT SoC is not supported
+#endif
+}