summaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-imx/imx1.c
diff options
context:
space:
mode:
authorSascha Hauer <s.hauer@pengutronix.de>2013-06-23 15:00:28 +0200
committerSascha Hauer <s.hauer@pengutronix.de>2013-06-24 08:35:00 +0200
commitf887536147ac892751a18752f34764daf7267845 (patch)
tree6f30f1d6645dca834c71ea80e432ea005690b109 /arch/arm/mach-imx/imx1.c
parenta6375f6e454e117ef8c8d323a21613afab035c06 (diff)
downloadbarebox-f887536147ac892751a18752f34764daf7267845.tar.gz
barebox-f887536147ac892751a18752f34764daf7267845.tar.xz
ARM: i.MX: centralize i.MX startup
Each i.MX SoC has its own SoC initcall. To ease multi SoC support move it to a single initcall. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'arch/arm/mach-imx/imx1.c')
-rw-r--r--arch/arm/mach-imx/imx1.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/arch/arm/mach-imx/imx1.c b/arch/arm/mach-imx/imx1.c
index 588ac02c9c..ecd71b865c 100644
--- a/arch/arm/mach-imx/imx1.c
+++ b/arch/arm/mach-imx/imx1.c
@@ -17,6 +17,7 @@
#include <mach/imx1-regs.h>
#include <mach/weim.h>
#include <mach/iomux-v1.h>
+#include <mach/generic.h>
#include <reset_source.h>
#define MX1_RSR MX1_SCM_BASE_ADDR
@@ -51,11 +52,17 @@ void imx1_setup_eimcs(size_t cs, unsigned upper, unsigned lower)
#include <mach/esdctl.h>
-static int imx1_init(void)
+int imx1_init(void)
{
- imx_iomuxv1_init((void *)MX1_GPIO1_BASE_ADDR);
imx1_detect_reset_source();
+ return 0;
+}
+
+int imx1_devices_init(void)
+{
+ imx_iomuxv1_init((void *)MX1_GPIO1_BASE_ADDR);
+
add_generic_device("imx1-ccm", 0, NULL, MX1_CCM_BASE_ADDR, 0x1000, IORESOURCE_MEM, NULL);
add_generic_device("imx1-gpt", 0, NULL, MX1_TIM1_BASE_ADDR, 0x100, IORESOURCE_MEM, NULL);
add_generic_device("imx1-gpio", 0, NULL, MX1_GPIO1_BASE_ADDR, 0x100, IORESOURCE_MEM, NULL);
@@ -67,4 +74,3 @@ static int imx1_init(void)
return 0;
}
-postcore_initcall(imx1_init);