diff options
author | Andrey Smirnov <andrew.smirnov@gmail.com> | 2016-09-29 15:21:42 -0700 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2016-10-04 08:09:34 +0200 |
commit | 916e79ceec2df1ccb9fcefc074560fc81027e91a (patch) | |
tree | 831978a42f2560259f91b2e982c1ede092ac7d41 /arch/arm/mach-imx/include/mach | |
parent | ced75605284875a58fdff3574cad9550d8bbf297 (diff) | |
download | barebox-916e79ceec2df1ccb9fcefc074560fc81027e91a.tar.gz barebox-916e79ceec2df1ccb9fcefc074560fc81027e91a.tar.xz |
i.MX: Introduce imx6_cpu_revision()
Factor out CPU revision identification code from imx6_init() into a
standalone inline function (similar to imx6_cpu_type()), so that it
would be possible to use that functionality in PBL code.
Signed-off-by: Andrey Smirnov <andrew.smirnov@gmail.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'arch/arm/mach-imx/include/mach')
-rw-r--r-- | arch/arm/mach-imx/include/mach/imx6.h | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/arch/arm/mach-imx/include/mach/imx6.h b/arch/arm/mach-imx/include/mach/imx6.h index e8ffa47a7d..fb5eaf16b7 100644 --- a/arch/arm/mach-imx/include/mach/imx6.h +++ b/arch/arm/mach-imx/include/mach/imx6.h @@ -4,6 +4,7 @@ #include <io.h> #include <mach/generic.h> #include <mach/imx6-regs.h> +#include <mach/revision.h> void imx6_init_lowlevel(void); @@ -48,6 +49,41 @@ static inline int imx6_cpu_type(void) return __imx6_cpu_type(); } +static inline int __imx6_cpu_revision(void) +{ + + uint32_t rev; + + rev = readl(MX6_ANATOP_BASE_ADDR + IMX6_ANATOP_SI_REV); + + switch (rev & 0xfff) { + case 0x00: + return IMX_CHIP_REV_1_0; + case 0x01: + return IMX_CHIP_REV_1_1; + case 0x02: + return IMX_CHIP_REV_1_2; + case 0x03: + return IMX_CHIP_REV_1_3; + case 0x04: + return IMX_CHIP_REV_1_4; + case 0x05: + return IMX_CHIP_REV_1_5; + case 0x100: + return IMX_CHIP_REV_2_0; + } + + return IMX_CHIP_REV_UNKNOWN; +} + +static inline int imx6_cpu_revision(void) +{ + if (!cpu_is_mx6()) + return 0; + + return __imx6_cpu_revision(); +} + #define DEFINE_MX6_CPU_TYPE(str, type) \ static inline int cpu_mx6_is_##str(void) \ { \ |