diff options
Diffstat (limited to 'arch/arm/mach-omap2/io.c')
-rw-r--r-- | arch/arm/mach-omap2/io.c | 96 |
1 files changed, 29 insertions, 67 deletions
diff --git a/arch/arm/mach-omap2/io.c b/arch/arm/mach-omap2/io.c index 93c41d0cde08..961e9d854354 100644 --- a/arch/arm/mach-omap2/io.c +++ b/arch/arm/mach-omap2/io.c @@ -33,7 +33,6 @@ #include "clock3xxx.h" #include "clock44xx.h" #include "clock54xx.h" -#include "io.h" #include <plat/omap-pm.h> #include <plat/omap_hwmod.h> @@ -438,76 +437,22 @@ static void __init omap_common_init_early(void) static void __init omap_hwmod_init_postsetup(void) { - u8 postsetup_state; - - if (cpu_is_omap242x()) { - omap2xxx_powerdomains_init(); - omap2xxx_clockdomains_init(); - omap2420_hwmod_init(); - } else if (cpu_is_omap243x()) { - omap2xxx_powerdomains_init(); - omap2xxx_clockdomains_init(); - omap2430_hwmod_init(); - } else if (cpu_is_omap34xx()) { - omap3xxx_powerdomains_init(); - omap3xxx_clockdomains_init(); - omap3xxx_hwmod_init(); - } else if (cpu_is_omap44xx()) { - omap44xx_powerdomains_init(); - omap44xx_clockdomains_init(); - omap44xx_hwmod_init(); - } else if (cpu_is_omap54xx()) { - omap54xx_powerdomains_init(); - omap54xx_clockdomains_init(); - omap54xx_hwmod_init(); - } else { - pr_err("Could not init hwmod data - unknown SoC\n"); - } - - /* Set the default postsetup state for all hwmods */ + u8 postsetup_state; + + /* Set the default postsetup state for all hwmods */ #ifdef CONFIG_PM_RUNTIME - postsetup_state = _HWMOD_STATE_IDLE; + postsetup_state = _HWMOD_STATE_IDLE; #else - postsetup_state = _HWMOD_STATE_ENABLED; + postsetup_state = _HWMOD_STATE_ENABLED; #endif - omap_hwmod_for_each(_set_hwmod_postsetup_state, &postsetup_state); - - /* - * Set the default postsetup state for unusual modules (like - * MPU WDT). - * - * The postsetup_state is not actually used until - * omap_hwmod_late_init(), so boards that desire full watchdog - * coverage of kernel initialization can reprogram the - * postsetup_state between the calls to - * omap2_init_common_infra() and omap_sdrc_init(). - * - * XXX ideally we could detect whether the MPU WDT was currently - * enabled here and make this conditional - */ - postsetup_state = _HWMOD_STATE_DISABLED; - omap_hwmod_for_each_by_class("wd_timer", - _set_hwmod_postsetup_state, - &postsetup_state); - - if (cpu_is_omap54xx()) - pr_err("FIXME: omap5 opp layer init\n"); - else - omap_pm_if_early_init(); - - if (cpu_is_omap2420()) - omap2420_clk_init(); - else if (cpu_is_omap2430()) - omap2430_clk_init(); - else if (cpu_is_omap34xx()) - omap3xxx_clk_init(); - else if (cpu_is_omap44xx()) - omap4xxx_clk_init(); - else if (cpu_is_omap54xx()) - omap5xxx_clk_init(); - else - pr_err("Could not init clock framework - unknown SoC\n"); + omap_hwmod_for_each(_set_hwmod_postsetup_state, &postsetup_state); + + postsetup_state = _HWMOD_STATE_DISABLED; + omap_hwmod_for_each_by_class("wd_timer", + _set_hwmod_postsetup_state, + &postsetup_state); + omap_pm_if_early_init(); } #ifdef CONFIG_SOC_OMAP2420 @@ -610,6 +555,23 @@ void __init omap4430_init_early(void) } #endif +#ifdef CONFIG_ARCH_OMAP5 +void __init omap54xx_init_early(void) +{ +// set_globals was called by omap_5430evm_map_io already +// omap2_set_globals_543x(); + omap_common_init_early(); + omap44xx_voltagedomains_init(); +// omap54xx_voltagedomains_init(); + omap54xx_powerdomains_init(); + omap54xx_clockdomains_init(); + omap54xx_hwmod_init(); + omap_hwmod_init_postsetup(); + pr_err("FIXME: omap5 opp layer init\n"); + omap5xxx_clk_init(); +} +#endif + void __init omap_sdrc_init(struct omap_sdrc_params *sdrc_cs0, struct omap_sdrc_params *sdrc_cs1) { |