aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-omap2/io.c
diff options
context:
space:
mode:
authorPaul Walmsley <paul@pwsan.com>2009-09-03 13:14:05 -0400
committerpaul <paul@twilight.(none)>2009-09-03 13:14:05 -0400
commit02bfc030e4417003b7a94393102c92e39b2dfa65 (patch)
treec0e3bd849ab948379169cd7277d4668ebabc9af3 /arch/arm/mach-omap2/io.c
parent63c852384125ca0eff0e695f92cbbd439bed4aa3 (diff)
OMAP: omap_hwmod: call omap_hwmod init at boot; create interconnects
Connect the omap_hwmod code to the kernel boot. Create some basic interconnect and device structures for OMAP2/3 chips. Signed-off-by: Paul Walmsley <paul@pwsan.com>
Diffstat (limited to 'arch/arm/mach-omap2/io.c')
-rw-r--r--arch/arm/mach-omap2/io.c17
1 files changed, 16 insertions, 1 deletions
diff --git a/arch/arm/mach-omap2/io.c b/arch/arm/mach-omap2/io.c
index 470b1d10c4e..7574b6f20e8 100644
--- a/arch/arm/mach-omap2/io.c
+++ b/arch/arm/mach-omap2/io.c
@@ -39,12 +39,16 @@
39 39
40#include <mach/omap-pm.h> 40#include <mach/omap-pm.h>
41#include <mach/powerdomain.h> 41#include <mach/powerdomain.h>
42
43#include "powerdomains.h" 42#include "powerdomains.h"
44 43
45#include <mach/clockdomain.h> 44#include <mach/clockdomain.h>
46#include "clockdomains.h" 45#include "clockdomains.h"
47#endif 46#endif
47#include <mach/omap_hwmod.h>
48#include "omap_hwmod_2420.h"
49#include "omap_hwmod_2430.h"
50#include "omap_hwmod_34xx.h"
51
48/* 52/*
49 * The machine specific code may provide the extra mapping besides the 53 * The machine specific code may provide the extra mapping besides the
50 * default mapping provided here. 54 * default mapping provided here.
@@ -281,6 +285,16 @@ static int __init _omap2_init_reprogram_sdrc(void)
281void __init omap2_init_common_hw(struct omap_sdrc_params *sdrc_cs0, 285void __init omap2_init_common_hw(struct omap_sdrc_params *sdrc_cs0,
282 struct omap_sdrc_params *sdrc_cs1) 286 struct omap_sdrc_params *sdrc_cs1)
283{ 287{
288 struct omap_hwmod **hwmods = NULL;
289
290 if (cpu_is_omap2420())
291 hwmods = omap2420_hwmods;
292 else if (cpu_is_omap2430())
293 hwmods = omap2430_hwmods;
294 else if (cpu_is_omap34xx())
295 hwmods = omap34xx_hwmods;
296
297 omap_hwmod_init(hwmods);
284 omap2_mux_init(); 298 omap2_mux_init();
285#ifndef CONFIG_ARCH_OMAP4 /* FIXME: Remove this once the clkdev is ready */ 299#ifndef CONFIG_ARCH_OMAP4 /* FIXME: Remove this once the clkdev is ready */
286 /* The OPP tables have to be registered before a clk init */ 300 /* The OPP tables have to be registered before a clk init */
@@ -289,6 +303,7 @@ void __init omap2_init_common_hw(struct omap_sdrc_params *sdrc_cs0,
289 clkdm_init(clockdomains_omap, clkdm_pwrdm_autodeps); 303 clkdm_init(clockdomains_omap, clkdm_pwrdm_autodeps);
290 omap2_clk_init(); 304 omap2_clk_init();
291 omap_serial_early_init(); 305 omap_serial_early_init();
306 omap_hwmod_late_init();
292 omap_pm_if_init(); 307 omap_pm_if_init();
293 omap2_sdrc_init(sdrc_cs0, sdrc_cs1); 308 omap2_sdrc_init(sdrc_cs0, sdrc_cs1);
294 _omap2_init_reprogram_sdrc(); 309 _omap2_init_reprogram_sdrc();