summaryrefslogtreecommitdiffstats
path: root/arch/arm
diff options
context:
space:
mode:
authorSascha Hauer <s.hauer@pengutronix.de>2012-09-30 17:55:29 +0200
committerSascha Hauer <s.hauer@pengutronix.de>2012-10-05 20:02:34 +0200
commit4008d0a34aa495164eadaab66595266286f8f4f4 (patch)
treecc4406e0fa6609a360b03c3da9f0f8b7033831ce /arch/arm
parent6bb06524d665b4fbcefddb6b914273466fe801dd (diff)
downloadbarebox-4008d0a34aa495164eadaab66595266286f8f4f4.tar.gz
barebox-4008d0a34aa495164eadaab66595266286f8f4f4.tar.xz
ARM i.MX27: Use standard IMX_CHIP_REV_* defines
We have IMX_CHIP_REV_* defines which are used for most i.MX SoCs. Use them for i.MX27 aswell. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'arch/arm')
-rw-r--r--arch/arm/mach-imx/clk-imx27.c5
-rw-r--r--arch/arm/mach-imx/imx27.c15
-rw-r--r--arch/arm/mach-imx/include/mach/generic.h2
-rw-r--r--arch/arm/mach-imx/include/mach/imx-regs.h1
4 files changed, 18 insertions, 5 deletions
diff --git a/arch/arm/mach-imx/clk-imx27.c b/arch/arm/mach-imx/clk-imx27.c
index abfde0fd62..4428d42a28 100644
--- a/arch/arm/mach-imx/clk-imx27.c
+++ b/arch/arm/mach-imx/clk-imx27.c
@@ -7,6 +7,7 @@
#include <linux/err.h>
#include <mach/imx27-regs.h>
#include <mach/generic.h>
+#include <mach/imx-regs.h>
#include "clk.h"
@@ -92,7 +93,7 @@ static int imx27_ccm_probe(struct device_d *dev)
clks[spll] = imx_clk_pllv1("spll", "ckih", base + CCM_SPCTL0);
clks[mpll_main2] = imx_clk_fixed_factor("mpll_main2", "mpll", 2, 3);
- if (imx_silicon_revision() >= IMX27_CHIP_REVISION_2_0) {
+ if (imx_silicon_revision() >= IMX_CHIP_REV_2_0) {
clks[ahb] = imx_clk_divider("ahb", "mpll_main2", base + CCM_CSCR, 8, 2);
clks[ipg] = imx_clk_fixed_factor("ipg", "ahb", 1, 2);
} else {
@@ -110,7 +111,7 @@ static int imx27_ccm_probe(struct device_d *dev)
ARRAY_SIZE(cpu_sel_clks));
clks[clko_sel] = imx_clk_mux("clko_sel", base + CCM_CCSR, 0, 5, clko_sel_clks,
ARRAY_SIZE(clko_sel_clks));
- if (imx_silicon_revision() >= IMX27_CHIP_REVISION_2_0)
+ if (imx_silicon_revision() >= IMX_CHIP_REV_2_0)
clks[cpu_div] = imx_clk_divider("cpu_div", "cpu_sel", base + CCM_CSCR, 12, 2);
else
clks[cpu_div] = imx_clk_divider("cpu_div", "cpu_sel", base + CCM_CSCR, 13, 3);
diff --git a/arch/arm/mach-imx/imx27.c b/arch/arm/mach-imx/imx27.c
index 8116e6f932..cd429d04e8 100644
--- a/arch/arm/mach-imx/imx27.c
+++ b/arch/arm/mach-imx/imx27.c
@@ -20,7 +20,20 @@
int imx_silicon_revision(void)
{
- return CID >> 28;
+ uint32_t val;
+
+ val = readl(MX27_SYSCTRL_BASE_ADDR);
+
+ switch (val >> 28) {
+ case 0:
+ return IMX_CHIP_REV_1_0;
+ case 1:
+ return IMX_CHIP_REV_2_0;
+ case 2:
+ return IMX_CHIP_REV_2_1;
+ default:
+ return IMX_CHIP_REV_UNKNOWN;
+ }
}
void imx27_setup_weimcs(size_t cs, unsigned upper, unsigned lower,
diff --git a/arch/arm/mach-imx/include/mach/generic.h b/arch/arm/mach-imx/include/mach/generic.h
index 99f301205c..018ea911be 100644
--- a/arch/arm/mach-imx/include/mach/generic.h
+++ b/arch/arm/mach-imx/include/mach/generic.h
@@ -1,7 +1,5 @@
int imx_silicon_revision(void);
-#define IMX27_CHIP_REVISION_1_0 0
-#define IMX27_CHIP_REVISION_2_0 1
u64 imx_uid(void);
diff --git a/arch/arm/mach-imx/include/mach/imx-regs.h b/arch/arm/mach-imx/include/mach/imx-regs.h
index 235bac3b82..2b836c9602 100644
--- a/arch/arm/mach-imx/include/mach/imx-regs.h
+++ b/arch/arm/mach-imx/include/mach/imx-regs.h
@@ -115,5 +115,6 @@
#define IMX_CHIP_REV_3_0 0x30
#define IMX_CHIP_REV_3_1 0x31
#define IMX_CHIP_REV_3_2 0x32
+#define IMX_CHIP_REV_UNKNOWN 0xff
#endif /* _IMX_REGS_H */