summaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-imx/imx50.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/mach-imx/imx50.c')
-rw-r--r--arch/arm/mach-imx/imx50.c14
1 files changed, 9 insertions, 5 deletions
diff --git a/arch/arm/mach-imx/imx50.c b/arch/arm/mach-imx/imx50.c
index d6ff6dfc2d..f7cbc9d4ba 100644
--- a/arch/arm/mach-imx/imx50.c
+++ b/arch/arm/mach-imx/imx50.c
@@ -21,6 +21,7 @@
#include <mach/revision.h>
#include <mach/clock-imx51_53.h>
#include <mach/generic.h>
+#include <mach/reset-reason.h>
#define SI_REV 0x48
@@ -49,7 +50,10 @@ static int imx50_silicon_revision(void)
int imx50_init(void)
{
+ void __iomem *src = IOMEM(MX50_SRC_BASE_ADDR);
+
imx50_silicon_revision();
+ imx_set_reset_reason(src + IMX_SRC_SRSR, imx_reset_reasons);
imx53_boot_save_loc();
return 0;
@@ -83,7 +87,7 @@ int imx50_devices_init(void)
void imx50_init_lowlevel_early(unsigned int cpufreq_mhz)
{
- void __iomem *ccm = (void __iomem *)MX50_CCM_BASE_ADDR;
+ void __iomem *ccm = IOMEM(MX50_CCM_BASE_ADDR);
u32 r;
imx5_init_lowlevel();
@@ -113,11 +117,11 @@ void imx50_init_lowlevel_early(unsigned int cpufreq_mhz)
writel(0x4, ccm + MX5_CCM_CCSR);
if (cpufreq_mhz == 400)
- imx5_setup_pll_400((void __iomem *)MX50_PLL1_BASE_ADDR);
+ imx5_setup_pll_400(IOMEM(MX50_PLL1_BASE_ADDR));
else
- imx5_setup_pll_800((void __iomem *)MX50_PLL1_BASE_ADDR);
+ imx5_setup_pll_800(IOMEM(MX50_PLL1_BASE_ADDR));
- imx5_setup_pll_216((void __iomem *)MX50_PLL3_BASE_ADDR);
+ imx5_setup_pll_216(IOMEM(MX50_PLL3_BASE_ADDR));
/* Switch peripheral to PLL3 */
writel(0x00015154, ccm + MX5_CCM_CBCMR);
@@ -126,7 +130,7 @@ void imx50_init_lowlevel_early(unsigned int cpufreq_mhz)
/* make sure change is effective */
while (readl(ccm + MX5_CCM_CDHIPR));
- imx5_setup_pll_400((void __iomem *)MX50_PLL2_BASE_ADDR);
+ imx5_setup_pll_400(IOMEM(MX50_PLL2_BASE_ADDR));
/* Switch peripheral to PLL2 */
r = 0x02800145 |