diff options
author | Paul Walmsley <paul@pwsan.com> | 2009-09-03 13:14:05 -0400 |
---|---|---|
committer | paul <paul@twilight.(none)> | 2009-09-03 13:14:05 -0400 |
commit | 02bfc030e4417003b7a94393102c92e39b2dfa65 (patch) | |
tree | c0e3bd849ab948379169cd7277d4668ebabc9af3 /arch/arm/mach-omap2/io.c | |
parent | 63c852384125ca0eff0e695f92cbbd439bed4aa3 (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.c | 17 |
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) | |||
281 | void __init omap2_init_common_hw(struct omap_sdrc_params *sdrc_cs0, | 285 | void __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(); |