diff options
Diffstat (limited to 'arch/arm/mach-imx/cpu-imx5.c')
-rw-r--r-- | arch/arm/mach-imx/cpu-imx5.c | 25 |
1 files changed, 21 insertions, 4 deletions
diff --git a/arch/arm/mach-imx/cpu-imx5.c b/arch/arm/mach-imx/cpu-imx5.c index c1c99a72c6a1..3403bac94a31 100644 --- a/arch/arm/mach-imx/cpu-imx5.c +++ b/arch/arm/mach-imx/cpu-imx5.c | |||
@@ -16,6 +16,8 @@ | |||
16 | #include <linux/init.h> | 16 | #include <linux/init.h> |
17 | #include <linux/module.h> | 17 | #include <linux/module.h> |
18 | #include <linux/io.h> | 18 | #include <linux/io.h> |
19 | #include <linux/of.h> | ||
20 | #include <linux/of_address.h> | ||
19 | 21 | ||
20 | #include "hardware.h" | 22 | #include "hardware.h" |
21 | #include "common.h" | 23 | #include "common.h" |
@@ -24,10 +26,26 @@ static int mx5_cpu_rev = -1; | |||
24 | 26 | ||
25 | #define IIM_SREV 0x24 | 27 | #define IIM_SREV 0x24 |
26 | 28 | ||
29 | static u32 imx5_read_srev_reg(const char *compat) | ||
30 | { | ||
31 | void __iomem *iim_base; | ||
32 | struct device_node *np; | ||
33 | u32 srev; | ||
34 | |||
35 | np = of_find_compatible_node(NULL, NULL, compat); | ||
36 | iim_base = of_iomap(np, 0); | ||
37 | WARN_ON(!iim_base); | ||
38 | |||
39 | srev = readl(iim_base + IIM_SREV) & 0xff; | ||
40 | |||
41 | iounmap(iim_base); | ||
42 | |||
43 | return srev; | ||
44 | } | ||
45 | |||
27 | static int get_mx51_srev(void) | 46 | static int get_mx51_srev(void) |
28 | { | 47 | { |
29 | void __iomem *iim_base = MX51_IO_ADDRESS(MX51_IIM_BASE_ADDR); | 48 | u32 rev = imx5_read_srev_reg("fsl,imx51-iim"); |
30 | u32 rev = readl(iim_base + IIM_SREV) & 0xff; | ||
31 | 49 | ||
32 | switch (rev) { | 50 | switch (rev) { |
33 | case 0x0: | 51 | case 0x0: |
@@ -77,8 +95,7 @@ int __init mx51_neon_fixup(void) | |||
77 | 95 | ||
78 | static int get_mx53_srev(void) | 96 | static int get_mx53_srev(void) |
79 | { | 97 | { |
80 | void __iomem *iim_base = MX51_IO_ADDRESS(MX53_IIM_BASE_ADDR); | 98 | u32 rev = imx5_read_srev_reg("fsl,imx53-iim"); |
81 | u32 rev = readl(iim_base + IIM_SREV) & 0xff; | ||
82 | 99 | ||
83 | switch (rev) { | 100 | switch (rev) { |
84 | case 0x0: | 101 | case 0x0: |