summaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-imx/include/mach/imx6.h
diff options
context:
space:
mode:
authorSascha Hauer <s.hauer@pengutronix.de>2013-06-21 15:18:07 +0200
committerSascha Hauer <s.hauer@pengutronix.de>2013-06-25 16:05:35 +0200
commitb70bfc27e6d904cb0e748833d882482ca2edc941 (patch)
tree82dab95c41f32af06be16b162ac51d495a385a4d /arch/arm/mach-imx/include/mach/imx6.h
parentc6edbecd68750e1752550f4f9255dafc1ab57370 (diff)
downloadbarebox-b70bfc27e6d904cb0e748833d882482ca2edc941.tar.gz
barebox-b70bfc27e6d904cb0e748833d882482ca2edc941.tar.xz
ARM: i.MX6: Add cputype detection
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'arch/arm/mach-imx/include/mach/imx6.h')
-rw-r--r--arch/arm/mach-imx/include/mach/imx6.h31
1 files changed, 31 insertions, 0 deletions
diff --git a/arch/arm/mach-imx/include/mach/imx6.h b/arch/arm/mach-imx/include/mach/imx6.h
index 518cf98978..4b2b1c7a69 100644
--- a/arch/arm/mach-imx/include/mach/imx6.h
+++ b/arch/arm/mach-imx/include/mach/imx6.h
@@ -1,6 +1,37 @@
#ifndef __MACH_IMX6_H
#define __MACH_IMX6_H
+#include <io.h>
+#include <mach/generic.h>
+#include <mach/imx6-regs.h>
+
void imx6_init_lowlevel(void);
+#define IMX6_ANATOP_SI_REV 0x260
+
+#define IMX6_CPUTYPE_IMX6Q 0x63
+#define IMX6_CPUTYPE_IMX6DL 0x61
+
+static inline int imx6_cpu_type(void)
+{
+ uint32_t val;
+
+ if (!cpu_is_mx6())
+ return 0;
+
+ val = readl(MX6_ANATOP_BASE_ADDR + IMX6_ANATOP_SI_REV);
+
+ return (val >> 16) & 0xff;
+}
+
+static inline int cpu_is_mx6q(void)
+{
+ return imx6_cpu_type() == IMX6_CPUTYPE_IMX6Q;
+}
+
+static inline int cpu_is_mx6dl(void)
+{
+ return imx6_cpu_type() == IMX6_CPUTYPE_IMX6DL;
+}
+
#endif /* __MACH_IMX6_H */