summaryrefslogtreecommitdiff
path: root/arch/arm/mach-imx/imx31-dt.c
diff options
context:
space:
mode:
authorArnd Bergmann <arnd@arndb.de>2016-06-24 12:49:57 +0200
committerShawn Guo <shawnguo@kernel.org>2016-06-28 10:26:34 +0800
commitc9ee94965dce7b66964c5f0b0db892055757d608 (patch)
tree9172521013d3755639b67c458f373db701e7f81a /arch/arm/mach-imx/imx31-dt.c
parent6f98cb22e4089c3eb63ff86fac010291a0e30241 (diff)
ARM: imx: deconstruct mxc_rnga initialization
The rnga platform device is initialized for all imx31 machines from its own initcall, but is never initialized anywhere else. This moves the platform device creation into both the imx31 dt and non-dt machine init sequences, which has basically the exact same effect as before, but makes it more obvious what is going on, while reducing the amount of code and removing the last user of cpu_is_mx31(). Signed-off-by: Arnd Bergmann <arnd@arndb.de> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
Diffstat (limited to 'arch/arm/mach-imx/imx31-dt.c')
-rw-r--r--arch/arm/mach-imx/imx31-dt.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/arch/arm/mach-imx/imx31-dt.c b/arch/arm/mach-imx/imx31-dt.c
index 32100222a017..62e6b4fb5370 100644
--- a/arch/arm/mach-imx/imx31-dt.c
+++ b/arch/arm/mach-imx/imx31-dt.c
@@ -28,10 +28,22 @@ static void __init imx31_dt_timer_init(void)
mx31_clocks_init_dt();
}
+/* FIXME: replace with DT binding */
+static const struct resource imx31_rnga_res[] __initconst = {
+ DEFINE_RES_MEM(MX31_RNGA_BASE_ADDR, SZ_16K),
+};
+
+static void __init imx31_dt_mach_init(void)
+{
+ platform_device_register_simple("mxc_rnga", -1, imx31_rnga_res,
+ ARRAY_SIZE(imx31_rnga_res));
+}
+
DT_MACHINE_START(IMX31_DT, "Freescale i.MX31 (Device Tree Support)")
.map_io = mx31_map_io,
.init_early = imx31_init_early,
.init_irq = mx31_init_irq,
.init_time = imx31_dt_timer_init,
+ .init_machine = imx31_dt_mach_init,
.dt_compat = imx31_dt_board_compat,
MACHINE_END