OMAP2+: io: split omap2_init_common_hw()
Split omap2_init_common_hw() into two functions. The first, omap2_init_common_infrastructure(), initializes the hwmod code and data, the OMAP PM code, and the clock code and data. The second, omap2_init_common_devices(), handles any other early device initialization that, for whatever reason, has not been or cannot be moved to initcalls or early platform devices. This patch is required for the hwmod postsetup patch, which allows board files to change the state that hwmods should be placed into at the conclusion of the hwmod _setup() function. For example, for a board whose creators wish to ensure watchdog coverage across the entire kernel boot process, code to change the watchdog's postsetup state will be added in the board-*.c file between the omap2_init_common_infrastructure() and omap2_init_common_devices() function calls. Signed-off-by: Paul Walmsley <paul@pwsan.com> Cc: Tony Lindgren <tony@atomide.com>
This commit is contained in:
@@ -331,11 +331,8 @@ static inline void omap_irq_base_init(void)
|
||||
#endif
|
||||
}
|
||||
|
||||
void __init omap2_init_common_hw(struct omap_sdrc_params *sdrc_cs0,
|
||||
struct omap_sdrc_params *sdrc_cs1)
|
||||
void __init omap2_init_common_infrastructure(void)
|
||||
{
|
||||
u8 skip_setup_idle = 0;
|
||||
|
||||
pwrdm_init(powerdomains_omap);
|
||||
clkdm_init(clockdomains_omap, clkdm_autodeps);
|
||||
if (cpu_is_omap242x())
|
||||
@@ -359,6 +356,17 @@ void __init omap2_init_common_hw(struct omap_sdrc_params *sdrc_cs0,
|
||||
omap4xxx_clk_init();
|
||||
else
|
||||
pr_err("Could not init clock framework - unknown CPU\n");
|
||||
}
|
||||
|
||||
/*
|
||||
* XXX Ideally, this function will dwindle into nothingness over time;
|
||||
* almost all device init code should be possible through initcalls
|
||||
* and other generalized mechanisms
|
||||
*/
|
||||
void __init omap2_init_common_devices(struct omap_sdrc_params *sdrc_cs0,
|
||||
struct omap_sdrc_params *sdrc_cs1)
|
||||
{
|
||||
u8 skip_setup_idle = 0;
|
||||
|
||||
omap_serial_early_init();
|
||||
|
||||
|
Reference in New Issue
Block a user