diff options
author | Sascha Hauer <s.hauer@pengutronix.de> | 2012-09-30 17:55:29 +0200 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2012-10-05 20:02:34 +0200 |
commit | 4008d0a34aa495164eadaab66595266286f8f4f4 (patch) | |
tree | cc4406e0fa6609a360b03c3da9f0f8b7033831ce /arch/arm | |
parent | 6bb06524d665b4fbcefddb6b914273466fe801dd (diff) | |
download | barebox-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.c | 5 | ||||
-rw-r--r-- | arch/arm/mach-imx/imx27.c | 15 | ||||
-rw-r--r-- | arch/arm/mach-imx/include/mach/generic.h | 2 | ||||
-rw-r--r-- | arch/arm/mach-imx/include/mach/imx-regs.h | 1 |
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 */ |