ARM: OMAP: Avoid cpu_is_omapxxxx usage until map_io is done
This way we don't need to initialize SoC detection early and can start using generic map_io. Reviewed-by: Santosh Shilimkar <santosh.shilimkar@ti.com> Tested-by: Santosh Shilimkar <santosh.shilimkar@ti.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
This commit is contained in:
@@ -444,11 +444,6 @@ static struct platform_device keys_gpio = {
|
|||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
static void __init omap3_beagle_init_early(void)
|
|
||||||
{
|
|
||||||
omap2_init_common_infrastructure();
|
|
||||||
}
|
|
||||||
|
|
||||||
static struct platform_device *omap3_beagle_devices[] __initdata = {
|
static struct platform_device *omap3_beagle_devices[] __initdata = {
|
||||||
&leds_gpio,
|
&leds_gpio,
|
||||||
&keys_gpio,
|
&keys_gpio,
|
||||||
@@ -555,7 +550,7 @@ MACHINE_START(OMAP3_BEAGLE, "OMAP3 Beagle Board")
|
|||||||
.boot_params = 0x80000100,
|
.boot_params = 0x80000100,
|
||||||
.reserve = omap_reserve,
|
.reserve = omap_reserve,
|
||||||
.map_io = omap3_map_io,
|
.map_io = omap3_map_io,
|
||||||
.init_early = omap3_beagle_init_early,
|
.init_early = omap3_init_early,
|
||||||
.init_irq = omap3_init_irq,
|
.init_irq = omap3_init_irq,
|
||||||
.init_machine = omap3_beagle_init,
|
.init_machine = omap3_beagle_init,
|
||||||
.timer = &omap3_secure_timer,
|
.timer = &omap3_secure_timer,
|
||||||
|
@@ -248,9 +248,6 @@ static void __init _omap2_map_common_io(void)
|
|||||||
*/
|
*/
|
||||||
local_flush_tlb_all();
|
local_flush_tlb_all();
|
||||||
flush_cache_all();
|
flush_cache_all();
|
||||||
|
|
||||||
omap2_check_revision();
|
|
||||||
omap_sram_init();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef CONFIG_SOC_OMAP2420
|
#ifdef CONFIG_SOC_OMAP2420
|
||||||
@@ -337,34 +334,16 @@ static int _set_hwmod_postsetup_state(struct omap_hwmod *oh, void *data)
|
|||||||
/* See irq.c, omap4-common.c and entry-macro.S */
|
/* See irq.c, omap4-common.c and entry-macro.S */
|
||||||
void __iomem *omap_irq_base;
|
void __iomem *omap_irq_base;
|
||||||
|
|
||||||
void __init omap2_init_common_infrastructure(void)
|
static void __init omap_common_init_early(void)
|
||||||
|
{
|
||||||
|
omap2_check_revision();
|
||||||
|
omap_sram_init();
|
||||||
|
}
|
||||||
|
|
||||||
|
static void __init omap_hwmod_init_postsetup(void)
|
||||||
{
|
{
|
||||||
u8 postsetup_state;
|
u8 postsetup_state;
|
||||||
|
|
||||||
if (cpu_is_omap242x()) {
|
|
||||||
omap2xxx_voltagedomains_init();
|
|
||||||
omap242x_powerdomains_init();
|
|
||||||
omap242x_clockdomains_init();
|
|
||||||
omap2420_hwmod_init();
|
|
||||||
} else if (cpu_is_omap243x()) {
|
|
||||||
omap2xxx_voltagedomains_init();
|
|
||||||
omap243x_powerdomains_init();
|
|
||||||
omap243x_clockdomains_init();
|
|
||||||
omap2430_hwmod_init();
|
|
||||||
} else if (cpu_is_omap34xx()) {
|
|
||||||
omap3xxx_voltagedomains_init();
|
|
||||||
omap3xxx_powerdomains_init();
|
|
||||||
omap3xxx_clockdomains_init();
|
|
||||||
omap3xxx_hwmod_init();
|
|
||||||
} else if (cpu_is_omap44xx()) {
|
|
||||||
omap44xx_voltagedomains_init();
|
|
||||||
omap44xx_powerdomains_init();
|
|
||||||
omap44xx_clockdomains_init();
|
|
||||||
omap44xx_hwmod_init();
|
|
||||||
} else {
|
|
||||||
pr_err("Could not init hwmod data - unknown SoC\n");
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Set the default postsetup state for all hwmods */
|
/* Set the default postsetup state for all hwmods */
|
||||||
#ifdef CONFIG_PM_RUNTIME
|
#ifdef CONFIG_PM_RUNTIME
|
||||||
postsetup_state = _HWMOD_STATE_IDLE;
|
postsetup_state = _HWMOD_STATE_IDLE;
|
||||||
@@ -392,57 +371,79 @@ void __init omap2_init_common_infrastructure(void)
|
|||||||
&postsetup_state);
|
&postsetup_state);
|
||||||
|
|
||||||
omap_pm_if_early_init();
|
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
|
|
||||||
pr_err("Could not init clock framework - unknown SoC\n");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void __init omap2420_init_early(void)
|
void __init omap2420_init_early(void)
|
||||||
{
|
{
|
||||||
omap2_init_common_infrastructure();
|
omap_common_init_early();
|
||||||
|
omap2xxx_voltagedomains_init();
|
||||||
|
omap242x_powerdomains_init();
|
||||||
|
omap242x_clockdomains_init();
|
||||||
|
omap2420_hwmod_init();
|
||||||
|
omap_hwmod_init_postsetup();
|
||||||
|
omap2420_clk_init();
|
||||||
}
|
}
|
||||||
|
|
||||||
void __init omap2430_init_early(void)
|
void __init omap2430_init_early(void)
|
||||||
{
|
{
|
||||||
omap2_init_common_infrastructure();
|
omap_common_init_early();
|
||||||
|
omap2xxx_voltagedomains_init();
|
||||||
|
omap243x_powerdomains_init();
|
||||||
|
omap243x_clockdomains_init();
|
||||||
|
omap2430_hwmod_init();
|
||||||
|
omap_hwmod_init_postsetup();
|
||||||
|
omap2430_clk_init();
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Currently only board-omap3beagle.c should call this because of the
|
||||||
|
* same machine_id for 34xx and 36xx beagle.. Will get fixed with DT.
|
||||||
|
*/
|
||||||
|
void __init omap3_init_early(void)
|
||||||
|
{
|
||||||
|
omap_common_init_early();
|
||||||
|
omap3xxx_voltagedomains_init();
|
||||||
|
omap3xxx_powerdomains_init();
|
||||||
|
omap3xxx_clockdomains_init();
|
||||||
|
omap3xxx_hwmod_init();
|
||||||
|
omap_hwmod_init_postsetup();
|
||||||
|
omap3xxx_clk_init();
|
||||||
}
|
}
|
||||||
|
|
||||||
void __init omap3430_init_early(void)
|
void __init omap3430_init_early(void)
|
||||||
{
|
{
|
||||||
omap2_init_common_infrastructure();
|
omap3_init_early();
|
||||||
}
|
}
|
||||||
|
|
||||||
void __init omap35xx_init_early(void)
|
void __init omap35xx_init_early(void)
|
||||||
{
|
{
|
||||||
omap2_init_common_infrastructure();
|
omap3_init_early();
|
||||||
}
|
}
|
||||||
|
|
||||||
void __init omap3630_init_early(void)
|
void __init omap3630_init_early(void)
|
||||||
{
|
{
|
||||||
omap2_init_common_infrastructure();
|
omap3_init_early();
|
||||||
}
|
}
|
||||||
|
|
||||||
void __init am35xx_init_early(void)
|
void __init am35xx_init_early(void)
|
||||||
{
|
{
|
||||||
omap2_init_common_infrastructure();
|
omap3_init_early();
|
||||||
}
|
}
|
||||||
|
|
||||||
void __init ti816x_init_early(void)
|
void __init ti816x_init_early(void)
|
||||||
{
|
{
|
||||||
omap2_init_common_infrastructure();
|
omap3_init_early();
|
||||||
}
|
}
|
||||||
|
|
||||||
void __init omap4430_init_early(void)
|
void __init omap4430_init_early(void)
|
||||||
{
|
{
|
||||||
omap2_init_common_infrastructure();
|
omap_common_init_early();
|
||||||
|
omap44xx_voltagedomains_init();
|
||||||
|
omap44xx_powerdomains_init();
|
||||||
|
omap44xx_clockdomains_init();
|
||||||
|
omap44xx_hwmod_init();
|
||||||
|
omap_hwmod_init_postsetup();
|
||||||
|
omap4xxx_clk_init();
|
||||||
}
|
}
|
||||||
|
|
||||||
void __init omap_sdrc_init(struct omap_sdrc_params *sdrc_cs0,
|
void __init omap_sdrc_init(struct omap_sdrc_params *sdrc_cs0,
|
||||||
|
@@ -50,6 +50,7 @@ void omap2430_init_early(void);
|
|||||||
void omap3430_init_early(void);
|
void omap3430_init_early(void);
|
||||||
void omap35xx_init_early(void);
|
void omap35xx_init_early(void);
|
||||||
void omap3630_init_early(void);
|
void omap3630_init_early(void);
|
||||||
|
void omap3_init_early(void); /* Do not use this one */
|
||||||
void am35xx_init_early(void);
|
void am35xx_init_early(void);
|
||||||
void ti816x_init_early(void);
|
void ti816x_init_early(void);
|
||||||
void omap4430_init_early(void);
|
void omap4430_init_early(void);
|
||||||
|
Reference in New Issue
Block a user